The chapter begins with by introducing the topic of the book: the Unreal 3 Game Engine. So, what is an engine, when you are talking about a game? A game engine is a software system that manages all the parts of the game (the assets) and uses them to best effect to produce the game experience.
We are given a couple of examples of games that use this game system, then the text discusses the history of games called Unreal. With the advent of the Unreal 3 Engine, the Unreal Editor reached a maturity that allowed it to be used for many different kinds of games.
Most of this section must be considered as fan-site praise for Unreal, which has gone through multiple iterations and improvements since its beginning. We will pass by the purple prose, love poems, and exaggerations about the game itself, and move on to more technical information. (I mean, come on... comparing the PlayStation 3 to a supercomputer?)
The Unreal Engine is composed of several software components, as shown in the diagram on page 20. The components are introduced starting on page 14.
Pages 18 and 19 describe the game loop, the sequence of events that is repeated as long as the game is running. The Unreal 3 engine is described as being event-driven, as many game engines are. This means that the game loop program is constantly checking for input from the player and the game (events) that will affect what the game engine components must do next. The game engine holds a list of events that are sorted by their importance to the game. If two or more events occur at the same time, the most important event is processed first. Otherwise, input is processed on a First In, First Out basis. As each event is processed, the game engine components that must react to the event are notified.
Page 21 begins a section of the chapter that introduces new terms, as they apply to building a game or a game level in the Unreal 3 engine.
The text goes on to describe two kinds of mesh assets used in games: Static Meshes and Skeletal Meshes. A static mesh is used for objects in a scene, while a skeletal mesh is used for a character. A big difference is that a skeletal mesh must be rigged (fitted with an animatable skeleton) before it is imported into the game because it is meant to be animated. The animation of a skeletal mesh is accomplished by animating the associated skeleton.
Static meshes are used for non-character objects, and they are meant to be used in the game as instances. The first time an instanced object is used in the game, it takes up the most graphic memory, storing the entire image. Each subsequent instance just refers to the initially stored image, and only requires that the graphics engine specify where in the scene to put the new copy, and how to deploy it (e.g. rotated or partially occluded). The text warns that you can make a new static mesh for each object in a scene, but it is a bad idea because you can run out of memory that way.
Meshes will be constructed in 3DS Max in our classroom, and texture files will be made with Photoshop. Once the asset files exist, we can bring them into a game level with the Unreal Editor, described on page 26.