Components of Game Engines
Graphic rendering:
Graphic rendering is what keeps the game going without lagging or through
the loss of frames, through the majority of games, graphic rendering usually
works by loading the section of the map that the player can see within the view
perspective, this can also help to minimalise glitches across the game, and
reduce system usage, if the player is in one part of the level/world, there
would be no reason to have CPU usage wasting due to a still functioning AI
across the other side of the map. In some game engines, such as the Frostbite
engine, the graphics will always render before the player(s) have entered the
game, as the game's maps have to be quite large, the buildings and objects in
the game usually have to be quite basic otherwise the engine could produce
problems and glitches for the player(s). Occasionally the engine will glitch
and the graphics can render blurry and discoloured but that rarely happens and
also to a very small part of the area. Anti-aliasing is a feature used in most
video games to smooth off edges of a map to make the game look tidier and nicer
over all, when two parts of a map (in this case a building and the ground)
could collide they would look very flat and sharp on the edges so the anti
aliasing effect would help to make the game seem more realistic and boost the
graphics output. If the player chooses the anti aliasing option on a ps3, it
might lower the frame rate of the game compared to the xbox due to more
graphical output coming out of the system. Most modern game engines will have
some sort of shadow effect built into them, shadows give a realistic effect
which works when a light source in the game, if the setting is dark, the
shadows might not be necessary so they can sometimes be turned off to keep the
frame rate up. Shadows work with subsurface systems to help calculate when and
where the shadows will be needed in the world. In some games, there will come a
time when the graphics need to be lowered to help with the frame rate and rendering
of the world, when the quality of the graphics is at its highest, there will be more pixels to load and every
aspect of the game will be higher causing the game’s frame rate to
drop(especially if the graphics card quality is bad). Radiosity is used when
light sources such as the sun cannot directly reach an area (such as a
building) and creates an indirect light source (lights, windows, etc) to
illuminate an interior of a building. Depth testing is a method of graphical
rendering that calculates if an object is in the player’s line of sight and if
it isn’t it will render as the player draws closer to it, as this happens,
objects opposite the player will disappear to prevent loss of frame rate and
too many objects being in the world at any time. Most game engines feature some
kind of pixel rendering unit, which operates using GPU to help render pixels
using lighting and bump mapping and can be changed with the scene orientation
to create silhouettes and other in game effects.
Culling techniques are a part of
the graphics system that help render an image based on the objects in visible
view, there are 3 different types of culling methods:
Back face culling:
because meshes
are hollow not solid objects , the backside of some polygons will never face the
camera, this typically means there are no reason to draw the faces, this causes
the effect in video games where if the camera is inside the mesh, it usually disappears.
Contribution culling:
often, objects are so far away that they do not
contribute to the final image that much. These objects are thrown away if the
screen projection is too small.
Occlusion culling:
objects that are completely behind other opaque
objects may be culled. This is a very popular mechanism to speed up the
rendering of large scenes that have medium to high depth complexity.
Animation systems:
Animation systems are a sequence of models linked together to
play one after the other which give the illusion that players or objects etc,
the animator would link certain parts of the object, for example the spine to
the shoulders to the arm to the hand. This would give the computer an idea of
how the structure of the object would look. The animator would then program
sequences of this object together for an animation. The game engine would then
have to use this animation clip to make the object play. Animation systems work
in still objects as well, such as buildings and structures which will destruct
on impact of explosion or a vehicle. An animation artist will pre-program the
animation sequence to work with the collision detection and damage multiplier,
if the damage multiplier is high enough the wall will collapse in the sequence
created by the animator. Another type of
animation is forward kinematics. Forward kinematics
refers to the use of the kinematic equations of a robot to compute the position
of the end-effector from specified values for the joint parameters. There are two main spaces of Kinematics, Forward Kinematics and Inverse
Kinematics. It is the motion
of bodies without taking into consideration of the force or movement that is
caused. Forward Kinematics is a mapping from joint space Q to Cartesian space
W: F(Q) = W. Forward Kinematics problem isn't complexity deriving the
equations. Animations can also be a sequence of a drawing or GCI where multiple
copies are made with a slight change in each one, in an order, if these images
are played quickly it resembles an object moving, this type of animation was
the first to be used and has been used before electricity was invented, these
were known as phenakistoscopes. Particle systems are often needed in game
engines to create real world elements such as snow, dust, sand and smoke, in
order to use particle systems, they must be animated to work however. When a
particle system is created it would normally be created with options to be able
to change the animation speed and technique, for example, if the world creator
wanted to use snow, they might want it light, heavy, thick or thin, so whatever options wanted would be changed
as such in the game engines system editor.
Systems:
The systems are the stats of the game engine that control the
actual game play, they are monitored by the game engine to keep the game
working correctly, these functions include: AI functions, system CPU usage,
Graphics systems, and frame rate. The system is the program that allows the game engine
to function, it will often include effects or pre-programmed scripts which help the system to function, some of
these include: subsurface scattering, causistics and networking. Subsurface
scattering is included in some game engines and is the effect that allows light
to travel through objects and water. For translucent objects, the light is
projected through and made to blur so it gives a blurry effect on the
light. Some Subsurface systems are
included in the CryEngine and the Unreal engine. Causistics is when like is
projected on and off objects by creating photons to help create mirrors, reflections,
flares and concentrated light sources. Networking is where multiple different
people or servers can connect to the game engine to provide multiplayer game play.
The network must be connected by at least 2 different devices to function or
the networking would be pointless. The data is transferred by connective cables
which tell the game engine what will happen on the screen by fault of another
player or game object.
Artificial Intelligence:
AI is a code written and designed for a computer controlled
character or command, such as a race car in a game such as need for speed, or
how a neutral character would act during a game such as Skyrim where a guard
would have a set route which would change during certain days or after a an act
of the player. Artificial intelligence does not always apply to Characters in a
game; it could also be applied to scenery, buildings, and other objects. It is
more commonly applied to characters though as small coding scripts are normally
applied to inanimate objects instead. Most animations use path based coding
where the object such as a person or a vehicle. A path is a set of way points
linked together in an order that makes them seem like they are functioning or
walking in a set line. The waypoints can be set to an environmental object such
as a car or a wall for cover. The waypoints will always be an untextured
object. World navigation is when you or another player will have to move around
a world when one way is not possible, the game will calculate the way or the
start of a way to move the player back on track, this is usually achieved by
using a minimap with a GPS or an arrow which shows the player where to go. AI
controlled characters also use this method, it is usually used when they need
to follow the player or to calculate the easiest route to get to him, most
characters are individually programmed, but more recent games have the ability
of AI to make the engine create the route without the need of programming.
Middleware:
Middleware is the software that stands between game engines
and physics; it is described by games designers as “software glue” as it helps
piece things such as 3D models and in game assets together. The middleware is
not an operating system or a game engine or even part of a management system,
it is merely a small piece of software built into the game engine that helps
designers work easily by linking the assets needed into the game engine from
their fill. Overall, middleware is what designers use to help with the
input/output and communication of games so they don’t have to spend time
programming physics and game engines together.
No comments:
Post a Comment