Game Development Reference
In-Depth Information
STRUCTURE OF A GAME ENGINE
So how does a game engine work, and how does it manage to keep track of all of those jillions of
assets it has to deal with? Well, modern game engines are some of the most complex applications
written, featuring dozens of i nely tuned subsystems that leverage existing technology or tools
oriented to specii c areas of game design. Examples of these include lighting, sound, game physics,
rendering, and asset control. All of these subsystems interact to ensure a precisely controlled and
consistent playing experience. The continued evolution of game engines has created a strong
separation between these various areas of design. It is not uncommon, for example, for a game
development team to have several times as many artists as actual programmers. Using a game engine
makes development of sequels much easier and faster, as the existing framework and content can be
modii ed as needed.
A game engine is based on the concept of an IDE or Integrated Development Environment. IDEs are
commonly used to create standard applications that run on your desktop or laptop. Xcode is the IDE used
for Mac, iPhones, and iPads. Visual Studio is common for PC development. Eclipse is a popular IDE for
developing Android applications. All of these use various data elements arranged in a specii c hierarchy,
often with libraries of commonly used functions for user input, video, sound, and more. However, because
a game engine involves specii c requirements, the design is generally dif erent and more focused.
A typical 3D game engine can usually do the following:
Import and arrange pictures and 3D graphic models . As we mentioned earlier, a game engine is
usually not the place where items like 3D graphic models and 2D images are edited but it IS the place
where they are imported, assembled together and their relationships are dei ned.
Import and arrange sound i les . As with graphics, game engines usually do not feature the ability to
create or edit sound content. That task is usually left to a dedicated audio editing application such as
Pro Tools or another DAW. The engine concerns itself mainly with HOW and WHEN the sound is used in
the game interactively, not the specii c sounds used.
Render light or edit objects . Objects brought into the environment of the engine must be viewed
accurately and, if necessary, modii ed in terms of texture, shape, or size. This is where DirectX or
OpenGL support (many engines support both) is vital to the proper viewing of the objects or
surfaces. Lighting is an essential dynamic element to any visual object—when a character in a game
walks past this object, the light is dynamically changing. Arranging light sources, their intensity
and position, will greatly af ect how the game is viewed by the player. Texture is another useful two
dimensional component, lending realism to a 3D surface making it look dingy or sparkling. The
texture is usually a simple picture of real or imaginary surfaces, which are then mapped onto 3D
models.
Determine the function of physics in the game . The broad category of physics in games is
hugely important and mainly deals with three things: gravity , which dictates how objects obey
physical laws as well as laws of acceleration and momentum; rotation , which controls the angle
of an object based on these rules; and collision detection . Of these three, collision detection is
the most important to interactivity in a game environment, because it's the game engine's way of
knowing when a physical object has touched or passed through another object. Physics governs
 
Search WWH ::




Custom Search