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

Terminology

This article will introduce you to UNIGINE 2 terminology. When working with the engine, you may not be able to recognize what are the meanings of some terms. For example, cameras in UNIGINE are represented with the word "Player" which means that the viewport, created into a world, is the first-person camera. Below you will find the basic terms used in UNIGINE with the links to more detailed articles.

Project

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. One project can consist of several worlds.

All projects are operated via SDK browser.

For more information see Projects article.

World

A world is a scene that includes a set of different built-in objects with certain properties, generally:

  • Built-in objects called nodes, which, in turn, may refer to other nodes (*.node), meshes (*.mesh), audio files (*.oga), paths (*.path) or scripts (*.h).
  • Materials and properties organized in libraries.
  • Shaders and textures to which material libraries refer.
  • General rendering, physics, sound and game settings.

For more information see the Virtual World Structure article.

Interaction of the Main Components of the World

Runtime Script

UNIGINE has three different runtime scripts with the different lifetime values:

  • A world script is a UnigineScript file with the .cpp extension automatically created together with a new world, named after it and stored in the same folder. In the world script you can code frame-by-frame behavior of your application.
  • A system script handles the mouse cursor, main menu, system-related user input and exists during the application life cycle.
  • An editor script handles all editor-related GUI and logic and takes effect only when the editor is loaded.

For more information see the Execution Sequence article.

Node and Node Reference

Nodes and node references are fundamental objects that form the world:

  •   Node is a generic entity representing any object that is positioned and stored in the world.
  •   Node Reference is a node that refers to an external file on the disk, which contains a pre-fabricated node (or a hierarchy of nodes) with all the material and property libraries that are required for its rendering.

For more information see Nodes reference.

Built-in Object

UNIGINE provides a set of built-in objects allowing you to create a world containing practically all of the objects present in real life. For convenience, they are formed into several groups that are responsible for different kinds of operations:

  • Nodes include fundamental objects that form the world (nodes and node references), dummy nodes, layers, pivots and triggers.
  • Light sources include objects providing different kinds of the scene illumination: global, omni-directional, projected, etc.
  • Objects represent imitations of entities present in the real world: objects, sky, terrains, water, etc.
  • Effects contain particles systems, physical fields, volumetric objects, decals, etc.

Surface

Surface is a named non-overlapping subsets of the object geometry (triangles). Each surface can have its own material or property assigned. It is also possible to enable/disable surfaces independently from each other.

For example, a static 3D mesh stored in a single file (house.mesh) can contain several surfaces: roof, walls, windows, floor.

Material

Unigine has its own material system: all of the materials are organized in libraries and form materials hierarchy.

A material is a set of properties (states, options, parameters) and assets (2D, 3D textures), described in a .mat text file and associated with a particular object surface. A material refers to fragment, vertex and geometry shaders, describing how the material will look like. Shaders are written in the .shader files. Two shading languages, GLSL and HLSL, are used to write shaders.

For more information see the Materials reference.

Property

The properties specify the way the object will behave and interact with other objects and the scene environment. For example, they specify if the object is interactive and whether it is a switch. For a character, properties can specify the character health points or gold amount. Thus, the properties make the nodes comply with the game/application logic.

Properties are organized according to the same principles as materials.

For more information see the Properties reference.

Last update: 2017-07-03