Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Multimedia Systems

Graphic Engines
Game Engine

Carina SANDU
Daiana STEFANOV

1
Multimedia Systems

1. Introduction
A game engine is a complex set of components designed to help create computer
games by providing multiple features. Comparing a game engine to a more general
development framework, like .Net framework, instead of having tools for windows visual
components like, windows, tabs, etc.
A game engine will have graphics engine which is implemented and optimized for
displaying 2D or 3D objects in really good quality. Also, instead of using default system
sounds a game engine will need a sound engine to provide a more diversification and better
quality sounds in a 3D space. So as we saw, a game engine contains more components like
the graphics engine, sound engine, input, networking, and physics.
Because one of the most important parts of a game is the cutting edge graphics, it is
really important that a game engine will provide impressive graphics. A 3D game is created
around 3D assets created in specially designed 3D rendering programs from where they can
be exported and imported into the game engine and placed around the 3D space of the game.
To complete the wanted graphics more effects like lighting, shadows, fog, weather effects,
and such can be added. All the effects combined with the 3D models will give it a more
realistic look and feel. Besides the objects and effects, the engine will also handle animations
for different actions like running, jumping, flying etc.
So the main purpose of the graphics engine is to make developers life easier, taking
care of all the basic visual processing, assets import operations, building the meta-data to
show an object. With the help of the graphics engine, you can create a complete visual game
just by focusing on the design and looks.
The sound engine is in charge of handling how sounds will be placed in a 3D space
such way that it will keep the immersion in the game. Also, there a lot of tweaks that can be
made to increase the reality of the scene, like sound bouncing off the walls, creating echo
effects. The sound engine and the graphics engine work together to create a scene as realistic
as possible.
Other important components present in a game engine are the physics engine and
networking engine. The physics engine handles complicated math operations needed to
simulate as realistic as possible the real work, and the laws which are applied in the real
world, like gravitational force, frictional force etc.
The Physics engine will handle all the interaction between objects in a game. Since
the object is just a representation, a visual effect, we need to apply a set of rules to it so it can
interact with the environment and the player. Also, physics processing is a heavy process
resources. So it's important to be careful to which objects are this rules applied to keep the
game as fast as possible.

2
Multimedia Systems

2. Game Engines
In this paper we will be focusing on the graphics engine present in some of the most
used game engines at the moment, having a look at their features, performance, middleware
and graphical object representation. We will take a look at the Unreal Engine developed by
Epic Games in 1998, which is one of the best engines on the market at the moment, and also
at Gamebryo and CryEngine.

2.1 Unreal Engine


Unreal Engine is a complex game engine developed by Epic Games. It started in
1998, as a single-player 3D game called Unreal, the company didn’t just create a game they
actually managed to create a modular set of tools and other software, which could be reused.
This gave a big advantage to the developers since they didn't have to start from scratch when
they wanted to build a new game, creating an easier way from an idea to an end product.
During the next years more new iteration of the Unreal Engine was released with more
features, better graphics, and portability. Some of the iterations over the years were: Unreal
Tournament (1999), Unreal Developer Network (2001), Unreal 2 (2003) and so on till now
when we have the Unreal Engine 4.
At the moment, the Unreal Engine 4 presents a complete suite of tools designed for
creating the most amazing and artistic looking games, offering top performance and being
used by the biggest gaming development studios. Also, the Unreal Engine 4 supports a big
number of platforms from PC to VR, AR, and mobile platforms.
Like every game engine, the Unreal Engine integrates multiple components, each
working independently and connected by a core engine. One of this components is the
Graphics engine which in essence handle the 3D assets, the effects and everything that we see
in a game. It processes all the calculation required to display an object in a defined location in
the 3D space and also handles what the player can see at a certain moment making sure it will
render just the needed objects to improve performance overall.
The Graphics engine present in the Unreal Engine 4 provides a lot of rendering
features like: deferred shading, lighting paths, lit translucency, sub-surface shading.
2.1.1. Graphical Object Representation
At the basic level a 3D object is represented by a multiple of points in a 3D space,
these points are called vertices. The vertices have relations to each other to help the computer
created the object by drawing lines between them and also surfaces. All work regarding the
representation of the object in memory and recreating it from the vertices is done by the
rendering system. The game engine only needs to know that the renderer will display the
objects using the correct view.
The rendering engine which is a component of the graphics engine has the job of
drawing the objects on the screen in real-time. The rendering system contains usually two
components: Scene renderer and render states. The scene renderer component is the one

3
Multimedia Systems

