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
FAQ
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
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
CIGI Client Plugin
Rendering-Related Classes

Working with Projects

A project is an independent entity that contains all the data on your application content organized in a set of directories. The .project file containing metadata is associated with the project.

Notice
One project can consist of several worlds. So, there is no need to create a separate project for each world.

Creating New Project#

Before starting to create new projects you should have an SDK installed. Once you have the required version of the SDK, you can create a new project as follows:

  1. Open the Projects tab in the SDK browser.

  2. Click Create New. The new project creation window will be opened.
  3. Define the name of the project, choose a path to store project files, specify the SDK and UNIGINE Engine build to be used.
    Notice
    You can choose the Development or Release build of UNIGINE Engine:
    • The Development build includes additional features that can be useful for project's development (Microprofile, etc.)
    • The Release build allows checking the final performance of the application.

    The project will be created in the <project path>/<unigine_project> folder.
  4. Specify the required application and general settings.
  5. Specify the add-ons to be added (optional).
  6. Click Create New Project. The project will appear in the projects list.

Notice
You can change the project settings any time by clicking Other Actions -> Configure Project.

Application Settings#

The project can be created with the following application settings:

Template A template that is used as a basis for the project:
  • Empty — no template is used for the project.
  • VR — a template is used to facilitate creation of a custom application for VR.
  • IG — a template is used to facilitate creation of a custom Image Generator application.
API+IDE Programming language to be used for project creation. The following APIs are available:
  • UnigineScript only — UnigineScript will be used to implement the project.
  • C++ — C++ API will be used to implement the project. For a project using a template, one of the following variants should be used depending on the OS:
    • On Windows:
      • C++ (Visual Studio 2015)
      • C++ (Qt-based) — Qt Creator, QMake, or CMake is required for building the project.
      • C++ SDL2
        Notice
        App* plugins (AppProjection, AppSurround, AppWall, AppPanorama, and others) cannot be used in Qt-based and SDL-based applications.
    • On Linux:
      • C++ GNU Make
  • C# — C# API will be used to implement the project. The Visual Studio will be used to compile a project.
Precision The coordinates precision to be used:

General Settings#

The project can be created with the following general settings:

Component System Create a project with the Component System.
GUI-based settings configurator Create a project with the launcher.

Click Plugins to specify the following:

Oculus support (AppOculus plugin) Create project with the Oculus Rift virtual display support.
HTC Vive support (AppVive plugin) Create project with the HTC Vive output support.
Dual output stereo 3D (AppSeparate plugin) Output 2 separate images for each eye.
Notice
The AppSeparate supports DirectX 11 only.

3-monitor output (AppSurround plugin) Render the application across 3 monitors simultaneously.
Monitor wall (AppWall plugin) Render the application into the configurable number of monitors.

Multi-projector setups (AppProjection plugin) Create a project with the AppProjection plugin. All necessary files are copied and the launcher with the corresponding settings is generated.
EasyBlend support (AppEasyBlend plugin) Create a project with the AppEasyBlend plugin.

Syncker plugin Create a project with the Syncker plugin for multi-channel rendering synchronization.
CIGI Client plugin Create a project with the CIGI Client plugin.
HLA Client plugin Create a project with the HLA Client plugin.
SSLSocket plugin Create a project with the SSLSocket plugin.
Steam plugin Create a project with the plugin for Steam integration.
VRPN Client plugin Create a project with the VRPN Client plugin.
ARTTracker plugin Create a project with the ARTTracker plugin.

Kinect2 Plugin Create a project with the Kinect2 plugin.
GPU Monitor plugin Enable GPU frequencies and temperature monitoring for your project.
Leap Motion plugin Tracking hands and fingers with Leap Motion
Interface plugin Create a project with the Interface plugin.

Add-Ons#

The project can be created including any add-on available in the Add-Ons tab. All required add-ons can be added both on and after project's creation.

Specifying Add-Ons on Project's Creation#

