You get a bonus - 1 coin for daily activity. Now you have 1 coin

Working with Game Engines (Unity, Unreal Engine)

Lecture



Game engines are powerful tools that allow developers to create games without having to write code from scratch. They provide a wide range of tools for building game worlds, characters, animations, physics, and much more. In this lecture we will examine the main game engines, their features, and how to choose the right one for your project. Game engines are the core tools for creating modern video games. They provide developers with a broad set of tools and capabilities for realizing their ideas.

A game engine is the core software of a computer game. The distinction between the game and the game engine is often blurry, and studios do not always draw a clear line between them. But in general the term «game engine» is applied to software that is suitable for reuse and extension, and can therefore be regarded as a foundation for developing many different games without substantial changes.

What is a game engine?

A game engine is a software platform that provides a set of tools and libraries for developing games. It includes:

  • Scene editor: for creating and managing three-dimensional scenes.
  • Material editor: for creating textures and effects.
  • Animation editor: for creating animations of characters and objects.
  • Physics engine: for simulating physical interactions.
  • Scripting language: for programming game logic.
  • Tools for building the user interface.

Core functions of game engines

  • Graphics: Support for 2D and 3D graphics, shaders, lighting, and shadows.
  • Physics: Implementation of object physics, collisions, and interactions.
  • Animation: Tools for creating and managing animations of characters and objects.
  • Sound: Built-in facilities for working with sound effects and music.
  • Scripting: The ability to program game logic using scripting languages (for example, C# in Unity, Blueprints and C++ in Unreal Engine).

Popular game engines

  • Unity: One of the most popular game engines, known for its flexibility and broad capabilities. Suitable for creating games of various genres and platforms.
  • Unreal Engine: A powerful game engine used to create high-quality games with realistic graphics. Often used for developing AAA games.
  • Godot: A free and open-source game engine that is becoming increasingly popular thanks to its ease of use and flexibility.
  • GameMaker Studio: An easy-to-learn engine, ideal for creating 2D games.
  • CryEngine: An engine known for its powerful rendering and physics system. Often used to create first-person shooters.

In addition to reusable software components, game engines provide a set of visual tools for development. These tools usually make up an integrated development environment for simplified, rapid game development in an assembly-line manner. These game engines are sometimes called «game middleware» (middleware), since, from a business standpoint, they provide a flexible and reusable software platform with all the functionality needed to develop a game application, reducing cost, complexity, and development time — all critical factors in the highly competitive video game industry.

Like other middleware solutions, game engines are usually platform-independent and allow a given game to run on various platforms, including game consoles and personal computers, with some changes made to the source code (or none at all). Game middleware often has a component-based architecture that allows some engine systems to be replaced or extended with more specialized (and often more expensive) middleware components, for example, Havok — for physics, FMOD — for sound, or SpeedTree — for rendering. Some game engines, such as RenderWare, are designed as a set of loosely coupled middleware components that can be selectively combined to create a custom engine, instead of the more traditional approach of extending or configuring a flexible integrated solution. Nevertheless, extensibility has been achieved and remains a high priority in game engines because of the broad range of their applications. Despite the specificity of the name, game engines are often used in other types of interactive applications that require real-time graphics, such as advertising demos, architectural visualizations, training simulators, and modeling environments.

Some game engines provide only real-time 3D rendering capabilities instead of all the functionality that games need. These engines rely on the game developer to implement the remaining functionality or assemble it from other game middleware components. Such types of engines are usually referred to as «graphics engines», «rendering engines», or «3D engines» instead of the more comprehensive term «game engine». However, this terminology is used inconsistently: thus, many full-featured 3D game engines are referred to simply as «3D engines». Some examples of graphics engines: RealmForge, Ogre 3D, Power Render, Crystal Space, and Genesis3D. Modern game or graphics engines usually provide a scene graph — an object-oriented representation of the game's 3D world, which often simplifies game design and can be used for more efficient rendering of vast virtual worlds.

Hardware abstraction

Most often, 3D engines or rendering systems in game engines are built on a graphics API, such as Direct3D or OpenGL, which provides a software abstraction of the GPU or video card. Low-level libraries, for example, DirectX, SDL, and OpenAL, are also used in games, since they provide hardware-independent access to other computer hardware, such as input devices (mouse, keyboard, and joystick), network cards, and sound cards. Before the advent of hardware-accelerated 3D graphics, software renderers were used. Software rendering is still used in some modeling tools for rendering images where visual fidelity is more important than performance (frames per second), or when the computer hardware does not meet the requirements, for example, does not support shaders.

Unity

  • Advantages:
    • Easy to learn for beginners.
    • Broad platform support (PC, consoles, mobile devices, VR/AR).
    • Large community and a wealth of learning materials.
  • Core components:
    • Scene: The main workspace where objects are placed.
    • GameObject: The main unit of the scene, to which components can be added.
    • Component: Scripts, physical properties, audio, and other elements added to a GameObject.
  • Scripting: Using the C# language to write game logic.

Unreal Engine

  • Advantages:
    • High graphics quality and realism.
    • Powerful tools for working with animation and physics.
    • Support for Blueprints — visual scripting that simplifies development.
  • Core components:
    • Level: The analog of a scene in Unity, where objects are placed.
    • Actor: The main unit of a level, to which components can be added.
    • Component: Scripts, physical properties, audio, and other elements added to an Actor.
  • Scripting: Using the C++ language and Blueprints to write game logic.

Working with Game Engines (Unity, Unreal Engine)


comparison of the Unity and Unreal interfaces

How to choose a game engine?

The choice of a game engine depends on several factors:

  • Game genre: Some engines are better suited for certain genres (for example, Unreal Engine for shooters, Unity for mobile games).
  • Project type: For simple 2D games, Unity is better suited; for complex 3D projects with high graphics requirements — Unreal Engine.
  • Team experience: Unity is easier for beginners, Unreal Engine requires more programming knowledge.
  • Platforms: Both engines support many platforms, but Unity has broader support for mobile devices. Each engine has its own limitations and optimizations for different platforms (PC, consoles, mobile devices).
  • Budget: Some engines are paid, while others offer free versions with limited capabilities.
  • Team experience: The level of your team's technical skills will also influence the choice of engine.
  • Community: The size and activity of the community can be an important factor when choosing an engine, since you will be able to find help and resources.

Main stages of working with a game engine

  1. Creating a project: Setting up a new project with the choice of necessary settings and templates.
  2. Creating levels: Modeling game levels using the scene editor tools.
  3. Creating objects: Creating game objects (characters, enemies, items) and configuring their properties.
  4. Programming: Writing scripts to implement game logic and object interaction.
  5. Creating animation: Creating animations for characters and objects.
  6. Setting up sound: Adding sound effects and music.
  7. Optimization: Optimizing game performance for various platforms.
  8. Testing: Conducting game testing to identify and fix errors.

Comparison table of Unity and Unreal Engine

Criterion Unity Unreal Engine
Basic primitives and objects Provides standard primitives: cube, sphere, capsule, cylinder, plane, tetrahedron, terrain, and others Provides standard primitives: cube, sphere, capsule, cylinder, plane, cone, pyramid, terrain, and others
Basic geometric transformations

Transform includes Position, Rotation, Scale.

Easy to manage through the inspector or scripts.

Transform includes Location, Rotation, Scale.

Implemented through the Actor and its components.

Mathematical concepts

Full support for 2D/3D vectors, quaternions, matrices.

Simple work with Vector2, Vector3.

Support for vectors (FVector), quaternions (FQuat), matrices.

More tools for complex computations.

Physics

Based on NVIDIA PhysX. Rigidbody

Slipperiness, friction, gravity, collisions are configured in the inspector.

Based on Chaos Physics. Physics component combined with Static Mesh or Skeletal Mesh components

More capabilities for simulations, including destruction, cloth, and fluids.

Graphics Ease of configuring materials and shaders. Support for HDRP/URP for enhanced graphics.

High level of detail out of the box.

Realistic effects with Lumen (lighting), Nanite (mesh detail).

Camera Flexible camera configuration, including Cinemachine for complex movements. Cinematic camera with advanced effects out of the box and for predefined roles, for example a first-person camera, third-person camera, vehicle, etc.
Animation Animation through Animator and Timeline. Support for 2D and 3D animation, Blend Trees. Powerful animation system with Blueprints, support for complex rigging systems and Blend Space.
Lighting

Lighting implemented through URP/HDRP.

Support for dynamic and static lighting. Soft and hard shadows. Fog.

Full-fledged dynamic lighting with Lumen.

Advanced shadows and global illumination. Fog.

Textures and materials

Simple work with textures.

Support for PBR, easy to configure through the inspector.

High level of texture detail.

Advanced material settings through the Material Editor.

Shaders

Shader Graph for visual editing.

The ability to write in HLSL.

Visual material editor.

Deep integration of shaders in C++ and HLSL.

UI elements

Canvas, Event System for menus, buttons, mouse events.

Support for 2D/3D UI.

Slate and UMG for interfaces. More flexibility, but harder to learn.
Game objects

GameObject, scenes, prefabs.

Scripts are implemented through components in C#.

Actor, scenes (Levels), Blueprint Class instead of prefabs. Scripts through Blueprints or C++.
Sensors (input)

Input System (keyboard, mouse, touchpad, gamepad, camera).

Broad capabilities for VR/AR development.

Easily integrated.

Input support through Input Manager (keys, axes).

Broad capabilities for VR/AR development.

Extended access to devices through C++.

Output to sound and other devices support for basic sound effects support for basic sound effects
Scripts

Written in C#.

Easy to learn, modular structure.

Written in C++ or created visually through Blueprints.

Flexibility, but high complexity.

Performance and debugging

step-by-step and conditional debugging, statistics and profiling of rendering and physics, conditional compilation, logging step-by-step and conditional debugging, statistics and profiling of rendering and physics, conditional compilation, logging
2D development

Ideally suited for 2D projects.

Many built-in tools (Tilemap, Sprite).

Weaker 2D support.

Unreal is more oriented toward 3D.

Networking features Support for networking solutions through Unity Netcode, Mirror, and other libraries. Built-in networking features out of the box, high-level data replication.
Cross-platform support Support for most platforms (Windows, macOS, Android, iOS, WebGL, consoles). Support for all major platforms, including consoles, but configuration is more complex.
Community and documentation Huge community, extensive documentation, multi-level learning materials. Smaller community, but plenty of official tutorials and materials are available.
Price

Free version with revenue limits.

Pro subscription for large projects.

Free up to a certain revenue, then a percentage of the profit.

Other game engines

1. Godot

  • Features:
    • Open source (completely free).
    • Support for 2D and 3D graphics.
    • Simple GDScript scripting language (syntax similar to Python).
    • Lightweight and fast engine.
    • Intuitive editor and flexibility for indie developers.
  • Ideally suited for: 2D games, simple 3D games, indie projects.

Working with Game Engines (Unity, Unreal Engine)

2. CryEngine

  • Features:
    • Emphasis on photorealistic graphics and visual effects.
    • Used in AAA projects (for example, Far Cry, Crysis).
    • Complex lighting and rendering (PBR support).
    • Higher learning complexity.
    • Scripts are written in Lua or C++.
  • Ideally suited for: AAA games with realistic graphics.

Working with Game Engines (Unity, Unreal Engine)

3. GameMaker Studio

  • Features:
    • Suitable for 2D games (especially pixel art).
    • Uses the simple GML language (GameMaker Language).
    • Provides a visual editor for objects and animations.
    • Rapid prototype development.
    • Limited 3D support.
  • Ideally suited for: 2D games, casual games, indie projects.

Working with Game Engines (Unity, Unreal Engine)

4. Defold

  • Features:
    • Lightweight and performant engine.
    • Suitable for 2D games.
    • Support for Lua for programming.
    • Cross-platform (including HTML5).
    • Less popular, but with an active community.
  • Ideally suited for: 2D games, browser games.

Working with Game Engines (Unity, Unreal Engine)

5. RPG Maker

  • Features:
    • Specialization in RPG games.
    • Easy-to-learn system (suitable for beginners).
    • Visual editor for maps, characters, and dialogues.
    • Limited flexibility for other genres.
  • Ideally suited for: 2D RPG games.

Working with Game Engines (Unity, Unreal Engine)

6. Construct

  • Features:
    • Suitable for 2D games.
    • Visual programming without the need to write code.
    • Cross-platform (including browsers).
    • Suitable for beginners.
  • Ideally suited for: Simple 2D games, prototypes.

Working with Game Engines (Unity, Unreal Engine)

7. Cocos2d-x

  • Features:
    • Open source.
    • High performance for mobile devices.
    • Scripts in C++, Lua, and JavaScript.
    • Used in mobile casual games.
  • Ideally suited for: 2D games, mobile games.

Working with Game Engines (Unity, Unreal Engine)

8. Panda3D

  • Features:
    • Open source (supported by Disney).
    • Support for Python and C++.
    • Ease of integration with various systems.
    • Weak documentation and community.
  • Ideally suited for: Educational projects, 3D simulations.

Working with Game Engines (Unity, Unreal Engine)

9. Amazon Lumberyard (currently renamed to Open 3D Engine)

  • Features:
    • Open source.
    • Strong emphasis on 3D graphics and multiplayer.
    • Integration with AWS for cloud services and Twitch.
    • Difficulty of learning for beginners.
  • Ideally suited for: Large 3D projects with multiplayer.

Working with Game Engines (Unity, Unreal Engine)

10. Flax Engine

  • Features:
    • Relatively new engine.
    • High performance and flexibility.
    • Scripts are written in C#.
    • Fewer resources and materials than Unity or Unreal.
  • Ideally suited for: Indie developers wishing to explore new platforms.

Working with Game Engines (Unity, Unreal Engine)

Conclusion

Game engines significantly simplify the game development process, allowing developers to focus on creating a unique gaming experience. Choosing the right engine is an important stage in game development. When choosing, take into account your goals, budget, team experience, and other factors. Working with game engines is an important skill for game designers. Understanding their capabilities and features helps in choosing the right tool for realizing your ideas and creating quality games.

Self-check questions

  • Which game engine do you consider the most suitable for beginner developers?
  • What factors influence the choice of a game engine for a specific project?
  • What new trends in the area of game engines do you see?

Assignments for independent work

  • Create a simple 2D platformer in a game engine of your choice.
  • Study the documentation of your chosen game engine and create a small project demonstrating your skills.
  • Compare two game engines by criteria of your choice.

See also

  • [[b12446]]
created: 2024-10-01
updated: 2026-03-08
134



Was this answer useful?
Choose a quick rating so we can improve the next answer for you.
How satisfied are you?


Comments

To leave a comment

If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Lectures and tutorial on "Computer games developming, game-design"

Terms: Computer games developming, game-design