25.12.2012 Views

Ultimate Game Design : Building game worlds

Ultimate Game Design : Building game worlds

Ultimate Game Design : Building game worlds

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C H A P T E R 5<br />

“interface hazard” exists everywhere you look in the construction of an RTS title—<br />

true for other genres as well, but especially true for an RTS. Multimenu systems that<br />

you have to drill down into are slow and irksome to the player. You lose people when<br />

interfaces are too deep. If you sacrifice interface comprehension and navigability for<br />

complexity or a multitude of features, you are burning your audience.<br />

I try to pay very close attention to <strong>game</strong> interfaces. I study even closer the ones that<br />

don’t lose me. I keep a journal of what works well in an interface for me, and some<br />

notes on why I believe it works so well. Was it a layout factor? Was it a customization<br />

feature that made it easier for me?<br />

Unit behavior must interact with the terrain or environmental setting of the <strong>game</strong>.<br />

In various formations, as individuals and as groups, units must navigate terrain.<br />

They need to find their way around objects on the terrain (such as buildings, rivers,<br />

and other units). The code used to control their movement from point A to point B is<br />

called pathfinding code. There are several algorithms that programmers can use to<br />

create the control code that describes how units should move and conform when confronted<br />

by obstacles. How do you move a large group formation through a narrow<br />

passage? Units get stuck, hidden, and clumped together. It’s a bottleneck of ants trying<br />

to get into the ant hole.<br />

In creating CPU opponents to challenge the player, your scripts and <strong>game</strong> code<br />

will have to be balanced against an “average” human player (it’s hard for all developers<br />

to determine exactly where the median or average <strong>game</strong> skill level is for any kind<br />

of title).<br />

The human player might make better strategic moves, for example, but be slower<br />

at building up a large fighting force. The CPU can build forces quickly by constantly<br />

creating new soldiers at an optimal rate, but will probably make some bad strategic<br />

moves. You have to balance all of this with the play experience in mind. If the CPU<br />

quickly and effortlessly builds a huge army with the most-advanced soldiers, vehicles,<br />

and weapons available in the <strong>game</strong> and devastates the human player immediately<br />

(and repeatedly, if your player grants you another chance to entertain them),<br />

you’re going to have a frustrated and humiliated player. This is the exact opposite of<br />

the experience you intend to deliver. Yet, many <strong>game</strong>s continue to make this mistake.<br />

Since we’re building a <strong>game</strong> with strategy at the core, how much strategic thinking<br />

will we demand from the player? When building up strategy scenarios, we can use either<br />

simple or complex strategy. Simple strategy might imply doing something to<br />

counter your enemy. That’s not enough, though. Does it make for an exciting and addictive<br />

play experience?<br />

Requiring players to use complex strategy, where the player must be thinking several<br />

moves ahead of their own current position (like the kind of strategy and concentration<br />

chess requires) can make for a very difficult <strong>game</strong>. This will narrow the<br />

number of players for your <strong>game</strong>. Most <strong>game</strong>s build scenarios around simple strategy.<br />

This strategy element regularly takes the form: “use these weapons or these vehicles<br />

119<br />

<strong>Design</strong> by Genre

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!