which is passing the object to each spatial and provides the needed functionality for
displaying the object on the screen. There can be more scene renderers active at the same
time, each of them owing a camera and a viewport. The second component, render states, is
related to the geometry processing of the vertices though the rendering pipeline.
The main method, three-point polygon, for representing the points of the objects is
using a coordinate system. This method is used across all GPUs. Newer methods are also
appearing with the new generations of NVIDIA and AMD GPUs, and they are based on
mathematical equations to describe the lines and polygons.
2.1.2. Performance
The performance of a game is influenced mainly by the platform and the hardware is
running on. The developer has to be careful while creating a game, even if he has the means
to create a spectacular looking world there should always keep an eye on the overall
performance and how the game can adapt from hardware to hardware and platform to
platform. So, regarding UE4 the Scalability settings are the ones which allow the developer
to adjust the quality of the graphic elements in a way that the game will keep a good looking
element but also have the best performance on every platform it is designed for.
Some of the possible settings which can be adjusted are: resolution scale, view
distance, anti-aliasing, shadow quality, effects quality, detail mode etc. A big impact on the
performance is the resolution scale. Resolution can be simply defined as the amount of pixels
displayed on a screen, if the resolution is bigger the quality is better but also the hardware
must be able to handle it. There are a big number of possible resolutions but the most
common in the gaming industry are the 720p (1280x720), 1080p (1920x1080) and one of the
best at the moment, 4k (3840x2160).
To improve performance, a game can be rendered at a lower resolution and afterwards
be scaled up at the target resolution, using this method will save the quality and also save up
on hardware resources. Another factor which can improve the performance is the view
distance setting, View distance refers to a maximum distance of objects in a 3D world which
are drawn by the rendering engine. If all these 3D object are rendered at a really big distance
in the 3D world it can slow down the performance and also is not really necesary to see
everything in the distance at a really good quality. So the view distance can be tweaked at a
defined distance to improve the overall performance, also to keep the quality there are some
tricks which can be used, like adding a fog effect in the distance or a blur effect. In the Unreal
Engine the view distance can take a value from 0 (min value) and 100 (max value).
Anti-aliasing is the method for fixing up the jagged edges and curved surfaces of 3D
objects. It’s smoothing out the edges by looking at the pixels and bending the colors with the
pixels around the object. Even if this method will increase the quality of the 3D objects a lot
it will also impact the performance so it’s important to keep the balance between the quality
and the cost. In Unreal Engine Anti-Aliasing can be implemented using two methods, FXAA
or Temporal AA. The FXAA can solve most aliasing problems except the temporal aliasing.
There are 3 options of quality (2, 4, and 6) with 6 offering the best quality.

4
Multimedia Systems

2.1.3. Middleware
There are several available middleware integrations from Audiokinetic (Wwise),
Autodesk (Autodesk Gameware), Donya Labs (Simplygon), Geomerics (Enlighten), IDV
(SpeedTree for Games), Intel (Intel Threading Building Blocks - TBB), NaturalMotion
(morpheme and euphoria), NVIDIA (PhysX and APEX), Oculus VR (Oculus Rift), RAD
Game Tools (Bink Video and Telemetry Performance Visualizer), RealD (RealD Developer
Kit - RDK), Umbra Software (Umbra 3), and Xoreax (IncrediBuild-XGE).
These integrations are available through the Integrated Partners Program that helps
Unreal Engine 4 developers maximize their time with an advanced game development
toolset. The partners program brings together leading middleware technologies and
software that are integrated with Epic’s Unreal Engine 4 game engine. Unreal Engine
4 is a revolutionary toolset that is designed for efficient workflow and is built to scale
from high-end PC and console to mobile and the Web. Each IPP member brings
significant value to the program by providing tools and features that are trusted for
high-quality game development.

2.2 Gamebryo
Gamebryo is a multi-platform graphics engine from Gamebase used primarily
for gaming, written in the C++ programming language. The platforms it is optimized
for include: Gamecube, Playstation 2, Playstation 3, Xbox, Xbox 360, Wii, Wii U,
and, of course, Windows.
The Gamebryo engine has been used some popular game titles including, but not
limited to, The Elder Scrolls: Oblivion, The Elder Scrolls: Skyrim, Warhammer, Axis &
Allies, Fallout 3, Fallout: New Vegas and even Fallout 4. It is used in conjunction with the
Havok Physics Engine in the Fallout series.
2.2.1. Middleware
The Gamebryo engine is a suite of modular C++ libraries. Game developers use it
because they can combine and extend the libraries to modify the engine for a particular game.
Gamebryo's development process design is perfect for a rapid prototyping approach and a
iterative development process.
One of the most popular middlewares for Gamebryo is NifTools, an open source
project creating tools such as an editor, C++ and Python libraries, and import/export plugins
for Maya, 3ds Max, and Blender for files used by the GameBryo game engine. NifTools uses
the NIF file format, representing be state-saves of the game engine in action.
A game engine is tasked with displaying a scene-graph representation of the game
world. This scene graph is composed of various parts which hold geometry, animation, etc.
The NIF files are used to save the state of the engine at a specific moment, in such a way that
the entire graph could be re-created.

