Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Core Library
Containers
Engine Classes
Node-Related Classes
Rendering-Related Classes
Physics-Related Classes
Bounds-Related Classes
GUI-Related Classes
Controls-Related Classes
Pathfinding-Related Classes
Utility Classes

Project Workflow

The article provides key information on the workflow stages for developing a project with Unigine.

Downloading and Installing Unigine SDK

To start developing a project with Unigine, it is necessary to download and install Unigine SDK Browser.

The latest platform-specific version of Unigine SDK Browser can be downloaded at the Unigine developer portal in the Downloads section. After downloading Unigine SDK Browser, you should install it and then install Unigine SDK in order to get an access to all capabilities of the engine:

Once Unigine SDK has been installed on the computer, it is possible to start creating a project.

Creating a Project

A new project is created via Unigine SDK Browser. On this stage, you can specify the required project settings.

The created project will have the default file structure that will be changed on the development stage.

Developing a Project

Once the project has been created, you can start to develop it. This is the most important stage as it includes working with content and implementing the application logic.

Notice
The content and the source code of the application must be stored inside the data directory of the project folder.

Working with Content

Working with content includes the following:

  1. Placing your assets in Unigine native runtime formats inside the data directory of the project folder or importing FBX models via UnigineEditor.

    The following runtime formats are supported:

    • *.mesh file format for static and skinned geometry.
    • *.anim file format for storing animation for skinned mesh.
    • *.dds file format for textures.
    • *.oga, *.ogg file formats for audio files.
    • *.ogv file format for video files.

    You can convert your assets into these formats by means of Unigine SDK:

    • Textures can be converted into the *.dds format by using the ImageDDS tool.
    • Textures can be converted automatically, if they are placed in the data/uncompressed folder.
      Notice
      When importing an FBX model with materials, all textures are converted automatically. The model itself is also automatically converted to a mesh.
    • 3D models can be directly exported from 3D editors or loaded into the engine from the intermediate formats (FLT, DAE) via Unigine plugins.
  2. Assembling the scene via UnigineEditor, namely: placing objects, setting up materials, properties, lighting and physics.
    Notice
    Unlike the other engines, Unigine provides its own material system with predefined shaders for materials organized in libraries. You can adjust settings of the provided materials via UnigineEditor in order to get the required result.

    See also the article on World Management.

Implementing Logic

Unigine provides the following APIs for implementing the application logic:

  • UnigineScript API for fast scripting with no code recompilation.
  • C++ API for maximum performance of the application.
  • C# API for integration with the existing C# code base.

You can use any of these APIs to implement your application. Each of them provides access to the engine modules and the content.

Notice
All the files with *.h and *.cpp extensions stored inside the data directory (of both the project folder and the Unigine SDK folder) are written in UnigineScript.

If you implement your application purely in C++ or C#, rebuilding of the application or its parts is required during development to check how changes made in the code affect the result.

See Also

Assembling a Project

Assembling the project is required when you need to build the final release version of the application. It can be done via Unigine SDK Browser.

Last update: 2017-07-03