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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

an asset exporter from a 3-D package into a <strong>game</strong> engine, either. It’s all about how<br />

much control you have over these kinds of assets once they are running in a <strong>game</strong><br />

scene via a <strong>game</strong> engine. <strong>Design</strong>ers are hamstrung by tools every day.<br />

At this point, it’s important to understand that one of the critical design, layout, and<br />

execution challenges faced by most <strong>game</strong> developers involves what I call “tools shift.”<br />

This term simply refers to a present working reality in <strong>game</strong> development: you don’t<br />

necessarily know what tools you are going to use to make this <strong>game</strong> for this platform,<br />

versus what tools you are going to use to make another <strong>game</strong> for a different platform.<br />

After you finish a <strong>game</strong> and move on to creating another <strong>game</strong>, you may need to rapidly<br />

learn another toolset to support the current title you’re working on. You may even<br />

be learning and exploring the toolset for the following project while you’re finishing up<br />

your current project.<br />

For most independent developers, creating a custom toolset is an expensive proposition.<br />

It’s expensive to build, to support, and to document. Maybe the tool will only<br />

have use in the creation of a single genre <strong>game</strong>, and you’ll be moving on to another title,<br />

possibly in another genre, which may or may not be able to take advantage of the<br />

tools framework you’ve created. Ouch! It happens all the time.<br />

The tool you are currently using might be a large MEL (Maya Embedded Language)<br />

script written into Maya. MEL lets you customize Maya in an open-ended and flexible<br />

way to suit your own development needs. Then again, maybe you’ll use a MAXScript<br />

written into 3ds max. There are similarities, and also striking differences.<br />

Perhaps you will use a stand-alone editor written as a tool for a specific <strong>game</strong> engine—each<br />

of these editors has performance and use nuances all their own. Each of<br />

these possibilities (as well as others) contributes to tools shift. Tools shift can make it<br />

extremely difficult to accomplish meaningful, hopefully powerful <strong>game</strong> editing on a<br />

tight schedule with limited resources.<br />

If you’re working in a constantly evolving development environment, my advice is<br />

to get to know well one 3-D package, one FPS editor, and one RTS editor. It’s also important<br />

to be able to move around between scripting languages that are C-based<br />

(structured/object-oriented languages) or conditional (like Python or Visual Basic).<br />

Many of the tools used to build <strong>game</strong>s are quite complex and are not mastered overnight.<br />

Mastery is often as elusive as those particles wafting away from an emitter. It’s<br />

like trying to catch a flock of birds in the dark wearing handcuffs. Most of <strong>game</strong> development<br />

is a gradual and sometimes excruciating learning process. If you are learning to<br />

model low polygon objects, or learning to model environments, don’t beat yourself up<br />

if you’re not building the Taj Mahal in 15 minutes during the commercials. Persistence<br />

alone is omnipotent. Just like many crafts and disciplines, you have to stay at it to improve.<br />

You will improve. It might not be according to the schedule you are demanding<br />

from yourself, but you will see progress.<br />

77<br />

Lighting, Texturing, Particles, Effects, and Audio

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

Saved successfully!

Ooh no, something went wrong!