5
Multimedia Systems

The NVIDIA PhysX integration consists of a robust physics engine, API, and
middleware designed to give developers and animators unprecedented creative control over
the look of their final in-game interactivity by allowing them to author and preview physics
in real time.
2.2.2. Graphical Object Representation
The engine is optimized and customized for each platform so that the programmer can
take full advantage of the unique performance and features of each platform. It handles
rendering, effects, particle system, collision, animation, and all things a developer needs to
make a game look great.
It has very robust exporters for 3ds max and Maya that enable an artist to easily
export content and see exactly how it will look in the game. Finally, it is an animation tool
that artists use to tweak and blend animations, and a scene designer that allows the artist and
game designer to place lights and objects in a level. Our tool architecture is plug-in based so
it is easy for a developer to extend our toolset for their particular pipeline needs.
Just like the Unreal Engine, Gamebryo is capable of realtime object visualization for
building a prototype quickly and easily, then build upon it. When building a prototype with
Gamebryo, you’re directly building your game. Everything you develop for your demo
moves directly into the game, making Gamebryo a great solution for both game prototyping
and production.
2.2.3. Performance
For the longest time, Gamebryo had one of the best asset pipelines and content
streaming on the market. The entire process for content creation was smooth when working
from 3DSMax. It also had some of the best large terrain support in its licensing range.
Considering it’s written in C++, Gamebryo allows for better performance.
Top performance is key. If the game engine doesn’t have it, a developer won’t use it.
Gamebryo’s approach evolves constantly as the underlying hardware evolves, from single
purpose 3D graphics chips where functions were hard wired, to programmable shaders, to
multi-core processors.

2.3 CryEngine
CryEngine is a game engine designed by the game developers at Crytek. They used it
in all of their game titles with the initial version being used in Far Cry, and it keeps getting
updated to support new consoles and hardware.
Crytek offers a licensing scheme, allowing CryEngine to be used for many third-party
games including Sniper: Ghost Warrior 2, SNOW, the medieval RPG Kingdom Come:
Deliverance. Ubisoft uses a heavily modified version of CryEngine from the original Far Cry
called the Dunia Engine, which is used in their games from the Far Cry series.
The CryEngine software development kit (SDK), originally called Sandbox Editor, is
the level editor used to create levels for the CryEngine. Tools are provided within the
software to facilitate scripting, animation, and object creation. It has been included with

6
Multimedia Systems

various Crytek games, including, but not limited to, Crysis and Far Cry. The SDK is used
extensively for modding purposes.
2.3.1. Graphical Object Representation
The editing style of the SDK follows a sandbox concept, with the emphasis on large
terrains and a free style mission programming. The editor can also construct indoors. As
opposed to editors like the UnrealEd editor, the Sandbox approach has an additive style: the
objects are added to an overall empty space.
The Sandbox's concentration on huge terrain, means that it uses an algorithmic form
of painting textures and objects onto the landscape. This uses a parameter-based approach to
define the distribution of textures or types of vegetation, saving time and making the editing
of such large terrains feasible while maintaining the overall free roaming style.
Just like Blender, which can be used for game design, the Sandbox editor has the
ability, with a single key press, for the editor to jump straight into the current design using the
What You See Is What You Play feature. The player view is shown within the 3D portion of
the Editor. This works without loading the game as the game engine is already running within
the editor.
The Editor supports all of the CryEngine features: vehicles and physics, scripting,
advanced lighting, Polybump technology, shaders, 3D audio, character inverse kinematics
and animation blending, dynamic music, Real Time Soft Particle System and Integrated FX
Editor, Deferred Lighting, Normal Maps & Parallax Occlusion Maps, and Advanced Modular
AI System.
2.3.2. Performance
Code compilation with CryEngine is fast. Full engine source code is translated in
minutes which gives you time to spend where it is really important – on development!
CryEngine’s build system “CryWAF” is taking advantage of an open-source build
automation tool. The integrated cross-platform support allows having centralized settings
across several platforms.
CryWAF is flexible and allows quick-jumping between various build pipelines while
ensuring to build only what really needs to be build. Extensions such as “Automatic project
generation” or a simple GUI allow tweaking the command-line based system to your projects
requirements.

3. Conclusion
All of the analyzed game engines would be a great choice for a game development
process. Unreal Engine 4 gives you the ability to create games with photorealistic graphics or
simple 2D side scrollers with a reasonable pricing model. Gamebryo is great for prototyping
and incremental work. CryENGINE has amazing graphical capabilities as well. Not covered

7
Multimedia Systems

here, but another great choice would be Unity, which is perfect for mobile, 2D and 3D game
development when starting out.
It’s ultimately up to you to decide which one works best for the project you’ll work
on. One thing is certain: there are many great game engines to choose from.

You might also like