To create the project with an add-on:

  1. Download the required add-on in the Add-Ons tab by clicking Install.

    Notice
    Any amount of add-ons could be added to a project afterwards.
  2. On the project creation, specify the add-ons to be included by clicking the Add-ons (0) button.

  3. Drop the required add-ons from the Available field to In Use. You can add any amount of add-ons to the project. After all add-ons are dropped, click Ok.

    Notice
    If you haven't downloaded the add-on, click Manage installed add-ons. You will be redirected to the page with available add-ons.
  4. Click Create New Project. To enable added add-ons in the project, you should follow instructions on each add-on.

Specifying Add-Ons for Existing Project#

To extend an existing project with add-ons:

  1. Download the required add-on in the Add-Ons tab by clicking Install.

    Notice
    Any amount of add-ons could be added to a project afterwards.
  2. Click Other Actions -> Configure Project.

  3. Click the Add-ons (0) button and drag and drop the required add-ons from the Available field to In Use.

    Notice
    If you haven't downloaded the add-on, click Manage installed add-ons. You will be redirected to the page with available add-ons.
  4. Click Ok and then click Update Configuration.

Adding Existing Project#

To add an existing project to the browser:

  1. Click Add Existing in the Projects tab.

  2. In the file dialog window that opens, specify the path to the project folder and click Import Project. The project will appear in the projects list.

Notice
If the added project was created in the SDK of a previous version, it will be marked with the Upgrade available label.

Upgrading Existing Project#

Projects that require upgrade are marked with the Upgrade available label:

To upgrade your project to the newest installed version of UNIGINE SDK:

  1. Click this label or Other Actions -> Configure Project. The following form will open:

  2. Choose the newest installed version of the SDK and click Update Configuration.
  3. Specify a path to the backup folder into which the original project will be copied. Leave Migrate Content checked and click Upgrade Project.

The project will be upgraded automatically. You can also manually upgrade the project by running the upgrade script. In both cases, the same script will be used.
Notice
The source code should be upgraded manually by using the Migration Guide.

Running Project with Default Settings#

There are several options of running a project with default settings:

  • Run the project without the loaded editor by clicking Run.

  • Run the project with the loaded editor by clicking Edit Content.

Notice
Clicking Edit Content will only launch the Editor, you will have to load the world manually: via the console, via the File -> Open World in the Menu Bar of the UnigineEditor, or by double-clicking the *.world file in the Asset Browser.

You can also use launchers created by default in the project folder:

  • launch_debug — the launcher of the project's debug version.
  • launch_editor — the launcher of the project's with the loaded editor.
  • launch_release — the launcher of the project's release version.
  • launcher — the startup file for the launcher that provides a GUI to configure application options and run the application. This launcher can be customized and used in the release version of your project. To create a project with the launcher, check the GUI-based settings configurator box in the project's creation window.

Running Project with Custom Settings#

There are also several options of running project with custom settings:

  • Run the project without the loaded editor by clicking an ellipsis under the Run button:

    In the Customize Run Options form that opens, set the required values and click Run.
  • Run the project with the loaded editor by clicking an ellipsis under the Edit Content button:

    In the Customize UnigineEditor Options form that opens, set the required values and click Edit.
Notice
Clicking Edit Content will only launch the Editor, you will have to load the world manually via the console or via the File -> Open World in the main menu of the UnigineEditor.

Customize Run Options#

Via this form, the project without the loaded editor can be run with the custom settings.

Depending on the value of the Application option, different sets of options are available:

  • Default — the default main application (<project_name>_x*.exe) will be run:

    The default main application should be used when only UnigineScript is used to implement the project. In this case, the following options can be customized:
    Debug Indicates whether debug or release version of the application should be run.
    Arguments Start-up command-line options.
    Remember Indicates whether to remember the specified custom settings for future run or not.
  • Custom — a custom main application will be run:

    This option should be chosen if the C++ or C# API is used to implement the project (besides UnigineScript). In this case, the following options can be customized:
    Binary Name of the custom main application. Here the name of the compiled binary executable located in the bin folder of the project should be specified. If the binary executable is located outside this folder, a path to it relative to the bin folder should be specified.
    Arguments Start-up command-line options.
    Remember Indicates whether to remember the specified custom settings for future run or not.

