This page has been translated automatically.
Unigine Basics
2. Managing Virtual Worlds
3. Preparing 3D Models
4. Materials
5. Cameras and Lighting
6. Implementing Application Logic
7. Making Cutscenes and Recording Videos
8. Preparing Your Project for Release
9. Physics
10. Optimization Basics
11. PROJECT2: First-Person Shooter
12. PROJECT3: Third-Person Cross-Country Arcade Racing Game
13. PROJECT4: VR Application With Simple Interaction
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

What is an "Engine"? How Games and 3D-Applications Are Made?

3D applications, areas of use, platforms#

When working at the computer, we often interact with three-dimensional graphics without even realizing it. ideal design elements, animated 3D models — well-known components of advertising and Internet applications, and of course sophisticated computer games that immerse us in their worlds and allow us to do a lot of things that are impossible in real life.

3D visualization is the process of creating a three-dimensional image that can be fictional or as close to reality as possible. An important aspect of this process is the ability to create a virtual environment, which is an entire artificial world modeled with the help of modern technologies and transmitted to a person through their senses — sight, hearing, touch, emotions, or their imitation. This world can recreate different areas of human activity, allowing individuals to perform the same actions as they would in real life, or it can embody an imaginary fantasy world.

3D visualization has become an integral part of modern life, with a wide range of applications such as virtual reality (VR), augmented reality (AR), and mixed reality (MR) systems being used in various fields. These technologies are constantly expanding and have already found their place in:

Simulators and training equipment. 3D images are generated in real-time to provide a comprehensive immersive experience for training and skill testing processes. This approach is particularly useful in industries where mistakes can have serious consequences, such as vehicle driving, team training, tactical operations, health and safety briefings, and maintenance. It allows for safe operator training and enhances the overall learning experience.

Digital twins. 3D visualization that allows for the creation of digital doubles with complex structures. This technology has numerous applications across industries, including improving decision-making, visualizing predictive analytics, and accelerating maintenance processes using virtual reality technologies. Additionally, digital twins can facilitate real-time visualization of data collected from IoT devices at industrial sites and rapid updates from corporate Big Data lakes.

Machine Learning. Training computer vision systems using automated labeling of photorealistic datasets. The ability to modify artificial environments enables variability in machine learning, such as different lighting conditions, surrounding objects, and observer positions. This enhances the efficiency of training and verifying AI systems.

Smart City Systems. Utilizing the building information model (BIM) concept to create a digital twin of the city on a detailed 3D model. Real-time data updates for each layer, such as transportation, power supply, and geo-information layers, can be incorporated into the model.

Entertainment Industry. Developing computer games, movies, animation, visual effects (VFX), virtual exhibitions, and museums that recreate long-lost historical and cultural artifacts using advanced technologies.

Training. Utilizing VR applications in the educational sphere to enhance visibility, engagement, full immersion in the material being studied, and safety of the learning process.

Medicine. Creating virtual operating rooms, applications for rehabilitation medicine and functional training, as well as psychological help for fighting phobias.

Architectural visualization. Designing and visualizing buildings, structures, and interiors before they are constructed or renovated.

Computer-aided design systems (CAD). Visualizing CAD data in VR, analyzing ergonomics, optimizing the design, and providing opportunities for collaborative development in a remote format.

Product marketing. Creating realistic 3D visualizations of any product, including high-quality presentations, optimizing product displays, creating virtual product configurators, and facilitating virtual test drives.

Considering the wide range of 3D applications available, it is clear that they operate on various hardware and platforms, including specialized workstations, desktop computers, game consoles, tablets, smartphones, and more. These systems run on different operating systems such as Windows, Linux, Android, iOS, and others. Cross-platform refers to the software's ability to run on different hardware and software systems or platforms. UNIGINE currently supports Windows and Linux operating systems, as well as PlayStation5 and Series X game consoles.

Definition of Engine#

The term game engine implies a whole complex of application software modules that provide graphic visualization, sound, movement of objects and characters, their actions in accordance with scripts, as well as network interaction, compliance with physical effects and laws, and much more. Simply put, these modules bring three-dimensional worlds to life.

The term first appeared in the mid-nineties of the last century. It was associated with games in the first-person shooter genre, and more specifically with Doom, the most popular one at that time. The source code of Doom was well-thought-out, with clearly marked out main components: 3D graphics system, sounds, collision calculations, scripts, etc. Thus, instead of writing their own code, other programmers re-used the Doom creators work: they made some changes in the code, changed graphics and appearance of weapons, designed new levels, adjusted the rules and released new games with the same code from Doom as the basis.

The engine of a game is its core, the basic software on which all other components of the game are built. It's software code that can be used to create variations of the game, add-ons to it, or even other games with their own worlds.

In the 1990s, more game engines with free access began to appear. These engines allowed both third-party developers and common users to try writing their own games. As time passed, engines became more and more advanced and voluminous in terms of program code.

Using a ready-made game engine saves developers time by providing typical code elements that can be used to build a base for the game. This allows developers to focus on implementing ideas, developing graphics and sound, refining mechanics, and adding new features.

Thus, from a developer's point of view, an engine is a software platform on which applications can be developed, not just games. Engines are actively used in the development of applications with virtual and augmented reality, including guides, reference books, encyclopedias, and more.

The image below is the simplified structure of the UNIGINE engine to demonstrate the relationships between internal components and external objects:

Typical project structure#

When you start developing a 3D application, you create a project. A project contains content (models, textures, scenes, settings, sounds, etc.), program code or logic (what breathes life into the content and makes it perform the task at hand), and metadata about the application (target platform, architecture, programming language used, and other additional information).

A project may include one or more multi-component 3D scenes called worlds.

Projects are created and managed through the SDK Browser.

Main stages of project development#

The general workflow for developing 3D applications such as computer games, simulators, trainers, and other virtual environments is as follows:

  1. Collecting and analyzing data about the objects and processes of the system and requirements.
  2. Creating a technical assignment or design document based on the collected data. This document provides a detailed description of the application to be used in the development process (concept, scheme, interface, graphics, virtual environment, and other relevant details).

The iterative cycle, with stages 3-4 executed in parallel:

  1. Creating content (3D models, textures, animations, assembling and customizing 3D scenes, materials, lighting, physics).
  2. Implementing the application logic (writing and debugging code).
  3. At the final development stages, testing of the project is performed along with improvements and performance optimization.
  4. Final build and release.

During this course, we will discuss the main stages of 3D application development in more detail as we work on our own projects.

Last update: 2024-04-24
Build: ()