Game Engine Architecture

(Ben Green) #1

706 13. Introduction to Gameplay Systems


demark areas for various purposes. Some game engines restrict regions
to being modeled as spheres or oriented boxes, while others may per-
mit arbitrary convex polygonal shapes when viewed from above, with
strictly horizontal sides. Still others might allow regions to be construct-
ed out of more-complex geometry, such as k-DOPs (see Section 12.3.4.5).
If regions are always spherical then the designers might be able to make
do with a “Radius” property in the property grid, but to defi ne or mod-
ify the extents of an arbitrarily shaped region, a special-case editing tool
is almost certainly required.
z Splines. A spline is a three-dimensional curve defi ned by a set of control
points and possibly tangent vectors at the points, depending on the type
of mathematical curve used. Catmull-Rom splines are commonly used
because they are fully defi ned by a set of control points (without tan-
gents) and the curve always passes through all of the control points. But
no matt er what type of splines are supported, the world editor typically
needs to provide the ability to display the splines in its viewports, and
the user must be able to select and manipulate individual control points.
Some world editors actually support two selection modes—a “coarse”
mode for selecting objects in the scene and a “fi ne” mode for select-
ing the individual components of a selected object, such as the control
points of a spline or the vertices of a region.

13.4.1.9. Saving and Loading World Chunks
Of course, no world editor would be complete if it were unable to load and
save world chunks. The granularity with which world chunks can be load-
ed and saved diff ers widely from engine to engine. Some engines store each
world chunk in a single fi le, while others allow individual layers to be loaded
and saved independently. Data formats also vary across engines. Some use
custom binary formats, others text formats like XML. Each design has its pros
and cons, but every editor provides the ability to load and save world chunks
in some form—and every game engine is capable of loading world chunks so
that they can be played at runtime.

13.4.1.10. Rapid Iteration
A good game world editor usually supports some degree of dynamic tweak-
ing for rapid iteration. Some editors run within the game itself, allowing the
user to see the eff ects of his or her changes immediately. Others provide a
live connection from the editor to the running game. Still other world editors
operate entirely off -line, either as a standalone tool or as a plug-in to a DCC
application like Lightwave or Maya. These tools sometimes permit modifi ed
Free download pdf