A game engine is the main
software used within a game, it manages all the internal aspects of the game
like culling and artificial intelligence. There are different engines for 2D,
3D, mobile games, as well as game mods.
There have been multiple 3D
game engines in game history, but here are some of the most influential ones
that made the industry a success. The first game engine to start using
texturing and some basic 3D components was Wolfenstein 3D in 1992 produced by
id Software. It was basic but it was a big hit, and started of the industry in
3D game engines. The makers of Wolfenstein would go on to create Doom. Doom
took texturing to a new level with texturing floors and ceilings; it also
brought forward more than one floor the player could reach within the game. The
next in the series of defining game engines is Quake in 1996, yet another
engine made by id Software. This brought the first 3D models instead of 2D
sprites, vertex shading and 3D realtime rendering e.g. lightmaps, also full 3D
game physics. Instead of every game company having to make a game engine, id
Software released theirs to the industry, to give them a building block for
making games, obviously with new graphics, levels...etc. Half-Life was released
in 1998 made by Valve software. It was based on the quake game engine, but
added some major changes to its structure. But apart from that, it introduced intelligent
game play, with puzzles and challenges, this allowed gamers to think and learn
from the game. The game became wildly popular hitting a genre hot spot at the
time. In the same year Unreal was released, made by Epic Games. The Unreal
engine was completely new and wasn't based on other engines. It has evolved
into more advanced and complex engine with stimulating graphics, dynamic AI and
more photorealism within the game world. It as developed into one of the most
influential game engines known, used in games like Bioshock, Gears of War,
DMC5, Alice Madness Returns…etc. In the image below it shows how the engine has
developed from the first one to present day.
Other not so well known
engines are;
Lithtech by monolith, this
game engine wasn't as complex as quake or doom, but it was highly praised for
its programming. It was originally called DirectEngine as it worked on Microsoft's
DirectX technology, but the deal was cancelled they continued to make it, and
finally changed their name and release a game. It's first title was Shogo, a
Japanese anime, this was the start of a new player audience in games. Used in
games like No One Lives Forever 2 and F.E.A.R.
Source by Valve in 2004,
this game engine combined a lot of components used in other game engines to
make it better including, real-world physics, animation, AI. More and more polygons
were being added to the game to make its characters and environments look real.
By this time game developers were trying to make games more stimulating and
make the graphics more realistic and creating more defining games for different
genre's to attract a wide audience.
Torque game engine is made
for games on the iphone, this new technology develops 2D and 3D games for this
mobile. The iphone has introduced touch response in mobile gaming so increasing
the interactivity with the game player. Touch response character recognition is
the future for platform games as well as mobile. Other engines like EDGELIB,
also are designing games for the iphone. With all the attention on iphones will
other mobiles be left out? The next stage in mobile
gaming will be to create
more realistic graphics, but with a problem of how much space can be used within
a phone it's a difficult task.
A game engine is spilt into
different areas, rendering, collision detection, artificial
Intelligence, sound and
physics. Graphic rendering, this includes culling
methods, rendering techniques, lighting, textures, fogging, shadowing, depth
testing, anti-aliasing, vertex and pixel shaders and level of detail. Culling
methods, Culling is where to make a game faster you can cut out things that
aren't shown in the scene depicted. There are different types of culling
methods that do different jobs.
Binary space partitioning
(BSP), used both in 2D and 3D games, it splits the game world into sections and
determines where the player camera is at and then culls the polygons that can't
be seen.
Portal based is where
“rooms” are split into sections. Then through doors and windows...etc a portal
is added and connected to another room. By doing this you can render the room
the player is in and cull the rest.
Backface culling determines
what view of a polygon you can see and then culls the parts you can't see. For
example as you see in the diagram below if the player could only see the green side
of the cube then it would be rendered, then all other sides would be culled. View
frustum is a fancy term for player sight so if an object is out the plane of
sight then it is discarded, so it doesn't waste rendering time. For example if
a ball is behind the camera, this means its behind the near plane so doesn't
need to be rendered.
Occlusion culling is where
polygons that can't be seen within the view frustum are culled.
Game engines have multiple
rendering techniques to make things look pretty and less shit below are some of
these techniques;
Radiosity is where light is
used to illuminate something e.g. a room. It makes shadows from objects in the
room and also brightens up near by objects making them look realistic.
Ray tracing is where light
is traced through a game scene. It's primarily used for mirrors and transparent
objects e.g. glass, as it traces the light path when it bounces off the object
and simulates its direction. This is a good technique and makes the game more
realistic. Lighting detects whether a pixel is visible and adds light to it
from a nearby light source.
Shadowing is where shadows
are created through light by detecting whether a pixel is visible. To make a
person look real in a game they must have a shadow. Shadows create great ambience
in games, but also is a good rendering techniques as it can mask textures while
making the scene look realistic. Real-time shadow is when shadows follow a
pattern as they would in real time, like the sun travelling across the sky.
Fogging is a great
technique to create a scene and create perception of distance, and also reduce
rendering time. If objects too far away depending on the percentage of fogging
you use, you can't see through so object is culled, this is shown in the image
below. Also through fogging objects doing have to be textured, they looked
obscured, so again cutting down on rendering time. Particle systems can also be
used to create some fogging techniques.
Depth testing makes sure that
only close surfaces can be seen, so for example if you looked at your player
hand in front of the screen, depth testing does a mathematical equation to
figure out the distance and then shows the detailing on the hand. If your
players hand is farther away, it calculates and decreased the amount of
texturing.
Anti-aliasing is where an
unwanted shine is took off an image, take the picture below you see a lot of
aliasing, but when anti-aliasing is applied the image looks smoother and more
clear. Anti-aliasing is used on screen text too, to smooth pixelated writing.
Vertex and pixel shaders,
shading is a good tool for a more 3D effect on an image. On the latest games
per pixel shading was used, this calculated the shading due to lighting and
other effects on a per pixel bases making games look realistic. Different
shading techniques are used for different effects, ghosts, water, ball, rough
object.
And blah blah blah I’m
bored of game engines.Other stuff they have are as follows;
Animation
systems, this includes path-based, inverse kinematics,
forward kinematics and particle systems.
Systems, this
includes physics, effects, sound and networking.
Artificial
Intelligence, this includes AI agents, world navigation,
behaviours, neutral nets and fuzzy logic.
Middleware, this
includes rendering, sound, AI, physics, animation, modelling, texturing.
And now I never want to see, hear or
learn about game engines again. It’s so tedious writing about stuff you don’t
care about. I hope you appreciate my exuded passion.
No comments:
Post a Comment