Customize UnigineEditor Options#

Additional arguments Start-up command-line options.
Debug The editor version (debug or release) that will be used for project's editing.
Remember Indicates whether to remember the specified custom settings for a future run or not.

Editing Project#

To open the project for editing:

  • On Windows, click Edit Code:

    The project will be opened for editing in an associated tool. To change a tool, click an ellipsis under Edit Code. By default, the following form will open:

    Choose Custom in the drop-down list and specify a path to a custom tool (e.g. IDE or editor) with required arguments:

  • On Linux, click Open folder and then edit code in an associated tool:

See the articles in the Programming Overview section to learn how to edit the opened project.

Assembling Project#

To create the release build of the project:

  1. Click Other Actions.

  2. Click Assemble project. The following form will open.

  3. Specify the required settings (see below) and click Assemble.

By default, the final build includes the following:

  • data/.runtimes folder with all its contents
  • guids.db file stored in the data folder
  • Source assets from the data folder with valid *.meta files, that have no generated runtime files
    Notice
    *.meta files of such assets aren't included in the final build.
  • *.umount files (mount points) that refer to external directories
    Notice
    • Keep files in the external directories unchanged to avoid issues in the assembled project.
    • Only a reference to the mounted folder shall be included in the final build, not its contents.
    If you exclude *.umount files, the referenced content won't be available in the final build, and the project will be invalid.

The source/ and bin/ folders, the *.project and *.cache files, and launchers are excluded from the final build by default.

Notice
The bin folder from the project folder is excluded. In the final build, there will be the bin folder storing the release version of the binary executable and the libraries.

Assembling Settings#

Output folder The release build destination folder.
Warning
You shouldn't create this folder inside your project folder, as it may significantly increase its size.
Exclude files Files and folders that should be excluded from the release build. Use the wildcards patterns to exclude the required items. By default, the following files and folders are excluded: *.project, *.cache, *.bat, *.sh files, bin/, source/ folders.
Notice
Files and folders stored in the data folder won't be excluded.
Custom config path The path to the custom configuration file for the release build (optional).
Compress to UNG Types of files that should be compressed to reduce the hard drive memory usage. This won't influence the engine performance much. Use the wildcards patterns to include/exclude the required items. The maximum size of the archive is 2 GB. By default, files of the following types are compressed: *.h, *.cpp, *.ui, *.world, *.node, *.mat, *.meta.
Notice
Data streaming doesn't work for UNG/ZIP contents.
Strip binaries
Notice
This option is available on Linux only.
Delete all debug information from the build binaries. This will reduce the binaries size without any performance cost.

Other Actions#

When clicking the Other Actions button, the following form opens:

Configure Project Change project settings.
Assemble Project Specify settings to be used for assembling the project.
Open Folder Open the project folder.
Delete Delete the project.

Updating Project Configuration#

When clicking Other Actions -> Configure Project, the following form opens:

Via this form, you can change settings of an existing project: the UNIGINE Engine build used for the project, the version of the release application, the coordinates precision, and the general settings. This option should also be used when you need to upgrade the existing project to the newest SDK version.

Moreover, you can restore the project's files that were corrupted, missed, or mistakenly modified. For this, you should leave settings in the form unchanged and press the Update Configuration button. In this case, the following files of the project will be restored (they will be copied from the SDK):

  • Binaries
  • core.ung, editor.ung and scripts.ung
  • Launchers
Notice
If some of the files listed above are changed, the .modified postfix is added to names of such files. At that, the files from the SDK will also be copied.
Last update: 2019-07-18