UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
Extending Editor Functionality
编程
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes

Building a Project

Before your project can be distributed to users, it must be properly built. Building a project ensures that all content and code, including all necessary libraries, is up to date, in the proper format, and placed to a proper location to run on the desired target platform.

To build your project via UnigineEditor, perform the following:

  1. In UnigineEditor, click File -> Create Build. The Create Build window will open.

  2. Specify the required settings and click Create Build.

For building C# Component System projects, Component System should be initialized successfully.

Notice
If a project fails to build, check the UnigineEditor console for more details.

Build Content#

By default, the build includes the following:

  • Binaries
  • core.ung and scripts.ung
  • *.cache files
  • Plugins added via SDK browser
    Notice
    If plugins are added via code, they should be added to the build as user files.
  • All assets and their runtimes from the data/ folder and from all mount points
    Notice
    Runtimes are copied together with their *.meta (json) files.
  • Texture cache from the data/.cache_textures folder
  • guids.db file stored in the data/ folder
  • Sound library
  • Launcher file or files
  • Main executable files
  • Files added by user

Build Settings#

Common Settings#

Build Type Type of the build that defines which binaries are copied:
  • Release — optimized binary without any additional debug info.
  • For the Development build, two binaries are copied:
    • development binary — optimized binary with Microprofile enabled
    • debug binary — unoptimized binary with debug information enabled
Notice
If the project's SDK is unavailable, this option is unavailable, as well. In this case, Build Type is defined by the build of UNIGINE Engine selected at the project creation.
Project Name Name of the output executable or .bat/.sh file
Build Folder Path to the output folder where the build is going to be stored
Warning
You shouldn't create this folder inside your project folder, as it may significantly increase its size.
Notice
Build folder should be empty. Otherwise, its contents will be deleted.
Default World The world that is loaded when the application is started. If no world is selected, a black screen would be displayed when running the application.
Precompile Shaders If enabled, generates shaders for the current Video API.
Shader cache increases performance and reduces spikes and freezes in the release application, which makes it very important for the release build. If the shaders have already been precompiled, selecting this box won't affect the build time.
Notice
You may require forced shader compilation in specific cases.

Launcher Default Settings#

These settings are used as default (pre-selected) launcher settings. The launcher for the Development build displays more settings than for the Release build.

GUI-based launcher for the Development Build
Type Type of the launcher:
  • GUI-based — executable file with the name <project_name> is created. Running this file opens the GUI with the default launcher settings. These settings are stored in the <project_name>.lconfig JSON file.
  • <project_name>.bat (or .sh for Linux) file is created that contains the default launcher settings.
    In case of the Development build with the project's SDK available, two files are created: <project_name>_development.bat (or .sh for Linux) and <project_name>_debug.bat (or .sh for Linux).
Banner Image The image to be displayed in the launcher. Available for GUI-based launcher only.
To assign an image, drag it from the Asset Browser.
Notice
Only PNG images can be used.
Use OpenVR Check this box, if your project is intended for OpenVR. This will enable OpenVR mode selection in the application launcher.
Use Oculus Check this box, if your project is intended for Oculus. This will enable Oculus mode selection in the application launcher.
Use Varjo Check this box, if your project is intended for Varjo. This will enable Varjo mode selection in the application launcher.
Resolution The resolution of the application screen. Multiple resolutions can be selected. The resolution that is clicked upon is set as default.
Fullscreen If enabled, the application is run in the Fullscreen mode.
Binary Type of the binary to be selected by default in the launcher, if the selected build type is Development build:
  • Development — optimized binary with Microprofile enabled for performance check
  • Debug — unoptimized binary with debug information
This setting is available for the GUI-based launcher only. The .bat/.sh launcher will create scripts to run the correpsonding executable files.
Video Debug Toggling the debug context of the Graphics API. Available for the Development build type only.
Release App / Development App / Debug App

Path to the corresponding binary to be run. The binary depends on the type of build.

Notice
This option is for the projects that do not use C# Component System.

Note that the binary is defined automatically, if it remains located in the bin/ folder. If it has been moved elsewhere or rearranged in some other way, the path to the file is to be set manually.

Arguments Additional start-up command-line options.

UnigineEditor creates the <project_name>.lconfig file that Launcher uses to run the app. If a user changes any parameters and runs the app, the changes are saved in <project_name>.lconfig. Closing Launcher without running it discards any changes.

Copy User Files#

User files are added to the build folder by filling in the table with two columns:

  • From (Absolute Path) — an absolute path to a source file or folder. Folders can be specified using wildcards.
  • To (Relative Path) — path to the destination folder that is relative of the Build Folder. It can be a folder name where the file or files are copied to, or a folder and a file name, i.e. the copied file can be renamed as well.

There are some rules for adding user files to the build folder:

From (Absolute Path) To (Relative Path) Comment
C:\test\<folder_name> <another_folder_name>, or
\<another_folder_name>, or
\<another_folder_name>\
All files and folders inside <folder_name> will be recursively copied. Thus, it doesn't matter if you use slashes or not.
C:\Pictures\screenshot_alb.png \folder_with_pictures\, or
folder_with_pictures
One file with the name indicated in the From column will be copied into <output_folder>\folder_with_pictures\
C:\Pictures\screenshot_alb.png \folder_with_pictures\123.png

But: 123.jpg (or 123.pmg)
The file will be renamed.

However, if the target file extension is written incorrectly (differs from the actual file extension), a new folder with such name will be created instead, i.e. the resulting path of the example destination files will be:
<output_folder>\<folder_with_pictures>\<123.jpg>\screenshot_alb.png

When files with the same name are copied to one folder, their content is checked. If it's the same file, it would be copied once without any warning. However, if names are the same but the files are different, the dialog window will pop up to request which file should be copied.

Warning
If a user file has the same name as a engine-related file, the engine-related file is copied to the Build folder with the corresponding warning in the console. The user file should be renamed manually.

Wildcards can also be used to define the rules for copying user files.

From (Absolute Path) To (Relative Path) Comment
C:\test\<folder_name>\*.tga <tga_pictures> All files with the indicated extension from the selected folder will be copied to the specified folder.
C:\test\<folder_name>\ab*z.png <another_folder_name> All files with the name starting from ab and ending with z.png from the selected folder will be copied to the specified folder.
C:\test\<folder_name>\nn* <another_folder_name> All files with the name starting from nn from the selected folder will be copied to the specified folder.
C:\*.ung ///\\\/one\\\\\\////two\\/// Slashes work differently for Windows and Linux.

Windows:
slashes are transformed to backslashes, all backslashes are merged into one.
<output_folder>\one\two\

Linux:
all slashes are merged into one, but backslashes are not transformed to slashes.
<output_folder>/\\\/one\\\\\\/two\\/
Notice
On Linux, do not use the backslash symbol for defining paths.

Encryption#

Project files can be encrypted using the UNIGINE-native UNG archive format. UNG files are transparent to the engine, and their content is handled as not packed. To save your files in UNG format, use the Archiver tool.

Notice
  • Data streaming doesn't work for UNG/ZIP contents.
  • The maximum size of the archive is 2 GB.
Last update: 2020-03-12