Desired Functionality............................
So what sort of functionality should a level editor include? Many might suggest an
important part of any level editor is having hot keys hooked up to all the important func-
tionality. Others would recommend plenty of configurable settings that allow different
designers to turn on and off the features they prefer, when they need to use them. It
goes without saying that a level editor should be stable enough that a designer can use
it for a number of hours without it locking up. But these suggestions are all obvious;
they are the bare minimum that an editor should do to be useful. What sorts of features
should be included to allow an editor to truly shine, to empower designers to do the
best work possible?
Visualizing the Level...........................
The most important objective for a world creation tool must be to allow the designer to
see the world he is creating while simultaneously enabling him to make modifications
to it. This is often called What You See Is What You Get (WYSIWYG) in the domain of
word processors and desktop publishing packages, but is not something that level edi-
tors are universally good at. I will call such a WYSIWYG view the “player’s view” since
it represents what players will see when they play the game. The world the designer is
crafting should be seen in this player’s view window using the same rendering engine
the game itself will employ, whether this means 2D or 3D, sprites or models, software
driven or hardware accelerated. This seems to be the most important feature of any
level editor. How can a designer hope to create a good looking world if he must first
tweak the world’s settings in the editor and then run a separate application to see how it
looks in the game?
The designer should be easily able to move the camera in this player’s view so that
he can quickly maneuver it to whatever section of the map he needs to see in order to
work on the level. This movement is probably best accomplished with a simple “flight”
mode in which the designer can control the camera’s position using simple movement
and turning keys. In this mode the camera should move without colliding with geome-
try or other game-world objects. Though one may also want to provide a mode for the
player’s view where the designer can maneuver through the game-world as players will
in the final game, the editor should always allow the designer to move around the level
unconstrained. In order to finely edit a level, the designer must be able to look closely at
whatever he wants without having to worry that a tree blocks his way.
Every difference that exists in what the designer sees in the editor and what will
show up in the game will make the levels look that much worse. Suppose only the unlit
view is available in the editor, while the game itself has fancy lighting that creates pro-
nounced shadows. This will create frustration for the designer, since he will not be able
to easily tell how the level will appear in the game. Sure, the level looks great when
playing, but while in the editor he has to guess what the lighting will be like and how the
changes he makes will affect the final level. A limitation like this would be especially
unacceptable if the gameplay relied more on lighting and shadows.
Of course, the world as it will appear in the game is not always the best view from
which to edit that world. For this reason, level editors often need to include an “editing
view” in addition to the player’s view. The editing view is often top-down, but may also
394 Chapter 21: Designing Design Tools