0% found this document useful (0 votes)
346 views448 pages

Videogame Developer's Strategy Guide

Libro sobre desarrollo de videojuegos.

Uploaded by

cuentabasurappp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
346 views448 pages

Videogame Developer's Strategy Guide

Libro sobre desarrollo de videojuegos.

Uploaded by

cuentabasurappp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 448

ß

Videogame
Developer’s
Strategy Guide

By Chris DeLeon Edited by Laura Schluckebier


Chapters Overview

Why a Strategy Guide?...........iii


1. Getting Started......................13
2. Questions About Education...73
3. Programming......................109
4. Get Motivated.....................170
5. Game Design.......................208
6. Level Creation....................265
7. Team Projects.....................299
8. Industry..............................348
9. Game Analysis.....................405
Image Credits.....................443

ii
Why a Learning to develop videogames is itself an
open-world adventure. Explore in any direction
Strategy you’d like. Develop character skills that are
broad, or specialized. Build a party, or go solo.
Guide? While this book can be read cover-to-cover -
I’ve sequenced these chapters and sections to
help that go smoothly - for most people it will
work much better if used as a strategy guide.
If, in playing a game, you ran into trouble in the
Lava World, or wished to learn about Enchanted
Crafting, you’d head to that section of a guide.
Similarly, here, if you’re tinkering on a game type
that has levels, jump to the Level Creation
chapter for terms and processes. If you're in a
group, browse some sections on Team Projects.
There’s also one more way that this is like a
strategy guide: tips in a guide only help if you’re
actually playing the game it’s for. This guide is
for videogame development. For these ideas to
have context and purpose, you really should be
actively making videogames of your own.
If you haven’t yet started creating games:
today’s a great day to finally begin your journey!
iii
C H APT ER 1

Getting Started

1.1! Making Your Own Videogames at Home is Totally Awesome! 14


1.2! How Long Does it Take to Learn Game Programming?! ! ! 19
1.3! Hobby Game Development: 20 Questions! ! ! ! ! ! 25
1.4! Beginners Shouldn’t Start with a Design Document!! ! ! 39
1.5! Clone Videogames to Learn Real-Time Videogame Design! ! 42
1.6! General Concepts for Beginning Developers!! ! ! ! ! 45
1.7! Learn Videogame Development Like Woodworking!! ! ! 65
1.8! Fan Habits and Focus are Not Developer Habits and Focus!! 70

iv
C H APT ER 2

Questions About Education

2.1! Advice to a New Student in Videogame Design! ! ! ! ! 74


2.2! Questions from an Elementary School Class!! ! ! ! ! 78
2.3! Class Questions About Game Development Career! ! ! ! 83
2.4! Math for Videogame Making (Or: Will I Use Calculus?)!! ! 89
2.5! Question About Comp Sci. and Game Development! ! ! 94
2.6! The Ways of Self-Education! ! ! ! ! ! ! ! ! ! 103

v
C H APT ER 3

Programming

3.1! Game Programming Fundamentals! ! ! ! ! ! ! ! 110


3.2! How Programmers Program! ! ! ! ! ! ! ! ! ! 124
3.3! Position and Speed Variables! ! ! ! ! ! ! ! ! ! 132
3.4! Float and Int Variables: Casting and Other Issues! ! ! ! 138
3.5! Hack Then Refactor! ! ! ! ! ! ! ! ! ! ! ! 145
3.6! Basic Real-Time Videogame Artificial intelligence! ! ! ! 152
3.7! Quick and Dirty Back-Ups! ! ! ! ! ! ! ! ! ! 160
3.8! Steps in Programming a Simple Realtime Strategy Game! ! 165

vi
C H APT ER 4

Get Motivated

4.1! Stop Trying to Learn Everything Before Starting!! ! ! ! 171


4.2! "Overcomplicating Everything"! ! ! ! ! ! ! ! ! 176
4.3! Think by Building, Build to Answer Questions! ! ! ! ! 184
4.4 Your Attitude Matters Even When Working Alone! ! ! ! 187
4.5! Don’t Wait for an Event, Job, Contest, or Assignment! ! ! 191
4.6!The Brain is Not an Emulator! ! ! ! ! ! ! ! ! 193
4.7! Stop Arguing About What Makes a Better Game! ! ! ! 200
4.8!Start Before You Have an Idea! ! ! ! ! ! ! ! ! 204

vii
C H APT ER 5

Game Design

5.1! Modest First Projects and Incremental Learning!! ! ! ! 209


5.2! Bottom-Up vs Top-Down Game Design! ! ! ! ! ! ! 224
5.3! Photographer's Algorithm! ! ! ! ! ! ! ! ! ! 232
5.4! A Little Planning Can Go a Long Way! ! ! ! ! ! ! 236
5.5! Doing More With Less: Short Videogame Design! ! ! ! 242
5.6! Colorful Oceans and Chunky Sauces!! ! ! ! ! ! ! 251
5.7! Genres and Conventions: Known Patterns of What Works! ! 257

viii
C H APT ER 6

Level Creation

6.1! Anti-Design / Backwards Game Design in GoldenEye! ! ! 266


6.2! Level Design Concepts ! ! ! ! ! ! ! ! ! ! ! 273
6.3! Level Design Process! ! ! ! ! ! ! ! ! ! ! ! 281
6.4!Level Design Q & A! ! ! ! ! ! ! ! ! ! ! ! 288
6.5! Non-Essential Level Art is Essential! ! ! ! ! ! ! ! 293
6.6 Visual Language in Super Mario Bros Level Endings! ! ! 296

ix
C H APT ER 7

Team Projects

7.1! Videogame Project Management for Hobbyists and Students! 300


7.2! Communication is a Game Development Skill, Part 1! ! ! 315
7.3! Communication is a Game Development Skill, Part 2! ! ! 322
7.4! Establishing a Videogame Development Club! ! ! ! ! 337

x
C H APT ER 8

Industry

8.1! A Frank Look at Making Videogames Professionally!! ! ! 349


8.2! Indie Game Development as a Career! ! ! ! ! ! ! 358
8.3! Influence of Business Models on Game Design! ! ! ! ! 368
8.4!What’s Japan Doing Differently! ! ! ! ! ! ! ! ! 375
8.5! Intellectual Property and Hobby Game Development! ! ! 380
8.6!Should I Release a Game as Soon as It’s Done?! ! ! ! ! 392
8.7! How to Get the Most Out of Your First GDC! ! ! ! ! 396

xi
C H APT ER 9

Game Analysis

9.1 Why Minecraft Worked in 2011! ! ! ! ! ! ! ! ! 406


9.2 Reflections on Three Specific Hobby Game Projects! ! ! 422
9.3 Quit Smoking: Effect of Interaction on Interpretation! ! ! 434

xii
1 If this is the first material that
you’re reading about videogame
development: welcome! The way
forward is long, difficult, at
times frustrating... and totally
worth it. You’re on your way to
learning how to create your own
videogames! There’s nothing
better than homemade fun.

Getting Started

13
SE C TI ON 1

Making Your Own Videogames at


Home is Totally Awesome
There has never been a
better time than now to
design and develop your
own videogames. A typical
home computer is all that’s
required. The ways to learn
and share your games are
already huge - and growing!
Getting Started

The original Pac-Man took a team Now in 2014 virtually any decently
of nine professional engineers a experienced amateur can remake
year to create. Although we tend a videogame similar to Pac-Man,
to experience Pac-Man today as working alone, mostly in an
mere software, either downloaded evening. It doesn’t even cost
or played in a web browser, the anything to make.
original was a 400 lbs. (180 kg.)
Then you can distribute the game
painted wooden arcade cabinet of
worldwide instantly for free.
custom electronics that needed to
be shipped all over the world. What at one time revolutionized
the game industry is now less
Pac-Man’s development and
complex than projects that we see
distribution required a level of
made in weekend game jams.
labor and equipment in 1979 that
could not have been achieved as a Things got better. Much better.
part-time side project.
14
BETTER FOR ALL OTHER GAME MAKERS, TOO be competing against more people
Advancements in development
than ever to do so.
and distribution options means
that we’re seeing more kinds of I’m not saying this to discourage
games, released more frequently, anyone. I’m saying it to establish
from a larger number of creators. perspective of what to prepare for.
DANGEROUSLY MISLEADING MYTHS
This is very exciting, for players
There are some misleading stories
and game makers alike. But it’s
out there which have tricked
essential to recognize that this
people into thinking that making
does not mean that making games
videogames is a get-rich-quick
as a business got easier, too. It’s
scheme, or that quality and hard
true that it’s easier to sell an app
work aren’t necessary to succeed.
on a smartphone than it was to
sell a game for the old Nintendo The first misleading myth is that of
Entertainment System or Xbox the overnight millionaires. Some
360, but that truth applies to every indies have fared very well. They
developer in the world. In August are talented, and they put in the
2013 there were multiple times work, but their success appears to
more new mobile apps published be overnight because you usually
per day (~2400; VentureBeat) than haven’t heard of the first 30-50
the total unique games released games they’ve worked on, or seen
ever for NES (~800; Wikipedia), or what went into developing their hit
Xbox 360 (~1,139; Wikipedia). for years leading up to launch.
Most indie developers make very
The barriers to entry to making
little money from their games, and
games aren’t just lower for you.
many do paid contract work on
They are lower for millions of other
the side to make ends meet.
people making games, too. If your
main goal is to make indie games The second misleading myth is
professionally, know that you will that simple games that anyone

15
can make easily often explode into MOST CUSTOMERS AREN’T GOOD TEACHERS
The marketplace can be a brutal,
meme-like fame. The few games
risky, and unforgiving environment,
like Flappy Bird are the exception,
which doesn’t make it very friendly
not the rule. For every tiny, simple
to beginner learning. People that
game you see that becomes a hit,
insist on releasing their first games
tens of thousands of little games
commercially just to see, and
quietly flopped.
“maybe earn a little on the side”
Tossing tiny, unsophisticated are seeing discouragement from
games into digital stores just in dozens of dollars or less for
case one takes off is like buying months of their work. Would we
time-consuming lottery tickets. really expect otherwise though, if
The vast majority of successful someone just learning guitar sold
games were not simple projects or their practice attempts on iTunes?
lucky breaks, but the result of hard For this reason I advise people
work, talent, and experience. Nor who are in it for the long-haul to at
does every game that arises from least begin by making games non-
hard work, talent, and experience commercially. What can be done
become a hit. No one gets any now without funding is incredible.
guaranteed profits or benefits from It’s a great way to start without
effort or seniority. Every game is a betting the farm, nor mistaking a
new, separate effort to excite and lack of paying customer response
engage demanding audiences. as a reliable gauge on whether
To make games professionally you’re learning and progressing.
your work and skills need to be Like a person going to Hollywood
extraordinary. It’ll require practice, aspiring to be a movie star, if the
persistence, experimentation, goal is to earn a living making
compromises, and humility along games as an independent
the way. developer, it would be prudent to
16
have a backup plan, a day job, others. Not sure whether
and an understanding that it’ll be a something is worth learning? Just
long, bumpy road to success. learn it. Then you’ll know if it was.
BUT IF WHAT YOU WANT IS TO MAKE GAMES Along your way you will learn and
If your near-term goal is to make
use many different programming
games, rather than to make games
languages, tools, and changing
as a business, then this is without
development environments. Don’t
a doubt the best, easiest, most
get stubbornly stuck on whichever
exciting time yet to be doing it.
you use first, and then it won’t
You have so many options of ways make much difference which it is.
to learn, ways to create, and ways
Know too that if you want to make
to share. I’ve actually heard this
videogames, learning can’t just be
major benefit turned around and
book smarts. Your attention has
used by someone as an excuse:
also be on doing a practical skill.
there are so many ways to make
Reading can be helpful, a good
games now that they “can’t figure
use of time, but reading alone is
out the best way to start.” Absurd!
not enough, for the same reason
There is no one best way to start,
that someone won’t become a
nor one best way to make games.
great painter without a canvas.
Anything that gets you making GET LOST IN FOLLOWING YOUR INTERESTS
games and trying out your ideas is If you wish to establish an identity
great. Within this book I’m going of your own as a developer you
to give you the very best advice can’t get caught up in chasing
and ideas that I have to offer, but trends. Find and develop your own
part of my advice is this: learn voice by following your passion.
from any and every source that "Not amusement nor distraction, but the desire to
you can. I’m but one of many effect some cherished purpose is the strongest
people who have been making motive that can move the learner."
"" " " " -John William Adamson
games and is excited to help
17
In order to create your own little requires special gear or privileged
worlds, you’ve got to be ready to access to retail distribution. You
live a bit in your own little world. can learn to do it in your free time,
free from external pressures, and
Well before stressing about what
free to share however you wish.
the public thinks, perhaps focus
first and foremost on impressing You can bring new games and
and surprising yourself with just ideas into existence simply
what you can accomplish. because you want them to exist.
Pull yourself from distractions, If there turns out to be a smaller
zero in on developing the skills audience for it – whether a circle
that you wish you have. No one of your friends, a dozen people
can create your many games the across the globe, or even just you
way you want them but you. as the creator – that doesn’t much
matter. A game developed for free
Your games will exist. Make up
doesn’t have to sell 100,000+
your mind to figure out whatever
copies just to justify its existence.
you must as you go to make it so.
Accept that your games existing in As developers we’ve never had
an imperfect way is better than this level of freedom.
them not existing at all. (Anything
It’s a great time to be making
that ever exists is imperfect!)
videogames.
ENJOY THE FREEDOM
We’re so fortunate to be alive at a
time when you no longer need
anyone else’s money or approval
to make your game a reality, nor to
get your game in front of other
players around the world. Making
an enjoyable videogame no longer

18
SE C TI ON 2

How Long Does it Take to


Learn Game Programming?
Some people think they can
learn game development in
a weekend. Others think it
has to be a career decision.
Both are partly correct. Like
a good game, videogame
making can be easy to start
but is never truly mastered.
Getting Started

A friend asked this question the from not knowing how to drive to
other day. To peers nearby with knowing how to drive, or from not
more programming experience knowing how to read to being able
than him, it seemed like a silly, to read. Even disregarding other
almost nonsensical question. purposes of programming, looking
Whether or not that’s true, specifically at programming for
explaining why someone would videogame creation, there is an
think that sheds light on qualities enormous range of potential
of programming that may be outcomes, and many different
invisible to someone newer to it. metrics by which someone’s work
It’s a useful question either way. might be evaluated.
Game programming is not The question is a bit like asking
something someone goes from how long it takes to learn how to
not knowing to knowing, in the paint a picture, or how to play an
same way that someone goes instrument. Getting set up and
19
putting a paint-covered brush on are a few fundamental concepts
canvas or producing a musical and new vocabulary words to pick
note can probably happen on day up, then a bit of puzzling over
one, but after that there are people example code to make sense out
who devote decades of their lives of why it behaves as it does. This
to becoming better and/or more is typically followed by being able
versatile at these tasks. Then to modify example code to
there’s everyone in-between, from achieve slightly different results,
people a few weeks or months in increasingly so until someone’s
(able to poorly mimic the prior familiar with enough patterns and
work of others), to those a few basics to start building something
years in (able to effectly mimic and on their own. Even still, that first
perhaps personalize the prior work something will usually be quite
of others), to those several or familiar to previous dabbling, more
more years in that begin to identify a partial mash-up of ideas than a
with the art, striving to excel in project made from scratch, but
either classical execution or there’s nothing wrong with doing
exploring to discover a distinctly that to gain practice.
personal style.
From here, there are countless
Game programming is similar. directions in which to grow in the
Getting a development art of game programming.
environment installed and Someone might focus their energy
configured to turn sample code on writing well-documented, easily
from a book or website into a understood code, learning about
runnable application can probably best practices to work more
happen on day 1, or at least within effectively with one or more other
the first few days depending on programmers on a team. Such
the amount of troubleshooting skills are essential for career
needed. Once that works, there programmers on large teams,

20
although their importance among Then there is the matter of
solo and hobby developers varies learning more programming
so long as they are able to languages and development tools.
produce the results they desire. Occasional shifts in technology –
Someone could become a along with an acquired sense for
specialist in highly technical when it’s appropriate to switch
details or specific problems that between competing technologies
other programmers count on – can feel like setbacks at the
libraries or engines to solve, time, but in the long haul they can
learning how to write better save a lot of time and effort if done
network code, graphics rendering/ wisely.
effects, memory management,
Also like painting or playing an
custom file formats (such as
instrument, some people may find
levels, packed images, etc.), or
that it comes more naturally,
ways to address common issues
leading them to produce more
involved in making in-game
presentable efforts earlier in their
artificial intelligence. It’s also an
exploration, while others may
option within the repertoire of a
need a bit more time to fiddle and
game programmer to delve into
experiment before feeling as
hardware interfacing and the
comfortable. How long someone
construction of custom input or
takes to feel like they have a
output devices, to make games
handle on it isn’t necessarily a sign
utilizing new types of controllers
of how much they’ll accomplish
(think about how games like DDR
with it though – like any creative
and Guitar Hero might have
endeavor, persistence and plenty
started) or unusual forms of output
of practice will gradually outpace
(tactile feedback, external LEDs,
others that don’t work hard at it.
etc.).
Any game programmer is also able
to stretch themselves too thin,
21
taking on a task too far past the enough patience can learn to do.
edge of what they can do well, or Not everyone that paints is going
they can simply spend time doing to make works of art that sell for
more of what they already know huge sums of money – very, very
they can do. An inexperienced few will – and likewise the majority
programmer may technically be of people that play an instrument
able to make an RPG from will likely never do so
scratch, but it will be a very bad professionally. We’re quite used to
one by historical standards. painting and instrument playing
Likewise, a very experienced being a healthy part of life without
programmer can still make a needing to see careers defined by
simple breakout-style or classic them, for example hanging up
tank game of the sort that an paintings by our relatives around
inexperienced programmer might the home, or playing guitar in the
be wise to take on, but it could company of friends. I’m eager to
likely be done by the expert in see the generation after ours find
much less time, with (virtually) no it increasingly normal to compete
crash issues, and/or at a much in the freeware videogame made
higher level of overall polish. by a close relative, or to hang out
Naturally, if the goal is to both on weekends playing a videogame
learn and produce good output, a made by one or more of those
compromise between these two friends playing.
ends of the continuum works best.
Of course if someone does have a
The last similarity to painting or professional interest in game
playing an instrument is that, making, whether at a company or
especially at a hobby level for going it alone, they are much more
personal enrichment and likely to build momentum and
enjoyment, game programming is relevant skills by creating
something that anyone with videogames as a hobby than by

22
simply talking and thinking about But, roughly speaking, I’d offer the
it. following estimates (remember
that this is time to learn how to do
This goes back to the opening
something, not the time it takes to
question. Professional videogame
do it once learned) -
programmers – including lifelong
programmers with world- Recompiling and running existing
renowned accomplishments in the sample code: 1 day.
videogame industry – are still in
Being able to tweak someone
the process of learning game
else’s code: a few days, to a few
programming, in the sense that
weeks.
they are continually learning new
practices to make the most of new Being able to significantly add to
technologies. Someone is never or change example code: a few
done learning game programming months to a few years, depending
until they are completely done with on the complexity of code being
programming videogames, since altered, or the size of the change
the very act of programming being made.
videogames always involves some Here there is already a massive
experimentation, digging through dovetail of differences – adding a
APIs, and solving problems that weapon to someone else’s 2D
are new to us. Even when the sh’mup example code is a very
problems that are new to us have different undertaking than adding
been solved before by someone network play to an open-sourced
else, for all but the very hardest or single-player 3D game. To
most general of problems we can continue, though -
often solve them on our own with
Being able to write a crummy
less time and effort than it would
game from scratch: a few months.
take to dig up and adapt someone
else’s solution.

23
Being able to make a decent how the big picture will need to
game: 1-3 years of practice. come together by some fixed date
in the future. When working alone,
Ability to create something a
by comparison, those skills
stranger might like: 2-5 years.
typically need to be learned
Ability to create something cumulatively by working first on
strangers might buy: 5-15 years, simple enough games that the
though obviously varies based on light at the end of the tunnel is
the price, the strangers, the visible from the moment the
project, the presentation, and a project starts, then gradually
million other factors outside the incrementing project complexity in
programming itself. a way that the lessons learned
Note too that due to the team from past projects can be built
nature of game development upon for the next.
beyond the smallest scale, it’s
somewhat possible to “import
experience” by partnering with
someone that has been doing it
longer. Working with someone that
has more practice with videogame
creation can improve the overall
quality of work coming from
everyone on the team, due to the
added ability for the team as a
whole to detect and avoid
common issues, to employ tried-
and-proven strategies that have
worked out on previous projects,
and to build while accounting for

24
SE C TI ON 3

Hobby Game Development: 20


Questions
I wrote an article like this
one for Game Developer
magazine’s Career Guide. If
I had only one entry to put
in front of people, this had
to be it! Here is an extended
version, republished here
with permission.
Getting Started

For my first decade making from getting started, trapping


videogames, I was a hobbyist. I them from progressing, making it
created dozens of freeware games hard to finish projects, or leaving
without any intention of making them unable to get the most out of
my living from it. Since then I’ve their games once finished.
found joy in helping others get Because so many of those same
their start in hobby videogame questions seem to appear for so
development. A handful have gone many different people, I’ve
on to be professionals in the collected here the responses that
industry, but many are content to seemed so far to have best helped
just be making videogames as a the people I’ve worked with.
pastime.
Let me be clear that these aren’t
Alas, certain questions seem to just guesses or theories. In
frequently pop up that are addition to my own volume of
preventing a whole lot of people work I’ve also seen hundreds of
25
developers getting into small- money on making your pillow fort,
scale noncommercial videogame you are doing it wrong.
making with various attitudes QUESTION 2: WHAT’S THE BEST PLATFORM,
about it, some of whom fall off the DISTRIBUTION CHANNEL, OR STRATEGY TO
MAKE MONEY?
rails at various stages, while Answer: Has this question ever
others roll on project after project. kept anyone from picking up a
Questions About Starting basketball, learning guitar, or
taking dance classes? When, in
Out of the many people that are
rare circumstances, people do
capable of making videogames,
wind up doing those things
that want to make videogames,
professionally, they aren’t doing it
why are so many of them not
for the first time when someone
making videogames? These are
offers to pay them to do it – they
the questions I have heard people
did it for years out of a love for
explain as blocking them from
doing it. Art and shop classes
getting started.
don’t begin with an introduction to
QUESTION 1: HOW CAN I RAISE THE MONEY
NEEDED? marketing, not only because that’s
Answer: AAA videogame a fundamentally different skill, but
development can cost tens of because overemphasizing money
millions of dollars. Hobby early on can spoil the craft.
videogame development can be QUESTION 3: WHAT IF I’M NOT A GOOD ARTIST,
done entirely for free. Think of OR PROGRAMMER, OR DESIGNER?
Answer: In that case – and this is
commercial videogame
usually the case – you will have
development as architecture and
more to gain than someone who is
construction; think of hobby
already good at those skills.
videogame development as
Practical application is a great way
making pillow forts out of anything
to learn. The goal initially is just to
in reach. If you are spending
be functionally capable of doing
those tasks, in order to create
26
something from nothing. In the Enjoy your freedom, and find ways
same way that anyone can draw to make the most of it!
or sing (even if not incredibly well), QUESTION 5: WHAT IF MY HEART IS SET ON
anyone can build a level, anyone WORKING WITH HUGE GAMES, AND MAKING A
CAREER OUT OF IT?
can make a 2D sprite, and anyone Answer: Another way to get
can learn enough programming to started, that can help meet this
at least make something simple. frequent request, is by modding.
After that, practice will lead to This option may work out better
making things that are increasingly for people interested in
more involved. specializing in modeling, audio,
QUESTION 4: IF I CAN’T MAKE THE NEXT HALO level design, and genre-specific
OR FINAL FANTASY, WHY BOTHER?
Answer: You have numerous
programming. Before I was
creating games from scratch, my
advantages as an independent
first development experiences
developer that the huge
were making tweaks, weapons,
videogame studios don’t.
and levels for Command &
You can see your own ideas come Conquer, Doom, and Descent.
to fruition. You can follow your gut.
Not every commercial game is
You can play around with designs
feasible for modding. However
that would be far too crazy to bet
many of the most popular PC
on if the financial yield had to
games from the past 15-20 years
recoup 3 years of full-time
have great tools and active
employee salaries. You don’t have
communities. This is an fairly
to prove anything to anyone
different subject than hobby game
except your players (and/or maybe
making though: search the web for
yourself) – there’s no asking
modding. You’ll find plenty of great
permission or trying to win anyone
material and tools online.
over.

27
Indecision Questions Adobe’s Flash CS animation tool -
Buridan’s Donkey is a parable can serve that need. Modern
from philosophy in which a console and PC games are almost
donkey, standing before two all programmed in C++, whereas
equally appetizing bales of hay, ActionScript 3 and HTML5
was unable to decide on a reason projects dominate casual web
to eat from one pile rather than the game sites. Unity has also been
other. Paralyzed by indecision, the gaining a lot of ground very rapidly
donkey starved to death, next to in enabling solo developers or
more than twice as much food as small teams to make impressive,
it needed. cross-platform 3D and 2D games,
and is well worth learning.
In other words: any answer to
these next questions is better than But here’s why I brought up
no answer. Pick one and run with Buridan’s Donkey at the start of
it. this section: the only wrong
answer is no answer! Don’t be the
QUESTION 6: WHICH PROGRAMMING
LANGUAGE SHOULD I USE? donkey that starves to death in
Answer: To develop very smooth, front of twice as much food as it
high-performance downloadable needs, don’t be paralyzed into
computer games, C++ (using indecision by there being more
SFML, Allegro, SDL, or DirectX for great and valid ways than ever
the graphics, sound, and input) is before to make videogames. Get
still performance king. To make started on any of them, be ready
smaller games that can be played to learn a lot as you go, and even
on the web without players if you find that you change your
needing to mess with installation, mind later for the next game, a lot
both HTML5 and ActionScript 3 – of that same learning and process
which compiles to Flash programs will transfer smoothly into the next
bit can be used for free without platform you work with. Pick one

28
that you can find at least a few There are two strategies for
finished games were made with, thinking about scope that I have
and get started! found effective in guiding initial
QUESTION 7: WHICH TOOLS SHOULD I USE? planning:
Answer: I’m partial to free tools
1. The Console Decades Ladder
that get the job done: I suggest
GIMP for 2D images, Blender for Make something of ‘70s
3D models, and Audacity for complexity first – on the order of
editing recorded sound effects. In Pong, Breakout, or (if you’re
Windows, I program C++ projects feeling fancy) Missile Command.
using Bloodshed Dev-C++ 5 Once you have one or more
(though for more recent games of ‘70s complexity behind
developers Code::Blocks has you, move on to one or more
largely taken its place), and games of ‘80s complexity, before
ActionScript 3 projects using going on to ‘90s complexity, and
FlashDevelop. On Mac I tend to so on, sticking at whenever phase
get by with TextWrangler and you prefer.
recompilation scripts. 2. The Demo is the Game
QUESTION 8: WHICH PART OF MY DREAM
GAME SHOULD I WORK ON FIRST?
If you made a shareware/demo/lite
Answer: If it’s really your dream version to show off what the game
game, and you want it made right, is about, in an effort to rouse
you won’t make it the first project excitement about the full product,
that you work on. I recommend what would need to be in that
getting a healthy chunk of version? Plan on completing the
beginner errors out of your system game at that scope as the final
by making a few very modest and draft. If it comes out well, you can
simple projects first. build upon it for a longer or more
involved follow-up.

29
QUESTION 9: ARE SOME GAME TYPES SAFER build and test than a local-only
THAN OTHERS EARLY ON?
Answer: In my experience game. Sticking to single player
overseeing and assisting with projects, or videogames where
student projects, RPGs and side- players can share the same screen
view character-based genres are and keyboard, can greatly simplify
the most common failed or technical matters. To provide a
cancelled first-timer projects. This sense of scale for what can be
is due largely to their hefty art involved, for several of the student
requirements. and hobby projects that I’ve seen
support online multiplayer, they
Design the game with your art first spent a full semester building
quality and quantity constraints in the game for single player with AI
mind. Some 2D genres – such as opponents, or local multiplayer,
overhead racing, side-view flying, then still needed an entire second
abstract puzzle, and overhead semester – completely doubling
space shooters – require virtually the project’s development time –
no animation, such that merely to focus on getting online
rotating and sliding static images multiplayer ready for release.
via code will suffice. The other
QUESTION 10: WHAT SHOULD I PUT IN MY
major benefit to these game types DESIGN DOC?
is that they often do not require Answer: It’s a trap! There’s no right
hand-designed levels, instead answer to this question, because I
spawning opponents semi- think most hobby videogames
randomly, which saves the should not have a design doc.
development effort required to
Starting by writing a 20-page
create a level editor, level format,
design document is silly, and
and levels.
usually a misuse time for a
Note too that online multiplayer is beginning developer. This is like
often much more complicated to someone that has never cooked

30
anything before trying to invent a project, they cheat players out of
recipe in Microsoft Word, or an opportunity to explore
someone that has never worked someone else’s imagination, and
with wood before trying to invent a they cause a severe morale hit to
woodworking project by the developer(s).
sketching. As soon as the actual
Fortunately, just a few causes tend
project starts, that plan has to be
to be responsible for the
either thrown out (a waste of past
overwhelming majority of sunken
time) or constantly updated (a
hobby projects. That means that
waste of future time).
each can be addressed on its own
Use an image editor (GIMP, here:
Photoshop…) to make a rough QUESTION 11: WHAT CAN BE DONE TO KEEP
mock-up screenshot showing how STRESS AND SOCIAL POLITICS FROM PULLING
THE TEAM APART?
the game might look when Answer: Keep the team as small as
running. This will get you thinking possible, to minimize the
about pixels and user-experience. probability of severe personality
Then write just enough code to mismatch.
bring the screenshot to life. If
writing something down helps, I’d Minimize the project’s duration to
recommend keeping the treatment several months, or ideally even
to under one page, and focusing less for the first project or two.
on notes about gameplay rather Any rough tensions, frustrations,
than the game’s fiction. and misunderstandings that might
be present between people on a
Project Finishing Questions team are likely to grow if a project
Unfinished videogame projects are drags on.
not victimless. They waste the
Going into a project as a lead,
talented work of anyone that
make sure that you’re ready and
helped make content for the
able to functionally (even if not as
31
well) complete any of the kinds of members all completed their
work that you’re bringing aboard games.
team members to help out with.
Encourage the group of 15 people
Your ability to fill in for missing
to split into 5 teams of 3, and
areas to keep the overall project
overall you’re more likely to see a
on track gives other developers on
yield of 3-5 games, instead of 0.
the team the confidence that no
Don’t put all your eggs in one
matter who else leaves the team,
basket, avoid diffusing the clear
the show will go on and their work
responsibility of one person
will appear in a finished game.
ambiguously across multiple
This confidence can help keep
people, and aim to create an
others productive.
atmosphere in which teams can
QUESTION 12: ARE 5 PROGRAMMERS, 5 GAME learn from one another’s
DESIGNERS, AND 5 ARTISTS ENOUGH FOR 1
GAME? independent investigation or
Answer: If nearly everyone experimentation.
involved is a beginner, then that’s QUESTION 13: HOW CAN A PROJECT BE
far too many people for 1 game. PROTECTED FROM FEATURE CREEP?
Answer: When the game is in
Bigger teams lead to more
finaling mode, beginning perhaps
ambitious plans, longer project
halfway or three quarters through
schedules, more communication
its scheduled development time,
challenges, more development
generate a list of the bare
bottlenecks, and more conflicts of
minimum that needs to be done
both style and opinion.
before the game can be
I’ve seen student hobby projects considered finished.
with 25 members give up, as the
Now here’s the important part:
project leader claimed that the
only allow that list to shrink!
team wasn’t big enough to finish,
while a half dozen teams of 2-4 There are two ways to shorten the
list: complete the item it refers to,
32
or cut the item. Whenever you can QUESTION 14: WHEN SHOULD WE STOP
POLISHING THE CURRENT IDEA?
make a cut without decreasing the Answer: Iteration – the cycle of
quality of the game – even if only tweaking, trying out, and repeating
because it allocates more time to – is an important part of polishing
doing other tasks that must be every game. However, tuning
done – make that cut. offers diminishing returns, adding
If this sounds ruthless or contrary less overall value with each pass.
to the idea of hobby game It doesn’t take long before the
making, note that until it’s finished, game is as good as it’s ever going
it isn’t a videogame. A garage full to be, the tweaks are too minor to
of carved up scrap wood is not affect user experience, and it’s
the sign of a woodworker – a time to wrap things up in order to
homemade spice rack and a new advance to the next idea.
chair are. Just as the outside The old 80/20 rule of thumb
world does not want to drive a suggests that 80% of the player’s
90% working car or live in a 90% attention and enjoyment comes
finished house, no one wants to from 20% of your work. If you
play a 90% completed game. The can’t find something to tune that’s
other catch is that until it’s done, likely part of that 20% the player
it’s impossible to even say what will notice or care about, test the
“90% done” really means; game a few more times from start
sometimes we have to start over to finish without introducing any
to fit all the pieces together, which new changes, then call the game
puts a perceived 90% much done and move on to another.
closer to 45%. It’s either done,
QUESTION 15: WHY DOES “FINISHED” WORK
and a videogame, or it isn’t, and it KEEP GETTING THROWN OUT?
isn’t. As the old Apple Computer Answer: This happens when a
line goes, “Real artists ship.” project’s decisions are being made
in the wrong order, causing

33
everything to change whenever jump in music or be without
anything changes. sounds. Make sure people know
about it. If it’s something you’re
If the main character’s jump height
pretty proud of, enter it in a
is changed late in development,
competition. Blog about it. At the
that will potentially break every
very least tweet and post to
jumping area in the entire game.
Facebook about it, tell your
Until enemy health, weapon range,
friends, share it with online
and movement are finalized, levels
communities. Don’t just finish it
should be throwaway test cases;
then shove it in a directory to
after those decisions are finalized,
gather virtual dust. Games are
and levels are made based on
meant to be played. No matter
them, those values should not be
how great it is, no one will
revisited. Aim to make decisions in
download it or even visit the in-
an order that minimizes thrashing.
browser URL if they don’t know
Finished Project Questions what it is, and how to get to it.
What is one to do with the game Assuming that you have achieved
after it’s done? Read on: some visibility on the project, the
QUESTION 16: WHY AREN’T MORE PEOPLE other possibility is that people are
PLAYING OUR GREAT GAME?
Answer: First and foremost: do
having a hard time getting it or
running it. In many cases, this
some marketing. Use Screenflow
happens because the project isn’t
on Mac or Fraps in Windows and
well explained on the web, was
cut together a simple gameplay
packaged improperly, or wasn’t
trailer with some music over it. Tip
tested on alternative browsers,
for that: record with music
operating systems, or machines.
disabled in the game but sound
effects on, then for the trailer add If it’s downloadable, either set up
different music and decrease a single-file installer, or create a
sound volume, so the video won’t nicely organized zip file with
34
ReadMe.txt/PDF instructions QUESTION 17: HOW CAN I KEEP MY MIND
ENGAGED BETWEEN PROJECTS?
inside it. Try running the game Answer: Game making is a form of
from a few different computers, to speaking, and the time between
verify that the package you’re projects is an ideal time to catch
giving out to the world isn’t up on listening. Our minds can
assuming a particular library or fortify mid-development, filtering
framework is already installed. attention based on “does this
Present the game’s online link apply to my game?” Tear that filter
alongside a description plus a few down, let things in, and expose
screenshots. yourself to some new ideas.
If it’s a Flash-based game I strongly suggest carrying a pen
programmed in ActionScript 3, and a small notepad, to jot down
consider posting to sites like thoughts – not to save them
Kongregate or Newgrounds. This because they’re valuable, but so
often involves little more than that you can be free to move past
creating an icon and writing a them. You’ll encounter and come
short description, and can get a up with a ton of mediocre ideas
few hundred plays minimum, throughout the day, and they’ll get
thousands in most cases, and stuck in mind until you let them
sometimes tremendously more. out. Simply putting the gist down
After spending months on a game on paper can free your attention
project, spending even a few more from juggling it, making it easier to
evenings making it presentable move on to finding and
can have a dramatic impact on the considering the next ideas.
number of people trying the game. QUESTION 18: IS THERE ANY WAY OUR GAME
COULD HAVE BEEN BETTER, GIVEN THE SAME
This is time well spent. TIME AND EFFORT?
Answer: Don’t spread the
development efforts as thin. Focus
the love. The same amount of
35
attention that could be poured into Now, if it’s a student project, and
a poorly-made medium-sized it’s just friends working together to
game, could instead be applied to get experience on a hobby
a well-polished small game. project, then it’s definitely worth
Remember too that any partly considering ways to include at
unfinished game could have been least some work from all
a completely finished slightly more contributors if possible, especially
modest project. those that genuinely committed
themselves to doing their best
Control scope every step of the
possible work for the game. If
way: plan with it in mind, develop
something is bad enough though,
with it in mind, end with it in mind.
at least try to figure out some way
If great ideas come up during
to get that developer to do
development that won’t fit in the
another iteration on it, or arrange
schedule, record them for possible
the game in such a way that it
implementation in either an
won’t block / gate access to
update, sequel, or later project.
content by other developers on
QUESTION 19: HOW IMPORTANT IS IT TO GET
EVERYTHING THAT I MADE INTO THE FINAL
the team. If it’s really, really bad
GAME? and additional iteration can’t seem
Answer: Films and novels are
to fix it, see if they’re open to the
edited aggressively, and much to possibility of making something
the benefit of the end result. Most else from scratch to replace it. If
videogames probably should be the kind of work they were doing
edited aggressively, too, and this just wasn’t coming out at usable
can include chopping out parts quality (ex. their character art just
that are finished. In game design, isn’t coming out right), see if
if the inclusion of something is not they’re open to contributing in
improving the overall experience, some other way (assistance with
then it’s getting in the way of the sound? leading some external
elements that do.
36
playtesting efforts? something!). At like a simple English paper for
the end of the day though, school, something we all learned
recognize that an awful level or in middle school: there’s more to
puzzle or encounter early on may do in going from a first draft to a
prevent players from experiencing second draft than fixing spelling
the other content later in the game and grammatical errors – for
that came out well, and fairness to videogame projects most people
an individual developer many need skip the revising and focusing
to be balanced with fairness to the altogether as if their first output
team as a whole. was a second draft and they’re
ready to fix up little bugs then call
If it’s all your own work in question
it a final draft. Ever play a game
though, because you developed
that you would have
solo, don’t be bashful about
recommended to friends, if only
ruthlessly cutting the worst parts
“they had cut that one part out?”
away before release. Is the only
Find that part in your game, and
part of the game that really came
be brave enough to cut it!
together well one of the
minigames? Consider carving Great developers make self-
away the rest and just releasing editing part of their process. Strive
that minigame. Seriously. Or at to create more content than the
least separately, in addition to still game is intended to have or than it
also releasing the rest of the game needs to have, and going back to
(heck, for an interesting little trim out their worst material to
experiment, pay close attention to leave only the best. Need 12
how responses vary to the two). levels? Make at least 15 to choose
them from, or if you want a better
The best 30% of anyone’s ideas or
set of 12 levels, make 24. (Then
work are better than the other
resist the temptation to pollute
70%. This seems obvious, yet so
your end result by including at the
few people act on it. Think about it
37
last minute the very garbage that now, there may be in 5 years,
you consciously decided to throw when you’re still pulling in traffic
out.) from old games you made back in
QUESTION 20: IS IT POSSIBLE TO KNOW HOW 2014.
OFTEN MY GAME IS PLAYED, AND TO PARTLY
RETAIN THAT AUDIENCE?
Answer: Keep metrics. Use
StatCounter or Google Analytics
to keep track of how many people
visit your game’s website. You
might be surprised which of your
projects gathers the most
attention. Whether you’re sharing
your excitement with family
members, trying to recruit new
team members on a later project,
or updating your resume in an
effort to go professional, it would
be nice to later know whether your
game had 3 or 3,000,000 plays.
The second piece of that question
is to link back to your site, either
via a menu button in the game or
through a shortcut in the game’s
start menu folder or at least
include the URL someplace in-
game. This enables satisfied
players to find out more about
your current and future work. Even
if there isn’t much on your site
38
SE C TI ON 4

Beginners Shouldn’t Start with


a Design Document
I’ve seen many people try to
get started in videogame
making by writing a huge
document. As soon as work
begins on the game, plans
change entirely! Documents
can be useful... but far more
so after getting experience.
Getting Started

If you wanted to become a chef, If you wanted to become a singer


would you begin by writing down and songwriter, would you begin
recipes on paper? by writing notes and words on
paper?
I would start by following recipes.
Then I would modify the I would learn some chords, and
ingredients or cook time in my take vocal lessons. I would start
favorite recipes, experimenting in performing some popular songs
the kitchen. Only after a great deal that my friends and I would
of experimenting would I consider immediately recognize. I might
inventing a new recipe starting on write my own spoof lyrics to the
paper, since it would then be tunes I know, add my own flair to
informed by grounded the notes, or read up on music
consideration of how various theory. The first real inventing
ingredients combine and react to would likely to involve plucking the
different preparation processes. strings or playing the keys, and
39
experimenting with how words the design ideas translate into
come together in my voice. Only program code to form a finished
after a great deal of experience project.
inventing directly with instruments
4. Start programming and
and voice would I have a
designing variations on games
sufficiently grounded
that you like – by structure,
understanding of how music
extension, or adding personal
works to put notes on paper as a
touches.
first step.
5. After gaining comfort with this,
So why on Earth, when most
experiment with inventing your
people want to become a
own videogames, doing so with
videogame designer, do they
programming and image creation,
begin by writing design docs?
and only jotting notes as needed
Doesn’t it make more sense to… to keep your thoughts organized.
1. Play lots of videogames. For 6. Only after a great deal of
years. Learn what’s out there. experience creating games with
code and asset creation, will you
2. Maybe mod some existing
be remotely capable of inventing a
games, commercial or open
new videogame starting on paper,
source or just tweaking example
based on your experiences with
code, to try putting in new
how various gameplay elements
weapons, levels, options and
and content work together, with
characters into videogames that
consideration for their impact on
you and your friends can play.
schedule and talent needs.
3. Program clones or pieces of
Is anything stopping you from
simpler videogames that you like
writing down a recipe when you’ve
(classics, or casual webgames),
never cooked before? Or putting
nearly exactly, to learn about how
notes on a staff with words
40
underneath, if you’ve never
touched an instrument or sang a
song? No. Of course you can do
that. All it takes is a pencil. But it
will be absolutely terrible. The
same goes for videogame design.
Except that unlike those other
examples, a bad design doc can
burn months or years of a lone
developer’s time, or from the lives
of a team of people, to yield
something that either won’t get
finished or that members of the
team won’t be proud to show.
I’m not trying to discourage
anyone from starting. I’ve devoted
my life to making videogames, and
helping others do the same. I’m
only trying to warn gravely against
a common first step that I fear
may do damage that takes years
to reverse.
Keep your cooking in the kitchen,
following recipes at first. Let your
instrument and voice guide the
music you compose, but only after
learning classics or hits.

41
SE C TI ON 5

Clone Videogames to Learn


Real-Time Videogame Design
This is the most universal
advice out there for people
new to game development.
However many people feel
guilty about first trying it -
unoriginal, immoral, etc. But
it’s just for practice! There
are reasons for it. It works!
Getting Started

Is there a videogame you enjoy By cloning a game that you


that uses simple graphics, relies already like, you will…
more on action or puzzles than
1. …be pulled into studying the
high fidelity art/audio atmosphere,
concrete ins and outs of an
and can get by with
existing game in great detail.
straightforward level structures
and (if applicable) AI? 2. …have a clear, complete, and
coherent target to compare your
Clone it. Or at least most of its
work against.
core functionality. Not as a
business move, and not to try to 3. …avoid being stalled by
get famous off it, just as an uncertainty about what else is left
exercise in studying the details of to be done.
its gameplay. 4. …skip the common beginner
risk of stalling until quitting from

42
lack of knowing when/how to end making it your own. The goal
the design phase. doesn’t need to be per-pixel
recreation of the original, but
5. …focus first on how to make
instead a careful understanding of
things work, without being
it, in the interest of advancing our
distracted by deciding what to
understanding as designers.
make work.
Sometimes that can best occur by
6. …know for certain that the skills contrasting your own implemented
you’re practicing are immediately ideas to the workings of the
applicable to the sort of unchanged version. (When our
videogames you enjoy. Great Ideas for what we thought
I’m not suggesting this as a way ought to have been done
into becoming a programmer – I’m differently turn out much worse in
suggesting this as a way into practice than the original
becoming a better designer. approaches: bonus learning!)
People can talk for a long time With practice and variation, this
about how much better something translates to being able to express
in one game feels vs another your ideas to others by making the
(combat, navigation, camera, level ideas come to life. This leads to
layout, pacing, difficulty, power-up becoming more effective as a
design…), but until someone can standalone developer, should you
actually make something that feels choose that route, due to
the way in question, they’re likely knowledge of how to make each
overlooking the most critical part for yourself when needed. It
aspects in favor of the few can also make someone a more
qualities that are easiest to effective and articulate team
verbalize. leader, on account of the gained
As the clone nears completion, sense for how all the pieces fit
there’s room to experiment with together.

43
It’s a worthwhile investment of
time to do this just to share the
results with friends, or to enjoy
them for yourself, but most of all
for the learning. In the future,
when taking on more ambitious
projects without a clear,
predefined target, you’ll be able to
accelerate exploration by
Frakenstein-ing together source
code, strategies, and learning from
your practiced clone projects.
(Disclaimer: I do not propose nor
condone cloning for the
development of commercial
videogames. By the time people
are experienced enough to make
videogames to earn money, they
ought to be capable of coming up
with and developing their own
ideas.)

44
SE C TI ON 6

General Concepts for Beginning


Developers
Some tips, while useful, are
too small or weird to come
up as part of a larger,
structured class or book.
Accepting that, I’ve collected
here some helpful tidbits
that may not fit together to
form a larger common idea.
Getting Started

Often, in covering the specifics of Design, Programming, and (a fairly


examples, the more general issues cursory mention of) Math for
and strategies of videogame videogame creation.
development get overlooked. In
this chapter, we’ll focus on those
general issues and strategies. Videogame Design
THIS IS AN ART – IT’S INEXACT
A scattershot approach is taken to Videogame design is more like
cover a lot of information here – by writing a song than solving a math
all means, skim and skip for problem. There’s not really a right
what’s relevant to the sort of and wrong to it. Personal
challenges that you’re running into preference also goes a long way
or thinking about. Very few of here – just as the best techno
these sections are order song in the world still won’t please
dependent or cumulative. Broadly, people that don’t like techno, a
I have grouped the points under
45
great strategy game may seem DESIGN THE VIDEOGAME
The end product is an experience
boring and obtuse to people that
for the player.
don’t like strategy games. That
sort of differences in preferences Not a design document to publish.
is not only OK, it’s unavoidable.
Not source code to hang on the
That said, everyday experience wall.
makes it pretty clear that
Not a list of rules to be discussed.
everything is not equally good.
Out of the seemingly infinite Not a spreadsheet with elegant
combinations of noises that could balance calculations (Side note:
be created as “music,” a I’m skeptical that these have much
comparatively narrow sliver of value in any case! Animation
those possibilities can be times, psychological effects,
reasonably defended or commonly holistic strategies, etc. make the
recognized as a competent work raw numbers a poor reflection of
of music – we expect patterns, we what most people will actually do.)
expect beat, we expect harmony, If what you’re doing isn’t
we expect emotion, and so on. In contributing to improving the user
the same way, there are experience of the final result,
expectations that videogame second guess the value of it.
players, inexperienced and
Don’t confuse the dance steps for
experts alike, bring to their
the dance.
playing, and good design often
involves being aware of those 80-20 RULE – “BANG FOR YOUR BUCK”

expectations, and only violating To reiterate the classic 80-20 rule


them if there is a rare and of thumb about design: 80% of
compelling reason to do so. the user’s enjoyment comes from
20% of the work that you
produce. How the player controls,

46
especially for a real-time game, is we all have to deal with), even if
often within that 20% – if it’s done you’re working alone and not on
poorly, nothing else about the someone else’s time, there are
game is going to save it (see: Lair always opportunity costs when
for PS3). spending time on one part
necessarily pulls that attention
Even though it’s impossible to tell
away from other parts.
exactly what falls within that
figurative 20% the player is most Don’t let pixels in far away
concerned with, strive to get that background details, or trying to
fraction the best it can be. get a random scene midway
Whatever falls in that figurative through the game perfect, get in
80% should generally be just good the way of getting right the player
enough to not distract from the movement, camera feel,
20%, otherwise it’s sucking time consistent visual language, and
and energy away from focusing on first impressions.
that core. Every paragraph in a IF IT DOESN’T ADD TO IT, IT’S TAKING AWAY
novel doesn’t need to be tied for Having more features is not better.
being the greatest paragraph ever It’s different. In particular, to the
written for the book to come out extent that adding more no longer
well. At the same time, any book works well together, it becomes
filled with typos and distracting less focused, and feels like a less
grammatical errors won’t be given well designed experience.
a fair chance, no matter how
I don’t always edit my online
clever it is.
writing as well as I’d perhaps like
“Bang for Your Buck” trade-offs to – but at least in this case,
are a useful way of thinking about headers make it easy to skim or
videogame design. Even if you’re skip any parts that someone finds
not on a financial budget (as uninteresting or irrelevant. In a
opposed to the time budget that videogame that luxury often isn’t
47
there, since players are usually confusing, that weren’t taking
forced to take on a particular shape well, that feel unfair even
encounter, solve a particular after several rework attempts, or
puzzle, or otherwise grind through that perhaps made sense in the
each planned experience before original design but no longer jibe
advancing. with what the game has evolved
into during development. Shorter
One of the major differences
and more coherent is better than a
between Google and Yahoo, since
mess that’s a little longer.
the beginning, has been that
Google presents just a search The worst part of a game is
page with a search bar, whereas frequently the memory that
Yahoo has always thrown 10 prevents someone from
million irrelevant things (weather, recommending to their friends
news, entertainment, horoscopes, what was an otherwise excellent
personal information, travel…) in experience.
front of the user. Yahoo is less of a CONSISTENT VISUAL LANGUAGE:
disaster than it used to be – it ENVIRONMENTS

used to look the way that (at the If the player is able to climb a tree,
time of this writing) excite.com still the player ought to be able to
does – but needless to say, the climb every tree. Moreover, the
cleaner experience is widely first time that non-obvious (it’s not
preferred. a common convention, such as
dying when falling off the screen)
Show some restraint. control mechanism is relevant in
Also, don’t be afraid to edit out of gameplay, the user’s experience
a project something that is already should guide the player toward
there, just as you would with a discovering this insight, either
written paper, if it improves the through:
overall effect. Cut things that are

48
• Appeals to real-world visual mind, to somehow know that this
parallels, for example by arranging tree, or perhaps this door, can be
branches in a way that resembles interacted with, unlike all that were
a semi-regular ladder rungs. discovered before or after it.
• Affordance hints, such as Consistency of visual language
alternating nobs on the tree, extends into all corners of the
spaced within arm’s length of one imagery in a game – something
another. that harms the player should
suggest it will cause harm (via
• Curiosity lures, such as
spikes, boiling lava, angry
placing a desirable power-up at
expression), a platform the player
the top of the climbable portion,
can stand on should have visual
visible from the ground, which
similarities to others that the
suggests to the player that there
player can stand on, and so on.
must be a way to reach it.
CONSISTENT VISUAL LANGUAGE: ENTITIES
• Visual clues of being in the A similar consistency of
player’s plane of action, such as expectation is formed by players
by being at natural saturation in an in regard to enemies and items. If
environment where most trees are the player has encountered a
darkened out in the background. number of witches before, one
• Demonstration through non- witch should not suddenly appear
player/enemy utilization, e.g. which takes or causes twice as
having enemies climb up or down much damage as those that came
the tree to reach the player, before. There are, alas, at least
showing that it can be climbed. three exceptions that commonly
come up where violating that sort
Players become confused, stuck,
of convention is acceptable:
or frustrated when they are
expected to read the designer’s 1. There is an obvious visual
difference in the new, more
49
powerful witch (tinted red, or planted deliberately, this defeats
substantially larger). This is not the purpose.
really an exception of the HALVING/DOUBLING TO TUNE NUMBERS
convention so much as a time- How fast should the player move
effective workaround. in the air, in relation to how quickly
enemy shots move? How rapidly
2. If the first time the character
does the next puzzle piece fall?
appears it is presented as a boss
There are at least dozens, and
encounter (given its own health at
usually hundreds or even
the top of the screen, supported
thousands of little numbers that
by minions, required to be
can be tuned in a finished
defeated for the player to
videogame. Where do those
complete an area), then on future
numbers come from?
encounters as a recurring enemy
its strength as a non-boss may be Tuning generally comes down to
toned down considerably. whatever “feels right”. Isolate the
most important number first – say,
3. Minor variations, such as
player jump height and move
sometimes requiring an extra hit or
speed – then count on that as a
two to defeat, are accepted in less
pivot while tuning other values.
iconic, more literal representations
of human (soldier, criminal…) or Values that “feel right” are often
monster (esp. zombie) targets. found by halving and doubling/
Requiring an inconsistent number splitting – programmers will
of hits to bring down adds recognize this idea as “binary
unpredictability, luck, and realism search”, but the gist of it is that
to otherwise mechanically throughout the code, you’ll find
consistent encounters. Note that many numbers for speeds, sizes,
in this case, any given opponent etc.
should have a random opportunity
to be the one slightly stronger;
50
If something seems too fast, cut lower, reset to default). In this way,
its speed in half. If something a better value can be found
seemed too small, double its size. through experimentation with less
If one of those values was too far compilation delay.
in the opposite direction, split TUNE IN ORDER
down the middle on the next Once a good jump height and
iteration, and so on, until it no speed has been determined, levels
longer seems to warrant finer can be designed based on that
changes. jump ability. At that point, either
the jump values should remain
By making dramatic changes in
untouched thereafter, or it should
values, this also helps quickly
be considered that messing with
ascertain whether the number in
them may invalidate previously
question is the right one to be
completed levels.
futzing with. Changing the player’s
lateral air control speed in tiny MAKE SOMETHING YOU WANT TO PLAY

increments may take many Unless you’d like to form focus


iterations to reveal that no value groups and wait for their feedback
seems right at the current jump between every major change in
height – a discovery which is the game’s design, and unless
made much faster if the air control you’re highly certain that you have
speed is tested in a broader a good way to both know that the
search pattern. project is meeting a certain
player’s wants and will reach
For particularly messy tuning them, make something that you
challenges, it can be helpful to set enjoy. That way you have at least
up a debug mode in the game, one happy player, there’s no
displaying the current value on waiting for feedback before
screen, and supporting a few changing or trying on new ideas
keyboard shortcuts that adjust the (part of what’s great about working
number either direction (higher,
51
alone or on small, hobbyist Is this level in a reactor? Is this
teams!). It’s easier to work on area based on a kitchen? Or
something when the main drive is perhaps this is the place where
that you’re eager for it to be done the enemy has recreation between
so that you can have it. training? These can inspire the
creation of an additional
Working on something that you’re
decoration or two, which can go a
genuinely excited to play also
long way in setting the mood.
increases the incentive to finish it,
They may also inspire substantial
and finish it well. If you were just a
differences in layout and enemy/
fan of the game you’re making,
item placement, as opposed to
you’d wish there was something
thinking of it as “another level”.
you could do to get it done sooner
and better; if you’re a fan and the Just like there are visual themes,
developer, that’s on you. It’s also a the gameplay should also be
good way to play to your broken into differentiated phases,
strengths, putting your best effort when possible. Perhaps this part
in, which ultimately results in focuses on jump platforming,
better portfolio work (if relevant). perhaps that part focuses on lock/
GIVE AREAS THEMES AND PURPOSE key or torch/switch puzzles,
A map designed as a series of perhaps this other area is pure
obstacles with a sky or brick combat. It’s entirely unnecessary
background only goes so far. It (and often unwise) to cram every
may get all the gameplay right, but type of gameplay imaginable into
if it’s not giving the imagination every game, but what range is
something to chomp on, you may possible and worthwhile within the
as well be making a film without engine created should be explored
audio. An important part is in focused turns, rather than
missing. spread evenly into a murky gray
from start to finish.

52
DON’T PUT EVERYTHING IN LEVEL ONE there should be some space given
I used to do this, especially in my
to letting the reader get to know
early modding work. I wanted to
the characters and circumstances
show off every enemy, every
before more are brought in. Your
weapon, every feature, everything
features are your characters; write
cool about the game at the same
a well-paced story.
time immediately to make what I
YOUR GAME IS TOO HARD
thought was a first impression.
I still have problems with this, and
Quite the opposite happens – it
I’ve spent half of my life working
reeks of amateur, it’s sloppy, it’s
on it. By the time the game is
unfocused, and there’s too much
finished, you’ve played it more
going on for a newcomer to make
than nearly any other player
sense of what’s there.
(probably) ever will. You know
Pick a couple of enemies, a each aspect for how it evolved
couple of items, a couple of neat over development, you’ve played
features, and rearrange them it 20,000 times with a variety of
differently for the first couple of different tuning and layouts trying
levels. Incrementally build upon to figure out what worked, you
those in the phases of the game know how the AI and weapon
that follow. Whatever you did for collision systems and power-up
the prototype or the playable proof timers operate, etc. If any level
of concept – if it existed as such – besides the last one or two still
generally needs to be dialed back challenges you as a player by the
and split apart into earlier levels to time the game is done, it’s
warm people up to that level of probably ridiculously hard for
mid/late-game intensity. anyone else. Dial it back, then put
it in front of someone else to see
A story shouldn’t immediately
whether they get annoyed by it.
introduce every character and plot
point within the first few pages,
53
SYSTEMS-CENTERED DESIGN talented modeler, expert in lighting
Systems centered design – the
and audio, etc. your Doom 3 room
bottom-up thinking that leads to
would look rough no matter how
levels designed as grid tile
much time is put into it; by
arrangements, enemy/obstacle AI
comparison, pretty much anyone
as simple patterns, and non-
could throw together a pretty
human/non-character for player
decent (even if not great) Doom
control (tank, spaceship, yellow
level, since it’s a matter of laying
crescent, arrows) used to be
down some overhead lines,
common in the ‘70s-‘90s for the
placing enemies/items/
sake of working within
decorations, and picking/aligning
technology’s computational
simple single-layer textures.
limitations.
All that, and Doom 3 is a worse
Even though a modern computer
videogame than Doom.
(or console, for that matter) is now
powerful enough to deal with There are a lot more ways to shoot
arbitrarily complex level yourself in the foot designing or
structures, adaptive AI, and high creating content to fill an area in
polygon finely textured smoothly Final Fantasy XIII than in Final
animated 3D models, making that Fantasy, Final Fantasy III, or even
stuff takes a ton of time and
special training, and usually leads
to what is only one particular type
out of many possible aesthetics.
Making a single room for Doom 3
from scratch may take more hours
than designing an entire level in
Doom. If you’re not (and don’t “Look ma, no arms.” (And the poor fellow on the right
have access to the time of) a doesn’t even have legs.)

54
(relatively speaking) Final Fantasy The purpose of every picture is not
VII. the same, and many don’t aim to
faithfully depict reality. That
All that hard work gets burnt on
videogames have gradually been
trying to force what’s ultimately as
able to come closer to visually,
artificial as a cartoon to look as
verbally, and viscerally
photorealistic as live film. Would
reproducing reality has made that
photorealism improve The
a distinctive advantage in
Simpsons, South Park, or
differentiating products within the
Futurama? Of course not. This
marketplace. But then came along
leads to the next point, an
Wii Sports and its 5 piece, 4-color
important design choice:
plastic characters that have one-
LITERAL VS CONCEPTUAL
color spheres for hands. In case
In Understanding Comics, Scott
you haven’t been watching the
McCloud points out that the less
score, 3.5 years after its late 2006
literal an image looks, the more
release it’s still #5 out of
universal, idea-oriented, and
worldwide weekly sales for all
conceptual it is.
videogames.
Graphics used to be simple
Wii Sports isn’t trying to
because that’s all the hardware
accurately depict bowling,
was capable of doing – a few
baseball, boxing, tennis, or golf,
colors at once, blocky pixels, etc.
either visually or in mechanics. It’s
Even though more complicated
instead about the simplest ideas
things are now computationally
underlying bowling, baseball,
possible, however, there are still
boxing, tennis, and golf. It has
perfectly legitimate reasons to go
more to do with how we think
for a simple style – and it isn’t just
about those things than it does
about saving time.
with how those things really are.

55
That’s more than just fine. People
love it.
Simple isn’t worse. Complex isn’t
better. Simple is substantially
faster to make more levels,
characters, animations, and
special effects for. Complex
requires a large team with a great
deal of very specific and
specialized talent coordinating
efforts. Simple is conceptual.
Complex is literal.
Most interesting to me is that
conceptual – and thus simple –
The 4 games above it were at this time less than 1
affords such a vastly larger range month old. The 3 games below it are also Wii games
of perspectives and ideas to with simple graphics. The one immediately after it is
its sequel.
explore and present, compared to
the literal – and thus complicated If Braid tried to be photorealistic in
– representation of how things 3D, it would have required a
really look, how things really substantially larger team to
function, and how things really produce, and come out (almost
tumble down steep hills. When it inescapably) far less interesting.
comes down to it, there is only Instead, almost all of the enemies
one way that everything are the same, and the level
fundamentally and really is, but elements are repeated functional
there are nearly infinite ways that and decorative pieces (as with the
things are not. design of a classical Genesis or
SNES platformer). It wasn’t
laziness, and it wasn’t lack of
56
ability/resources to realize a full 3D or even simply written in well-
world; it was using systems- edited prose? Certainly, the
centered design to massively audience coming into the story
simplify/accelerate production could be forced to unjam a virtual
while focusing in closely on door with bobby pin before getting
concepts and ideas. to the next scene, or required to
fend off hordes of zombies (again),
Have you played Canabalt? Huge
although videogame qualities are
breakaway success, using clunky
often adopted at the expense to
pixel art, low-fidelity music, and a
the story concept as a prominent
single procedurally generated
source of frustration or distraction,
level.
rather than as meaningful
I’m almost at a loss for how else rhetorical elements.
to put it, but it cannot be
There are videogames that do
emphasized enough: resourceful,
story well, in the way that
conceptual, unrealistic style and
videogames handle story. It’s
clever design, not unlike the sort
worth considering, however, that a
that 15+ years ago were required
person wishing to do two things –
for videogames to function at all,
tell a particular story, and make a
can today save a tremendous
videogame – may in some cases
amount of time and energy… while
be most pleased with the results
often producing significantly more
doing those as two separate
successful and meaningful work.
things, rather than forcing both
IS THE IDEA A VIDEOGAME IDEA?
together.
Frequently, someone comes into
videogame development with an If the best way to bring your idea
idea of a story they would like to to life is as a videogame – or at
tell. Is the particular story not, least it might be, though you’re
perhaps, better suited as a not sure – by all means, go ahead.
cartoon, as a short film, as a play, I merely wish to insert an extra
57
step of consideration. If the idea game’s reality to do this – at least,
would come through better as an not nearly as badly as being
animated short, a written short unable to figure out how to open a
story, or maybe even a song, it’s door or perform some other trivial,
2014: you can learn to make pretty required task.
much whatever you set your mind
Programming
to. If you have a hammer, every
ILLUSION OF SIMULTANEITY
problem isn’t necessarily a nail; if To anyone that has done any real-
you’re specifically interested in time game programming, this
using a hammer for its own sake, probably seems like a no brainer.
no matter how many screws need To someone that hasn’t, getting
screwing, that still doesn’t make it used to this concept is a
the right tool for those tasks. surprisingly common barrier when
PUT THE GAME IN FRONT OF A FRIEND getting started.
Don’t tell them anything in
advance about how they’re Everything happens one thing at a
supposed to play it. Don’t answer time. The code in every function
questions, unless they really need goes from top to bottom, one
it to advance, and then make note instruction at a time. Even though
of it. When other people get to it, it looks like dozens or hundreds of
you won’t have the privilege of things are happening and moving
getting them unstuck when they at once, they’re each getting a
don’t realize that up arrow opens turn. They appear to be moving at
doors. the same time since the updates
are happening very quickly. The
Whatever you had to tell the stuck game moves and draws all objects
friend, add some sort of indicator by calling a main or draw function
or message to the game to tell 20-60 times per second, top to
future players on your behalf. It bottom, instruction by instruction.
doesn’t interrupt or break the
58
Often, the last step in a given lap granted as pure conceptual
through the game’s movement, independence.
input, sound, and other code is to
Sometimes bugs happen due to
update the screen (technically also
the right code being in the wrong
happening pixels at a time as the
order. No matter how well we try
memory buffer gets copied to
to group and organize our code to
screen buffer). In some
be self-contained, it’s always
environments like Processing or
possible for otherwise working
ActionScript this step is handled
code to produce unintended
automatically; in C++ or most
behavior due to being out of order.
other environments it must be
done explicitly. This step is how One very easy mistake of this sort
things seem to all be drawn and is if the background images (sky
moved at the same time: though or level tiles) get drawn after the
everything is drawn and moved player, items, or particles every
one at a time, the result of all frame, it will draw over them
those changes only gets updated before each screen update,
for the display all at once after all making them invisible. All the
increments for the current logic drawing code can be correct, with
frame have taken place. just one instruction in the wrong
order. This isn’t anything to stress
CODE ORDER MATTERS
This sounds like an insane thing to out about, as a lot of
mention to programmers, but compartmentalized code will work
especially if someone is new in the more or less the same regardless
transition from systems code into of its order, but it’s something to
the object-centric real-time space, be watchful of.
the seemingly self-contained ASSET DATA FILES

nature of objects can be taken for With rare exceptions, we don’t


program the images or audio. We
use programming to display
59
images at certain coordinates, and built into an existing engine we’re
to play sounds at certain times, working with – for most
but the images and sounds are applications we still wouldn’t want
usually created in outside it. Simplified approximations like
programs. Images are often made this one calculate faster, require
in Photoshop or Gimp, and audio minimal additional authoring (ex.
is often created or edited in Sound polygonal collision detection
Forge or Audacity. requires an underlying collision
shape to be defined for each
The assets (images, audio, 3D
graphic), and satisfy the
models, etc.) are just plain image
conceptual goal in a way people
and audio files, in whichever
are quite used to. If we went to the
formats both your programming
trouble of defining player
library and asset tools support.
character collision through
GOOD ENOUGH IS OFTEN BEST
detailed polygons defined for
Collision between moving objects
every animation frame, it may
is rarely done per pixel or per
introduce weirdness like being
polygon. Instead, distance is
able to run over the top of an item
checked between two objects, or
without collecting it – more
simple arithmetic is used to
development effort to produce
determine whether rectangular
worse results is a silly trade-off.
bounding boxes overlap.
PROGRAM A LEVEL DESIGN TOOL
For all practical purposes, it’s Level design should be done by
generally a perfectly fine dragging and dropping, filling, by
approximation. It’s a faster and lasso selecting, copy pasting,
easier way to implement collisions. saving/loading, etc. Not by
Even if we had detailed collision programming. Time that the
functionality done for us though – programmer spends implementing
perhaps as part of a library, or level layouts is time that the

60
programmer can’t spend fixing CHEATS ACCELERATE DEBUGGING
Add in invincibility, support a way
bugs and adding features – plus
to start or teleport to alternate
it’s time that the designer has to
locations (even if only by manually
wait between iterating on ideas.
swapping around start position in
Even if you’re the both the
a level editor), a way to max out
programmer and the designer (as
items, ammo, powers, etc. If every
is inevitably the case for a solo
time things are tested you have to
project, and common for a small
play well enough to not die, collect
project where it’s mostly art/audio
a certain combination of items,
coming from others), it still
and get to the right spot to test
massively accelerates production
how, say, enemies climbing
effort, ensures systematic
ladders respond to being hit by
consistency, etc.
rockets – it’s going to take forever
The easiest way to make a level to confirm a suspected bug fix.
building “tool” is to hijack the
BUILD QUICKLY, EXPAND WHEN/AS NEEDED
game’s existing code, burying the Often in videogame development,
tool functionality within it. Upon we have to decide between a lot
pressing F1 or some other out of of ways that we could spend time
the way key, toggle to a mouse- adding or making cool stuff. It’s
control, toss a panel of buttons hard to know sometimes until
and objects on the screen, and something is implemented
switch keyboard to controlling whether or not it will be as fun on
some handy key shortcuts. This screen as the imagination
can be stripped from the finished suspects. For this reason it’s often
game, hidden in the finished game practical to find a hacky or brute
as an unlockable reward, or simply force way to implement a feature
released with a tiny bit of “the level that takes less time, if only to see
editor is rough… good luck!” how it works before deciding
documentation/help. whether or not to keep it.
61
This avoids sinking time into code There’s necessarily time while
that there’s a decent chance may programming, between setting out
get ripped out anyway. to make something work and
being able to see it work, during
If the hacked feature works well
which time the code is in an
though, it’s fast enough as-is, and
incomplete, dysfunctional state.
the unpleasant details of its
That time can be minimized by this
implementation can be swept into
method of building simpler first,
a function or class that you don’t
then expanding out from that
need to look at much for other
base. Minimizing the time between
development, leave it as is until (if
compiles and visual results is
ever) there’s a sound reason for
helpful since it prioritizes bug fixes
redoing it.
while there’s the least variability. In
MINIMIZE TIME BETWEEN CODE COMPILATION
turn, that reassurance from the
Get a single enemy working before
machine that you’re on the right
expanding it into an array of them
track minimizes cognitive load,
and/or supporting multiple enemy
freeing up mental resources to
types. Build a very plain sort of
more easily juggle bite sized
particle effect first – white spinning
problems instead of trying to do
squares that burst out might be a
several things at once.
fine starting place. Then adjust or
add functionality as needed to SPECIAL CASES SHOULD BE SPECIAL CASED
“Special case” is often treated as
support different needs of
a bad word by engineers, but an
particles (fading for smoke,
actual “special case” deserves to
glowing for flame, directionality for
be special cased instead of
thrust…). Get one power-up
generalized. When a game has
working first, perhaps the simple
each boss behave distinctly, rather
1-Up, then introduce others as a
than as a recombination of shared
variation on that one.
components, it gives them more

62
unique character; when a level has preferences which will affect any
code written that only applies to graphics calls that come after.
that level, so long as it doesn’t
Math
break the player’s trained
THE SCREEN IS A 2D PLANE
expectations of what to do, it can The main thing needed from
go a long way in making the geometry is thinking about the 2D
experience less formulaic. game’s visual space as a grid
STATE CHANGE FUNCTIONS plane, with (0,0) in the top left, and
Some functions, like those that set (screen pixel width, screen pixel
font color, or position and rotate height) at the bottom right. Note
images, affect code that happens that in most environments, down
after them. Rather than specifying is positive Y, which is inverted
tons of parameters with each call, from the standard used in
such as indicating that the text classroom geometry.
alignment should be centered, the
TRIGONOMETRY AND VECTORS
code has a single line that centers For all things angles and
any text calls that follow it, until movement, trigonometry and
code is added to change text to vectors come in handy. Though
left/right alignment. not covered in depth here, there
These sort of functions also are plenty of resources on the web
appear in OpenGL, the graphics to learn about these areas of
library commonly used for iPhone, math. When you spot them in
downloadable, or 3D games. sample code, don’t gloss over
Unlike code which is called to how they’re being used – they’re
perform some operation while often at the core of how the
accounting for certain parameters, gameplay movements work.
the state change functions are MATRIX TRANSFORMATIONS (PUSH & POP)
called to toggle switches or set Matrix calculations can be used to
capture a series of graphical

63
calculations – scaling, rotating, transformation changes that we
positioning – into a single added after pushing it. Note that
optimized transformation that can this only applies to graphical
be applied to however many transformations – translation
vertices or polygons need to be (sliding), rotation, and scaling – not
oriented as a set. to other state changes such as
font color, image tint, etc.
Because Matrix calculations are
cumulative, this is a particular
form of state change code. Each
line accumulates to have a sum
affect on all of the graphics code
that follows. We can make a call to
the translate function, giving it
parameters for the camera’s
horizontal and vertical offsets, and
it will affect all the graphics code
which follows, which is quite
handy. But rather than having to
undo every slide, rotation, and
scale operation that we call (this
would be a nightmare for all those
slipping, spinning, growing particle
effects images!), we can instead
“Push” a Matrix onto the stack,
perform the translations and
rotation that we want to apply to
all following image calls, then
“Pop” that Matrix off the top of the
stack, automatically undoing that

64
SE C TI ON 7

Learn Videogame Development


Like Woodworking
I took years of wood shop in
high school. More important
than a spice rack or picture
frame, I took from it an
approach to learning that
I’ve since discovered works
wonders for keeping game
developers on a good track.
Getting Started

HOW WOODSHOP IS TAUGHT 3. Everyone does a series of


1. The instructor first has everyone
simple projects, each of which
read a bit of text about shop
involves 1 or 2 different kinds of
safety (how to not lose an eye,
tools. These are pretty much the
how to not lose a finger…) and
same for everyone, possibly with 1
basic concepts (grain, sanding,
minor substitution. Common
estimating board foot
examples: a judge’s gavel is made
requirements for rough sawn
to learn the lathe and wood finish,
lumber).
and a simple picture frame is
2. A brief tour of the shop is given made to learn the router and
to introduce the various hand joinery. For a younger or less
tools, power tools, and relevant comfortable audience, a birdhouse
shop features (light switches, is a recognizable result that
ventilation fans, first aid kits). involves learning proper sawing
and simple use of fasteners.
65
4. Once that series of beginning things then moving on is not
projects is out of the way – woodworking.
generally involving a semester and
• Subtle variation on the above:
several finished pieces – a student
team up with 15 other people that
is then able to bring in plans and
have never manipulated wood or
suggest adaptations.
wood tools before in an attempt to
HOW WOODSHOP IS NOT TAUGHT coordinate building an advanced
• Start drawing up blueprints for
project (say, a small ship). 1/15 of
new ideas. To whatever extent
that inexperienced team working
drawing and the imagination are
on a 1/15 as ambitious project is
unrestrained by what wood and
significantly more likely to be
tools do, those activities are not
finished, because it removes
woodworking – but to get a sense
management complexity. Team
of that distinction first requires at
management is not woodworking.
least a little variety in hands-on
work. Coming up with • Spend semesters making and
complicated, unrealistic plans is discussing origami, under the
not woodworking. guise that since both are
construction from tree materials,
• Build a complex, detailed piece
there are similar principles at work.
of a larger project (such as an
These are two completely different
ornate leg for a chair). Being
things. People skilled or interested
100% done with 10% of
in one may not be skilled or
something doesn’t feel or look like
interested in the other. Papercraft
being done, it feels and looks like
is not woodworking.
being 10% done. The person on
the project would not get a sense • Teaching and testing the history
of completion, and it would not be of woodworking, investigating
in a state that it could be shown ancient tools and techniques or
off or given away. Making 10% of old uses of lumber that it no

66
longer fills today. The modern finished videogame (standalone
woodshop is very different from an inventory system, dialog trees,
ancient one, in terms of the tools etc.). Teachers in many cases
and ease of material acquisition. want to go into great length about
History is not woodworking. board/card/dice games, or the
history of games or play in
• Discussing how to market and
general. Workshops and websites
sell a wood project. Marketing is
will typically go straight into
not woodworking.
discussion of ways to make
• Buying, using, and discussing money from a videogame.
the latest commercial products Meanwhile student clubs tend to
that are made of wood. Whether devolve into a gamer culture group
it’s made by professionals and/or that plays and discusses design of
reflects the cutting edge of commercial projects that are far,
industry, it's not an appropriate far beyond the design,
starting point or reference point for engineering, art, and management
beginners. Becoming a collector abilities of the club members.
or connoisseur is not
The passion is an entirely good
woodworking.
thing. Everything listed above is a
HOW THIS RELATES
legitimate field in its own right,
Modern books on videogame
bearing its own complexities and
design, many classes and
unique utility in the big picture,
workshops on game design, and
whether it’s marketing, history,
other learning outlets focus on a
team management, etc. Origami is
number of the above bullet points.
a fascinating and involved field
Students often want to plan and with cultural roots and a tradition
innovate immediately, take on a of great craft, but it is not
big team project, or at least craft a woodworking. Likewise while
complex piece of a never-to-be- board, dice, and card games are a

67
worthwhile and important subject hobbyist/solo/indie game
with interesting histories and developer along the way picks up
established conventions all their a myriad of skills and tools that
own, their relation to the design or can find application to meet the
development of real-time needs of future tasks (just as
videogames is tenuous or genre- much for non-videogame related
specific at best. companies and non-videogame
personal side projects).
The woodworker knows the
process end to end, from sawing, A project or two that focuses
to shaping, to joining and purely on input, setting screen
finishing. Projects are identified resolution and drawing rectangles,
that are appropriate for one and doing collision detection
person to make, working alone, in (Pong) makes for a good intro
a modest period of time (generally project. Likewise, anything
no longer than half a year per involving a small, simple tile-based
project, until very advanced). The world (either for bricks in breakout
woodworker is not interested in or a tiny dungeon world) can help
the subject for the pure sake of with learning that method of level
knowing things about it, nor is the construction and collision
woodworker interested in the detection. Building up from there,
subject purely as a springboard a similar mentality can be used to
into a career doing such work. pick and adapt beginning projects
Just as any woodworker can to cover the skillsets and tools
transfer knowledge of the jack that one might be interested in
plane to fix doors around the applying later for a bigger project
house that don’t perfectly fit the (loading and displaying images,
frame, or otherwise apply tool playing music and sounds,
comfort and familiarity to minor programming menus, different
projects around the house, the types of AI, etc.), without needing

68
to jump directly into using the No one knows what you’re
table saw on day one. capable of until after you’ve done
IT ONLY COUNTS WHEN IT’S DONE it – not even you.
Some people set mental goals in “We judge ourselves by what we feel
terms of identity, as in “I want to capable of doing, while others judge us by
be a videogame developer,” or “I what we have already done.”
want to know how to make -Henry Wadsworth Longfellow
videogames.” The problem with US poet (1807 – 1882)

these is that the first one is


attained by simply starting,
whereas the second one may
never create a single videogame.
A more constructive way to think
about it is in terms of completion
of lasting artifacts – that is, “I want
to have finished making a
videogame” or alternatively, “I
want to finish making my current
project.” Molding and twisting
reality to come into alignment with
these thoughts will necessarily
include accomplishing the two
identity thoughts from the previous
paragraph, the difference being
that this one will also yield one or
more games as evidence of that
activity.

69
SE C TI ON 8

Fan Habits and Focus are Not


Developer Habits and Focus
There is confusion among
people growing from being
fans to being developers
that they should still soak
up all that they can through
previews, reviews, industry
gossip, awards events, new
releases and new trends.
Getting Started

Consider whether a writer trying to The answer, of course, is no, in


stay on top of reading every top every one of those cases. They
selling novel will be making much should not. A few reasons:
progress on a novel of their own.
• Most music isn’t going to be
True, reading books can tie up any given musician’s style, and
time, so let’s also consider a song, most artwork isn’t going to be any
which doesn’t take nearly as long given artist’s style. In our case as
to listen to, and an image which developers, most videogames out
can take even less time to look at. there will have nothing to do with
Should a musician listen to every our genre, our audience, or our
chart-topping song by other style. It’s of course possible to
performers? Should a 2D artist glean inspiration from things that
scramble every day to view the aren’t in the same category of our
latest in popular illustrations and own, but those cases are fewer
paintings? and further in-between, and for
70
that matter could come from • Just because something is
anywhere (including other popular, by any metric (financially,
mediums, or better, real life). as a cult classic, or hitting the
Reddit front page), definitely does
• Studying something, to extract
not mean that it’s any good. At the
something of use from its
expense of sounding a little
construction and presentation,
hipstery or jaded, a ton of
requires a great deal more time
commercially successful work in
and work than simply listening to it
any medium is dumbed down,
once or looking at it casually. It
derivative, formulaic, and
requires repeated encounters with
forgettable. In videogames, plenty
it, deep diving into details,
of great work doesn’t get much
exploration to understand its
exposure because it doesn’t come
context and synthesis, often going
across in a screenshot and has
into information not apparent in
zero marketing push, while other
the artifact itself, including the
mediocre work is racing to the top
developer’s other work and the
partly due to strange market
business circumstances which
effects like established branding,
either brought it into existence or
nepotism between industry
pulled it from a fate of obscurity
contacts, reviewer groupthink, and
into the limelight. Dissecting even
a whole mess of other factors
a 3 minute song or an image is no
quite other than the videogame
trivial task, and a videogame might
itself. It’s a mistake to assume that
take a month or more of focused
the best-known artifacts happen
effort to take apart. That level of
to also be the best ones for a
sustained concentration on
developer to know.
playing is easily incompatible with
also giving production the Additionally, especially in the
consistent attention it needs. videogame case, if you’re going to
make a videogame based on

71
someone else’s already popular development, then truly
work to ride part of its success investigate it: replay it, take notes
(note: which is very different from on it, write about it, and once
cloning as a learning exercise, you’ve got what you need from it,
which is legit and very helpful), move past it.
good luck. You’re already a full
Instead of getting caught up in the
development cycle behind your
news, make a point to periodically
competition, and by the time you
catch up on what went down.
release they can be on a sequel or
After the smoke clears. In a matter
many updates later while
of days it’s surprisingly easy to
countless others who had the
catch up on months of ignoring
same plan release at the same
the news and new releases. By
time as you.
that time it’s cheaper, too, on sale
Of course, I don’t mean to suggest online or available discounted in
totally hiding from the world. the used and bargain bins, since
Coming up for air is an important full-time consumers have all
part of swimming longer. But if moved on by then to the next
you’re putting time into playing newest thing.
popular games or reading up on
Go get lost in making your own
game news, make sure it’s
beautiful thing. Forget about the
something you’re doing because
noise and hype, 24/7 consumer
it’s what you want to be doing,
spectacle, the irrational rising and
and not under some misguided
falling in the trends or reviews or
impression that it’s an important
stranger’s drama.
part of working on your game, or
becoming a better videogame The next game release you should
developer. In all likelihood, it isn’t. be really pumped about is the one
that you’re currently working on.
If you really are deeply studying a
specific game as part of
72
2 I’ve taught game development
to graduate students older than
me, and I’ve also taught it to
teenagers. Similar questions
arise with both - it has nothing
to do with age! It’s just about
what we’ve learned before. Here
are questions that new students
of any age may share.

Questions About Education

73
SE C TI ON 1

Advice to a New Student in


Videogame Design
Students choosing to study
videogame design in school
occasionally write seeking
advice. Here is my general
response, with the hopes
that some of it may apply to
Questions About Education

those making videogames


outside of school, too.

Do more than is required. You’ll competitors will have given up


get out as much as you put in. long before getting over the
This means learning more than barriers to entry, even if held up
you’re assigned, putting more into only by their own lack of
projects than is needed for an A, confidence. Don’t settle for
and making and releasing finished staying crummy at it though.
videogames aside from and Practice, seek feedback, and
outside of coursework. strive to get your skills to a level
that you’ll have something to bring
Be okay with producing crummy
to the table when joining a team.
results when you’re new to
something. Don’t let that Try to not get wrapped up in
discourage you from sticking with talking about games instead of
it. There’s a lot less competition in working on them. Make regular
the world than people assume, progress, even if incremental, and
due to attrition; most would-be stick to deadlines. Sometimes this
74
kind of discipline means turning were when it started. Keep
down social engagements on improving.
weekends. Don’t totally deny
Network proactively. Go out of
yourself time around people either,
your way to be where people are
or that can bring its own
that you want to meet, and go
problems. Find your way out of
outside your comfort zone to start
circular or unproductive banter
a conversation with them, even if
about the “best” design or related
it’s a bit difficult or awkward at
fashion - these are traps. Different
first.
audiences have different
preferences about different Don’t ignore feedback, but don’t
matters, and it’s almost always feel the need to act on all of it
just apples versus oranges. Argue either. This will be hard but don’t
about game design instead by take feedback personally. It’s
implementing your ideas and about the project and the project
letting others play them, at least is not you. Seek feedback,
as playable prototypes if not consider feedback, act on some
within completely finished games. feedback, don’t be defensive of
All the opposing words in the feedback or feel the need to argue
world won’t matter much if what about it. It’s far better to hear
you’ve done just works. complaints and frustrations while
there’s still time to fix them, before
Don’t compare yourself to other
it’s affecting strangers and you
people. That can only lead to
won’t be there to justify
mediocrity, plateauing, or
questionable decisions.
hopelessness. Just do the best
you can with things. If you need a Keep deadlines within reach – no
reference point, try to end the day longer than months away while
or week or month better than you new, and just a few weeks may
even work better at first to get

75
some junk and early learning out yourself if it’s something worth
of your system. Keep teams small getting into.
enough (1-5) to have a clear idea
Focus on doing at least one
of each person’s responsibility and
tangible skill discipline very well,
roles without stepping on each
since that’s what’ll generally get
other’s toes or added
you a job, but beyond that don’t
management complexity for
pigeonhole yourself from learning
planning and communications. A
a bit of fluency in other aspects of
longer schedule isn’t easier, and a
development. Those other skills
larger team doesn’t work faster.
will help you communicate and
Both of those just blow up
work more successfully with
expectations and introduce whole
people that have other roles and
new categories of challenges atop
can empower you to pull together
just getting the game working.
your own ideas as rough
Don’t get stuck in one platform, demonstrations without relying on
tool, or programming language the time or assistance of others,
because it’s the one you know, and can generally help you stand
especially not because it’s the first out in the workplace. Though,
or only one you know. It’s worth again, to get into said workplace
learning new things and doesn’t you generally need to be
take nearly as long as people especially solid in one core skill
assume. Don’t jump onto a new area since there aren’t really
platform, tool, or programming official positions for jacks-of-all-
language just because it’s new or trades.
someone recommends it. It may
Don’t insist on doing something
be not ready yet or they may not
totally original immediately. Like an
know what they’re talking about.
artist beginning by doing abstract
Look for examples of what it has
painting or sculptures, that really
been used for and decide for
won’t go anywhere without some
76
credibility first built from practicing part of the population may be
and demonstrating an small if you’re just starting out, but
understanding of fundamentals it will grow with experience. It’ll
and technique. Trying to do often help you out, too, in the
something totally original and short-term because you’ll have to
weird immediately just comes review and learn how to articulate
across in such cases as a lazy what you know, and in the long-
excuse for sloppy and term because as they gain
undeveloped craftsmanship. different experiences and
Accept some major conventions specializations, they’ll later
and genres, at least at first and become your peers and potential
early on, so that you can focus on collaborators.
trying to do a good job of
Be nice to everybody. Stay out of
something that you know can be
fights, nobody wins.
done well. Better a small and
derivative but finished and Good luck!
polished game than an ambitious,
highly original, unfinished and
unpolished project.
Stay positive. You’ll meet some
cynical people along the way that
may try to drag you down. No
need to be upset with them over it.
If they could, they’d often rather
not be like that either.
Whenever possible, help, teach, or
create opportunities for others that
are less familiar with game
development than you are. This
77
SE C TI ON 2

Questions from an Elementary


School Class
A teacher sent me questions
from her students about
videogame development.
Kids ask the best questions,
probably since no one is
putting pressure on them by
Questions About Education

assuming that they ought to


already know the answer.

HOW DO YOU USE YOUR IMAGINATION TO enjoyable to play with, and then I
MAKE VIDEO GAMES?
To make videogames, I use my use my imagination to figure out
imagination to think of things that how that enjoyable interaction or
don’t yet exist, or to think about moment could be expanded into a
how things that do exist could be presentable game.
different – combined, simplified, or HOW DO YOU MAKE PEOPLE TALK AND
SOUND EFFECTS?
built upon to be done better.
For voices, we typically record
That’s a “top-down” approach, people speaking, then play back
meaning that I start with the idea those recordings by loading and
and then figure out how to make playing the sound file during the
the idea work. game. Many sound effects are
also simply recordings that are
Other times I instead use a
played back when the right
“bottom-up” approach, meaning
conditions are met. Some sounds
that I first create things that are
78
are made by starting with multiple my emphasis on expressive play,
recorded samples then modifying on story telling, or on action?
and mixing those sounds together
Then I determine what I have
to produce a desired effect.
access to in order to create it, and
Although there are professional how long I’ll give myself for the
sound designers that go to great project. Do I know someone who
lengths to record and prepare high makes great animal animations, or
quality speech and sounds, realistic sounds, that would be
anyone can get involved with willing to collaborate with me on
creating voice recordings and the project? Will I schedule the
sound effects using free audio game to be created in a few
software and standard PC weeks, a few months, or longer?
microphones to record dialogue, (In rare cases, as a stunt, I have
materials colliding, and sounds we made games in a few hours,
can make with our voices. although it shows in the quality
and simplicity of what I produced
I still use edited recordings of
during that time.)
mouth sounds in my projects. The
popping sounds made by colliding I draw a picture of what the screen
blocks in Topple were made with might look like when the game is
my lips, and the crackling whoosh being played. This leads to
flame sound effect in burnit was a coming up with tentative answers
mixture of crumpling paper and to important questions, such as
blowing into the microphone. how large the player’s avatar is on
WHAT IS THE PROCESS TO MAKING VIDEO screen, what types of enemies or
GAMES? objects are in the level, and what
First I figure out what it is that I information is displayed in the
want to do. Do I intend to make a interface (health bars? magic
space shooter? A platformer? Is meter? lives counter?).

79
Next I type a computer program writing, level design, and other
that brings the elements of my information is needed that can
picture to life. This is often very realistically be created with the
basic at first, for example getting time remaining in the game’s
arrow keys or the mouse cursor to production schedule.
move the (not yet animated) player
Much of the development time, at
character, and having enemies
this point, goes into making and
wander randomly.
refining those art, sound, music,
Over many drafts – just like writing writing, level design, and other
a paper for school – I refine the elements identified.
idea by making changes to how it
During and after making those
works. If the player feels too slow,
pieces, the game needs to be
I’ll adjust numbers in the program
tested thoroughly to ensure that it
to boost the player’s movement; if
doesn’t have bugs (program code
the enemies seem too unaware, I’ll
causing the game to crash or
give attention to making them
behave in unintended ways) or
seem more intelligent (accounting
significant design flaws (trivial
for additional information, such as
ways to bypass playing the game
how to navigate between rooms
as intended, such as one type of
without getting stuck). During this
attack being overpowered). Fixes
period of the game’s development,
and changes are made according
I’ll try adding many features, only
to the feedback from testing.
a few of which will likely be kept
for the final version. Lastly, I prepare the final
information needed to share the
Once I have established a clearer
game with the world: adding
idea for how the gameplay will
instructions, improving the title
work, based on many exploratory
screen, taking screenshots, writing
attempts in the previous step, I
a concise description, and posting
plan out what art, sound, music,
80
the game to the web for others to The team members then create
play. the pictures, 3D models, and/or
HOW MANY PEOPLE DOES IT TAKE TO MAKE A programming to make that space
VIDEO GAME? functional within a computer.
I’ve made many videogames
working alone. One person can be Someone with sound editing
enough for small games. experience will get involved as the
setting takes shape, creating
Most teams that I have worked ambient sounds like crickets, rain,
with, creating small to medium- faraway explosions, or other audio
sized smartphone games or that helps establish the setting.
downloadable freeware PC
games, involved 3-15 people. For games with a complex
Companies that develop environment, a tool is often made
packaged retail games are more especially for creating levels in the
often at least a few dozen, game. Just like Paint or
sometimes even hundreds of Photoshop can be used to draw
people working together. and save pictures, the level
creation tool is developed to
HOW IS THE SETTING CREATED?
Setting comes from collaboration “draw” and save a level by placing
between many different types of wall segments, enemies, and so
considerations. Art, writing, on.
gameplay, and technology need to However, not all videogames have
be accounted for. (Those roles are setting (or characters!). Tetris and
not necessarily one per person; a Bejeweled are two very well
small team might have one or two known games that do not have
people dividing up all of those settings or characters.
interests, whereas a large team Videogames that resemble
might have teams of people movies, or real spaces, by
accounting for each perspective.) representing story within a

81
navigable area through humanoid war games; the war may have
characters are only one type of really happened, and the soldiers
videogame. may be believable characters, but
ARE THE SETTINGS AND CHARACTERS BASED the actual locations and people
OFF OF REAL LIFE? depicted are made up in a way
There’s no right answer here – this that fits what we know about
depends upon the project and the related events in history.
developers involved.
Some games focus on accurate
depiction of real life as their
appeal, trying to recreate the
appearance and relative
performance of various
professional sports players or
military figures in settings that are
based closely on real life
environments. On the other hand,
games like Mario Brothers are
pure fantasy, taking place with
cartoony characters in silly
settings.
There are also games that fall
somewhere in-between, which try
to establish a sense of authenticity
by creating realistic, life-like
environments and settings, even
though the actual characters and
places involved are imagined. This
mixed approach is common with
82
SE C TI ON 3

Class Questions About Game


Development Career
Part of what I love about
videogame development is
that it’s exciting enough to
help motivate people to
overcome hard challenges.
Making games well requires
Questions About Education

learning skills - abstract,


practical, and even social.

Jon writes: Hello. I have some questions I games professionally off and on


would like to ask you because my class is doing a since 2005.
project on what we would like to do when we
DO YOU MAINLY WORK WITH PEOPLE, DATA,
get older. I chose video game design. I was THINGS, OR IDEAS?
wondering if you could answer my questions to In this line of work I begin by
help me with my interview? The questions I coming up with ideas, followed by
have are listed below. working with those ideas to figure
HOW LONG HAVE YOU BEEN DOING THIS? out how to turn them into data,
I started programming games as a after which I present that data to
hobby starting around 1998 when other people. The work a lot of my
I was in middle school. For a year peers do in game development
or two before that I experimented involves gathering a ton of data
a bit with modding commercial about how people interact with
games (making levels, characters, these things, leading to ideas
and weapons for full games that I
already played). I have made
83
about what to change about their WHAT ARE THE MOST FREQUENTLY
RECURRING PROBLEMS?
games. Communication is a challenge
Since the chain of events begins every step of the way. When
with ideas, in response to the starting a project, there’s a
question, I will pick ideas. Though challenge of communicating with
not in the sense of “just” having other collaborators to make sure
ideas - a bunch of work with people understand what they’re
people, data, and things is getting involved with, since even a
required to test, develop, and very talented developer will be
deliver on those ideas. unhappy with the results if working
on a mismatched project. Even on
WHAT DO YOU LIKE MOST ABOUT IT?
I like that each project is different, a solo project, there are difficulties
bringing new and different types of in what amounts to
challenges. I also like the ability to communicating clearly with
“wear many different hats,” myself, like sorting out and
performing a variety of types of prioritizing my plans. During a
work on each project. I get to lay game’s development, there’s
out levels, program exactly how another challenge in integrating
things work, pull together the work the ideas of team members while
of other talented people creating providing sufficient
music and art, plan out and communication to keep everyone
oversee the player’s experience on the same page. Further into a
(what they first see, how the project, there’s a much different
menus look and work, what we but very important challenge in
show or give them for winning and trying to communicate with
doing well), etc. potential players regarding where
they experience frustration or
confusion during testing, and then

84
after release what the new game is originally mostly made variations
like and about. on classic games, since those
HOW DID YOU GET STARTED? were projects small enough to do
Although I began modding well in a reasonable time frame
commercial games in late while working alone. When I began
elementary school to get more out my undergraduate years at
of single player games that I college, I helped start a computer
enjoyed on PC, I didn’t really game development club, leading
produce anything complete so to larger and more involved team
much as use it as a context to projects. I landed my first
practice digital image and audio internship in the game industry
editing, and thinking in detail through a recruiter that we invited
about how games are put to speak at one of our meetings.
together. As a middle school WHAT TYPE OF TRAINING IS NEEDED TODAY?
student I taught myself the basics A computer science degree can
of C programming from books. I be very helpful, however people
pretty quickly shifted from writing come into game development
text programs into figuring out from a variety of backgrounds.
how to use my programming for Many people continue on to a
simple games instead by master’s degree in a videogame-
displaying graphics and playing related field to further help their
sounds. To do that at that time, I qualifications to work in the game
first copied assembly functions I industry. All of that is primarily if
found in the back of programming you are looking to do it
books. A little later came the professionally, though. If you’d like
Allegro game programming library, to explore it first or primarily as a
but there are now many other hobby, no formal training is
alternatives with various necessary. Much of a modern
advantages and disadvantages. I game developer’s training today is

85
finding ways to make (or mod) WHAT CHANGES HAVE YOU SEEN IN THE PAST
FEW YEARS THAT AFFECT THIS AS A CAREER
videogames on our own time. PATH?

WHAT TYPE OF TECHNOLOGY DO YOU USE?


Every few years, a different
I work on a home computer, no business model appears that
different from the sort used in draws the attention of investors
many people’s homes and and businesspeople. In order to
schools. work professionally, game
developers have to find ways to
In terms of software, I tend to use
design projects that work well with
plain text editors to write code,
those new business models. 30
and recompile using simple bash
years ago, it was paying a quarter
or batch scripts. That’s a bit of an
to play at the arcades. For the
old-fashioned way to go about it.
next 10-20 years, it was largely
Many developers prefer managing
selling games as $60 retail goods,
their projects in more robust
and then the MMO/subscription
editors designed specifically for
model seemed to dominate for
programming.
awhile, followed by cheap $0.99
In regard to programming mobile games. More recently the
languages, I’ve done professional free-to-play micro-transaction
work in ActionScript 3 (compiles model used by social games
to Flash), C/C++, Objective-C (for seems to have taken over. Old
iPhone), C#/JavaScript (for Unity), business models remain of course
php with SQL, and a few scripting – there are still new arcade games,
languages. I also use image and a major part of the industry
editing software, like Photoshop or continues to be $60 console
the free alternative at www.gimp.org, games sold retail – but the arrival
and sound editing/creation of new, larger market segments
programs like Audacity. makes those an increasingly small
percentage of professional game
development.
86
What I can say for sure is that this intended, in many cases being a
space is sure to continue evolving good listener and open-minded
and changing, so it’s important for observer can save or productively
a videogame developer to be redirect work by noticing what
ready to frequently adapt and parts of the task matter most.
always be learning new Ideally this leads to finding a
techniques, platforms, and clever way to achieve those goals
audience considerations. without getting stuck on the many
WHAT PERSONAL QUALITIES DO YOU FEEL details that may turn out to be
ARE NEEDED TO SUCCEED IN THIS? much less important, or even
Like many cutting edge fields, distracting.
success in game development
relies upon determination, Lastly, but importantly, it will go a
persistence, patience, and long way to learn how to present
willingness to self-educate and well. Seek opportunities to
self-direct. Many skills are needed practice presenting your results,
that go beyond and build upon your mid-process progress, and
what anyone currently teaches, even presenting yourself (as a
and the only way to pick up those potential collaborator, as the right
skills is through experimentation, person for a particular task, etc.).
working through problems that Think about any game that you
arise, connecting with peers enjoy – if someone hadn’t figured
working on the same challenges, out the right way to show that end
and getting a lot of practice. result to strangers, and to win
others in their company or team
Another personal quality that helps into collaborating on it, we could
is knowing how to be flexible while never have had the opportunity to
still finishing the work. Rather than play it.
stubbornly sticking to something
until it’s exactly the way originally When you begin making nifty
projects that you’re proud of, don’t
87
hide them from the world. Be my videogames do things I didn’t
prepared to show and share them previously understand how to do.
in an appropriate way. Writing classes, which didn’t seem
WHAT ADVICE COULD YOU GIVE TO ME WHILE so obviously applicable to me at
I AM PURSUING THIS? the time, have turned out to be
Game design involves doing a lot every bit as important, as I use
of different kinds of tasks, working much of the same process and
with a lot of different kinds of ways of thinking now for my non-
information, and communicating writing work.
with a lot of different kinds of
people. Working to become well- In other words: despite my
rounded is important in this. previous point being the
importance of teaching yourself
Technical understanding is useful things that other people can’t or
(math and science), creative don’t yet teach, this point is the
practice is useful (English and art), importance of paying attention
and the other random information and learning from others about the
someone knows about (history, material that others can and do
literature, film) is what separates teach. Self-education is often the
their ideas and work from that only way to learn certain things
done by other equally capable worth knowing, but when it comes
people. Even clubs and sports can to material that people have spent
provide useful insights, habits, and thousands of years finding ways to
ways to relate that might be explain, don’t insist on reinventing
missed otherwise. the wheel and trying to rediscover
There were times in school when all that yourself.
my friends wouldn’t see the point
of a geometry assignment, but I
would be excited about it because
I knew how I could use it to make
88
SE C TI ON 4

Math for Videogame Making (Or:


Will I Use Calculus?)
Math in school tends to be
very abstract, and involves
memorizing a lot of rules.
For games the math is much
more clearly situated in
solving real, often simple
Questions About Education

problems. And you can look


up past solutions any time.

Q: How important do you think it is to learn rendering features or optimizations


calculus for game programming? Which math for 3D engines might well have
fields are most useful in hobby game
more use for calculus than I do.
development?
For most gameplay-related math –
A: I needed calculus for classwork.
jumping, bumping into things, the
I have virtually never used it for
speed of a shield recharge –
any of my dozens of freeware and
simplified approximation suffices.
small commercial projects.
In many cases the sloppier
That said, I’m not very involved in estimation approach is even better
writing physics or 3D graphics than trying to work out proper
libraries – when I need those precision. As one example, the
features, I reference libraries tried-and-true platform game
written by other people who are mechanic of “how long the jump
more knowledgable in those button is held after leaving the
areas. Someone working on ground determines jump height”
89
clearly does not in any way reflect along with notes on what I find
the real physics of jumping. It’s each most useful for:
more important for a videogame to BASIC GEOMETRY
behave as the player wants (or 2D graphics programming is a
expects) than it is for a videogame matter of nudging object
to behave realistically. coordinates around on a plane,
then drawing images every frame
Of course, if we were trying to
based on those coordinates.
design an authentic flight
Bounding boxes (comparing
simulator for military training, or
coordinate differences) and the
model a car accident for the
distance formula (Pythagorean
purposes of studying safety and
Theorem) are commonly used to
real-world engineering, this would
test whether two objects have
be a very different story. But for
collided with one another.
games, we can usually just twiddle
with numbers until things look and TRIGONOMETRY.

feel right. Videogame spaceships Sine and cosine are helpful for
and helicopters move because we angle-to-component translation,
add a velocity value to their for example when determining
coordinates every frame – not what percentage of a bullet’s total
because of rocket propulsion or velocity the x-speed and y-speed
Bernoulli’s principle. For 2D game are given the angle of a firing
programming, spacecrafts and cannon (see illustration on the
helicopters only need 1st grade next page) – this also applies to an
arithmetic. overhead race car. Atan2 is handy
for getting an angle between two
But beyond basic gameplay things, given their relative offset in
interactions, here are the fields of grid locations – good for getting
math that I run into most an enemy to face the player,
frequently for game programming,

90
pointing a simple homing missile, it, and you’ll greatly increase the
and so on. number of nifty things that you can
pull off in game programming. This
is useful for reflection off angled
surfaces, checking line-of-sight,
determining which direction
something is facing, and many
other common spatial/angle
relationships.
Normalizing vectors is another
basic and useful aspect of vector
geometry. Properly applied, these
offer a more efficient way to
accomplish some of the same
things that trigonometry is
commonly used for, including
aggressive homing missile logic.
BOOLEAN LOGIC
It’s common in game code to want
something to only happen either
when multiple things are true (if
This is why and how I learned simple trigonometry. I player is on ground AND pressing
needed a way to get my virtual anti-aircraft gun in
Sky Rake (1997) to fire a projectile at the same speed
jump button, then jump) or when
independent of which angle it’s fired in. at least one of several things is
VECTOR GEOMETRY
true (if [W Key] OR [Up Arrow] is
The dot product is an incredibly pressed, then try to jump). At first
versatile math operation to gain glance this doesn’t look like math,
mastery of, even in the simplest 2 but when these statements begin
vector 2D case. Learn how to use to compound, there’s are math-
91
like rules that can be used to MATRIX ALGEBRA
In 3D, matrix math is used to
untangle and simplify boolean
perform faster coordinate
logic.
translations and rotations to
SIMPLE ALGEBRA
render models at various locations
Old-fashioned line-intersection
and angles. In 2D, rotating a Tetris
check calculations are great, and
block 90 degrees involves a little
trivial to write as a function. This
matrix math.
comes up for things like pong AI,
which needs to anticipate where TILE ARITHMETIC
Admittedly, this isn’t really a math
an elastically bouncing ball will
field. But it is very important for
intersect a screen edge, or finding
game programmers. I’m referring
if and where a laser or bullet shot
to the use of multiplication to
hits a wall.
translate grid coordinates from a
MODULAR ARITHMETIC
2D array to world pixel/character
The modulus (signified by the %
coordinates, and division to match
sign in many programming
pixel/character coordinates to
languages) returns the remainder
corresponding indexes in a 2D
after dividing one number by
array. Turning a pixel coordinate
another. This can be used to
(208 pixels from the left edge of
bound a number within a given
the world) into a tile index
range, such as ensuring that a
(assuming 16 pixel tiles, 208/16 =
potentially huge positive number
13, so the 13th tile) gives a fast
points to a valid array entry, or
way to check what type of tile fills
limiting a random number to being
that location in a 2D array. If the
less than the divisor given.
player is found to be standing on a
Example: rand()%35 is a common
wall tile, the player can be
way to get a random integer from
bumped backward; if a brick
0-34, inclusive.
breaker ball hits a brick tile, it can
change the value at that tile’s array
92
index to clear it, and reflect the
ball’s movement.

M.C. Escher, known for carving crazy wood prints


in the 1930ʹ′s that we’d have trouble tricking a
modern computer into rendering, was not a
mathematical generalist. He didn’t learn everything
that he could find to learn about math, only to use
whatever tiny fraction of it applied to his work.
Quite the opposite – he dabbled in just as much math
as he needed to create what interested him.

is that in good programming,


every problem is only solved once.
That solution is then abstracted
into a reusable function.
Frequently, then, math needed for
game programming can be looked
Tile-based arithmetic for world collision calculations up on an as-needed basis, coded
is a common memory, performance, and level design
optimization used in many historical game genres. into a new semi-general function
that accepts usage parameters,
Another important thing to keep in then largely forgotten, freeing you
mind, pertinent to any sort of math to think instead about what it does
used for videogame development, functionally for your game.
93
SE C TI ON 5

Question About Comp Sci and


Game Development
Though Computer Science is
very powerful to know, it’s
not the same as game
programming. Most C.S. isn’t
videogame programming,
and vice versa. This may be
Questions About Education

a relief to those that do not


study Computer Science.

Question, Part 1 Answer, Part 1


Hi Chris. This is my first year in college, and I’m First, full disclosure: I was a CS
currently a Computer Science [CS] major. major, too. That may bias my view
However I came in with no prior programming
of it, but it also means that I can
experience, so the math and programming classes
provide an informed, first-hand
so far have been pretty tough. I am thinking
about switching my major to something more
look at how it did or didn’t help.
enjoyable, and just trying to teach my self game Everyone’s path in life and career
development instead. Any thoughts on whether, is different. The decision is purely
or maybe why, it would help to stick it out with
up to you, and as you necessarily
CS? My dream job is to work in the gaming
know more about yourself than
industry, though I may wind up looking into
indie development. anyone else does, it’s important to
weigh my thoughts on this as just
one more source of data.

94
Whether you decide to seek Experience in CS is relevant
corporate industry work or go though, and it complements
independent, I think that a someone’s self-education in game
Computer Science degree is still development by pushing
among the most applicable, development in areas that it would
useful, and broadly marketable be easy to overlook on our own.
backgrounds related to game Material from CS can be useful
development. I’ll do my best here outside of the classroom, when
to make a case for why I think working through real-world game
that’s true. development problems,
sometimes in ways that are hard
Note too that, importantly, CS is
to recognize until they come up
also a credential respected
during the creative process as
outside of games, which can make
either challenges you’ve prepared
it a practical degree to have for
for, or – if the skills aren’t there –
finding or creating back-up plans
as apparent dead-ends.
down the line if necessary.
COMP SCIENCE IS NOT GAME MAKING There are no doubt routes to take
As you’ve probably already that are easier or more enjoyable
discovered, game development to take in the short term, but those
generally isn’t really part of CS paths may or may not be easier
curriculum, except perhaps for a and more enjoyable in the long
single high level elective class. term. College years are partly
Almost all of my game about investing in your future
development during college came capabilities and opportunities; the
from extracurricular clubs. standards and challenges of a CS
degree are just one of the
Learning game development
established ways to stay on a
requires a good deal of self-
solid track to do just that.
teaching no matter what major
someone is undertaking.
95
If it’s not immediately clicking, it understand yet from the lectures
might require spending some and reading.
more time in the library studying BIG COMPANY VS INDIE
(even if you don’t need the books A qualifier about the difference
there for CS, it’s handy as a well-lit between big company work and
place filled with other people an indie career: earnings from
calmly working, too), attending independent development can be
more of the optional tutoring and really, really hit or miss, spotty and
office-hours sessions available unpredictable, and in the majority
through your school, starting of cases unprofitable. There’s a
earlier on assignments, and huge selection bias in the indies
staying up later sometimes to we hear the most about – they’re
hack through getting assignments disproportionately the rare
figured out and working. Many success stories that have done
college students wind up extraordinarily well. The countless
automatically paying for resources others that are barely scraping by
but not making full use of them, or losing money don’t make for
whether via the career center, good headlines.
library assistance, or office hours.
Independent work can be a tricky
Before deciding that a subject isn’t
and trying path to navigate, and
working out, make sure that you’re
though it’s potentially very
at least getting your money’s
rewarding, it should perhaps be
worth and using all the
initially thought of as something to
mechanisms available. Outside of
develop on the side of some more
working on videogame projects
consistent line of work as the main
and trying to live a rounded life in
plan. With a bit of momentum from
college, I spent a ton of time at
giving yourself a head start, and a
office hours asking questions to
bit of savings in the bank from
try to fill in for what I didn’t
doing something with a more
96
predictable paycheck for awhile Do you see the industry moving more towards
first, you’ll have better odds of requiring a relatable degree?
lifting off the runway. Answer, Part 2
One element that helped me in my You’re right that many of the
journey – though again each current big and/or historical
individual’s mileage from such names in the industry have a
choices will vary – was to minor in seemingly random assortment of
Business Administration. Those backgrounds. John Romero and
courses involved learning and David Perry were both, if I recall,
practicing skills that were useful in completely self-taught, and did
every scale of work environment not attend university. Nintendo’s
that I’ve been involved with, Shigeru Miyamoto went to school
including my time alone: for industrial design. In my
presenting information, ideas, interview with Atari Adventure
yourself to others, basic financial designer Warren Robinett, he
concepts, project planning, even mentioned that one of his early
practical bits like resume co-workers in the game industry,
preparation. (Even if you go “had a degree in Zoology.”
independent, keeping an efficient,
Of course, Shigeru Miyamoto was
up-to-date, professionally
born in 1952 – so for perspective,
presented summary of skills and
Pong hit the market (overseas,
work can be useful to have on
here in the US) when he was
hand.)
already 20 years old. Robinett’s
Whatever you decide, good luck undergraduate degree was not in
on the road ahead! Computer Science – he majored in
a CS-like area of math, but when
Question, Part 2
he was an undergrad CS had not
It seems like many of today’s big designers got
yet become a standardized field of
into the industry with a non-technical major.
study.
97
That historical difference partly and commercialized until much
accounts for what you’ve rightly later in the 90′s.
pointed out.
There also wasn’t much ‘prior art’
40 YEARS AGO for a game developer to catch up
The industry didn’t exist when
on. Nearly everything being done
most of the early innovators were
at all was new, and by casual
growing up. To the extent that
assessment equally valid from a
some degrees were later relatable,
business perspective until the
like Robinett’s pre-CS technical
market response to a shipped
math major, no one at that time
product indicated otherwise. By
could have picked it for that
comparison, much has since been
purpose, because those exact
sorted out by now, both from a
jobs and products didn’t exist yet.
technical perspective and also
Another thing to keep in mind was from a business perspective.
that computing was very different People have already lost a lot of
in the 1960′s to early 1970′s. Far time and money figuring out how
fewer people had access to to do certain things in impressively
computers, but among those that efficient ways, how to collaborate
did, a much higher percentage of effectively on team projects, and
users taught themselves how to discovering what consumers
program because it was pretty responded to well or poorly.
central to being able to use a Developers caught up on those
computer at all. Programming was findings have an advantage over
one of the few activities that could others starting from scratch,
be done on machines at the time; reinventing the wheel, insisting on
the first word processor didn’t learning the hard way.
come out until 1972, and the
Now that four decades have
internet didn’t become common
passed, many of the surviving
companies have thousands of
98
employees (or at least compete company’s first line of
against companies of that size), assessment. At a company with a
and there’s demand for high recognizable brand, the executive
degrees of specialization for a producer or lead engineer can’t
team to be able to distinguish its personally screen every applicant.
products from those that Instead, the initial set of applicant
competitors are able to create. submissions first has to make it
Even just keeping up with inflated past recruiters that are not
consumer expectations, especially necessarily game development
on today’s higher fidelity specialists, and thus may look for
platforms, can require specialists. specific degrees and types of prior
Whether applying for an industry experience as evidence of the
job or creating independent skills they’re hiring for.
games as a small team, each Applications making that cut then
individual is competing against a move on to one or more rounds of
tidal wave of other eager, interviews, at which point an
passionate people that have partly appropriate specialist from the
designed their education and adult team may be available to help
lives around developing skills that assess actual qualifications, but
have been found relevant to the getting to that phase with little or
now more established craft of no relevant professional
videogame production. experience is part of where the
INCREASED IMPORTANCE OF DEGREES appropriate degree can help.
The increased importance of
While there may be capable
degrees, though more so for
applicants without relevant
applying to jobs as opposed to
degrees, unfortunately there are
working independently, has also
often enough qualified applicants
become a useful shortcut for
that do have relevant degrees that
hiring managers serving as a
it’s easier and more cost and time

99
efficient for a company to hire specifically apply to computer
primarily from the latter pool, for programs. (i.e. while it’s true that
which less screening may be plenty of subjects may reward
required since college admissions attention to efficiency and
and professors may be thought of feasibility, traditional CS
as a very specific sort of filter. approaches these in an extremely
COMP SCI IS MORE THAN PROGRAMMING rigorous fashion by dealing with
A CS degree is not just about their theoretical limits.)
knowing how to program. Having
The increase in people hired that
a particular degree is often also
have relevant degrees, from the
interpreted as evidence,
above factors, has created a
correlative beyond the scope of
positive feedback loop. When the
what’s covered directly by the
people with those credentials get
curriculum for that degree, that
promoted over the years into more
someone is dedicating themselves
senior-level positions, they’re even
to some predictable set of
more likely to value that same (or
knowledge, skills, and values.
similar) credential among incoming
Companies need all kinds of
candidates at an interview stage.
people to thrive, but from a purely
GAME DEGREES
practical perspective, it doesn’t
Another option within the
take much imagination to picture
spectrum – which you haven’t
how a “CS person” can fit in and
asked about directly but I’ll
benefit a company that creates
address here for sake of
software. Computer Science
completeness – is in degrees more
rewards attention to efficiency,
specifically and narrowly about
feasibility, robustness, extensibiliy,
videogame development. These
self-correction, and some other
haven’t been around as long as
less easily pinpointed but equally
Computer Science, making them a
useful priorities, in ways that
bit less standardized, and
100
consequently more of an people coming from that
unknown, unproven value to many background will be held up as
people in industry. Anyone with a evidence of the type of value
CS background has a pretty clear associated with those degrees.
idea of what someone with a CS
That path can also be a more risky
degree from another school likely
value proposition to students,
covered, but there’s so much
however, since those degrees
variety between game degrees
sometimes cost comparatively
that it’s hard to know what skills
more (being seen as more
and work culture to expect unless
vocational, and thus framed more
someone in a hiring position is
as a financial investment) and can
personally familiar with that exact
be more limiting to videogame
school and educational program.
industry work. Students with those
Partly as an effect of having not degrees have less of a clear back-
been around as long, there are up plan, not only if they can’t find
also not many senior-level people a fit in the game industry, but also
(yet) from those types of if the game industry undergoes a
educational backgrounds. major shift as it did when arcades
mostly phased out, when MMO’s
The flip side is that some of the
seemed like the next or only big
same factors that have made the
thing for awhile, when digital
CS degree of more interest to the
mobile distribution lowered
industry are likely at work for
barriers-to-entry for competitors
those more game specific
with much smaller staff, and as
degrees: easy shortcut for hiring
social games have grown to
managers, evidence of (probable)
absorb an increasingly sizable
commitment to certain knowledge
chunk of game company
and attitudes beyond the
investment capital.
curriculum, and as time
progresses, more senior level
101
The value of a mostly game- CLOSING
The case, by contrast, for a CS
specific degree as a back-up plan
degree is that its emphasis is on
varies greatly between how
fundamental concepts, which aim
individual schools have chosen to
to extend well into the future
implement such programs. I have
largely independent of specific
heard peers in such programs
technologies or how the market
report everything from their
may change. At any time in game
studies being typical Computer
industry history, even just a five
Science in-disguise, to specific
year span has covered some
tool training (which can seem the
pretty dramatic changes, but a
most useful in the short term, but
proficiency for the skills and
can be the least useful in the long
mindset of proper software
term – teach yourself the tools,
development has remained central
instead!), to amounting to little
and relevant.
more than an excuse for
networking. Remember though Lastly, as a reminder: I have only
that a recruiter without direct an outside, second-hand
connections to the particular perspective of the alternatives.
program (perhaps less likely Your best bet for gaining a more
outside the industry than within it) balanced perspective would be to
may not have an easy way to pitch this same question to some
quickly discern one of the above game developers with different
from another, and that could affect backgrounds. There’s no one right
whether an application makes it to way to go about it, though the
a stage in the process at which odds are better some ways than
someone with the necessary others.
domain knowledge takes the time
to sort out the candidate’s relevant
capabilities.

102
SE C TI ON 6

The Ways of Self-Education

The world has never had so


many resources to learn
from, and our access to
them with a simple internet
connection is incredible! Yet
for it to benefit us, we’ve
Questions About Education

got to make sense of what


to find and how to use it.

YOU CAN TEACH YOURSELF THERE’S A PROCESS TO IT


Many of the skills that you’ll need Being good with computers isn’t
to make videogames, you can about knowing everything. It’s
teach yourself. about knowing how to look up or
figure out what you don’t know.
…says the guy that devotes much
Similarly, teaching yourself to
of his time to teaching videogame
make videogames is largely a
making.
matter of knowing which
However I’m talking here mainly resources are available to you, and
about baseline skills. By providing how they can best be used to
this guide to navigating materials accelerate your progress.
to help you teach yourself, I’m
There are a few other resources
growing the number of developers
than Google to consider in this
that I can work with on the deeper,
case, though. The main types of
more interesting challenges that I
resources available to you for
find more engaging.
103
teaching yourself basics are the important things to think about
Books, Websites, Programming are that (a.) the cost per hour is
Language and API Docs, Forums quite low, (b.) the overall cost
and Peers, Code Libraries, Sample pales in comparison to paying for
Code, Practice, and Past Project classes, and (c.) it’s impossible to
Files. estimate value of “this
BOOKS professionally prepared and edited
There are books on every topic, content was what enabled me to
for every ability. succeed in learning this” (I can say
that last one about at least a few
Many are available online for free,
books I had growing up).
although a number of those may
be relatively outdated. WEBSITES
Websites are terrific resources for
Relying early on too much on providing answers to specific
purely online resources questions, and finding links to
encourages sloppy habits that other useful resources like sample
shortcut learning, like copying and code. As explained above, I
pasting blocks of code instead of believe that they’re not as good
getting in the habit of typing it. for conveying fundamentals.
Web resources are awesome for
PROGRAMMING LANGUAGE AND API
looking up information – they can DOCUMENTATION

be searched trivially if you know APIs, or Application Programming


what you’re looking for – but to Interfaces, are massive branching
develop a full understanding of directories of information
fundamental skills and a sequence indicating what is built into a
of material can be really helpful. programming language’s default
functionality. Languages that are
Cost can seem like a factor, since
newer than C and C++, especially
good books on this subject can
programming languages used for
easily be in the $30-$80 range, but
online content, have extensive
104
APIs, like the Java API (Java is FORUMS AND PEERS
Just like in school, if you have a
great for learning programming,
question, there’s a pretty good
and though often not ideal as a
chance that other people trying to
final platform for intermediate/
learn the subject have this
advanced game making, its API is
question, too.
a great example) and the
ActionScript 3 API (still used for Unlike in school, your class size
many web games). ranks in the hundreds of
thousands, and there’s a detailed
There’s more information in there
record of virtually every question
than any one human being should
asked in the past decade or
read in their lifetime, and a good
longer.
95% of it probably isn’t at all
relevant to what you’ll be using If you’re finding yourself stuck on
most of the time to make something – and I know this
videogames. These are handy seems obvious but I’d be remiss
references to keep a link to, and to not reiterate it – do an internet
can be a lifesaver in clearing up search or crawl relevant web
detailed questions about what to forums for an answer. If you can’t
expect in terms of handling of find one, then – keeping to the
errors and edge cases. But once school analogy – do a favor to
again, digital resources are a good hundreds of thousands of people
way to hunt for specific answers over the next decade by speaking
to specific questions you have, or up on forums with your question
to find other resources. someplace that others with your
same question will find the
But learning to program starting
answer.
from the API would be like trying
to learn creative writing in a CODE LIBRARIES

foreign language beginning with In programming, a library is just a


their native dictionary. packaged chunk of code someone
105
else wrote to handle specific Finding good sample code can be
functionality. This might include the difference between taking
network operations, text display, hopeless shots in the dark about
sound playing, image how things tie together, and
manipulation, loading, displaying, working with confidence that what
physics simulation, etc. you’re starting with should work.
This is also invaluable early on
A good programming library can
because by starting with code that
address a problem that you had
you know should work, it can help
no clue how to solve, in a way
you determine whether your
that’s (a.) fast (b.) easy (c.) leaves
programming environment is
you clueless how to solve it
installed and configured properly –
without using the library. If your
if it fails with sample code that
goal is learning about something
came from a dependable source,
in particular, like graphics
you know that your project,
programming or network code,
environment, or compiler isn’t set
point (c) may be a problem. In
up correctly. That’s way better
many cases, a library is used to do
than tearing your hair out
something that very smart people
hopelessly changing things in your
have spent decades researching
code wondering why it’s not
and perfecting. In that case, that
working.
library can save you literally years
of frustration, and let you focus Find sample code. Read sample
instead on what you’re doing with code. Compile sample code.
the graphics, network, and Retype sample code. Modify
physics code to make your game sample code. Try commenting out
stand out. various lines of sample code to
SAMPLE CODE see how it affects what happens.
Jackpot! Add comments to sample code.

106
Search for sample code Some people are as fluent and
appropriate for your level of comfortable with programming as
comprehension. If it’s not too long, they are with their primary
and it doesn’t make perfect sense speaking language. Others fumble
to you just yet, verify that it through it like it’s a secondary
compiles in your environment, language they remember traces of
then print a copy to keep folded in from when they took a few
one of your books for occasional semesters of it many years ago in
review. school.
PRACTICE I chalk up that difference to the
Good programmers are
comfort that comes from
dramatically faster and more
countless hours of practice. The
efficient than less good
kind of usage that goes beyond
programmers.
fulfilling a specification someone
“Good” here isn’t in reference to else handed over. The kind of
total years of experience, how experience that comes from
many different programming stretching and applying
languages someone knows, or knowledge to solve problem or
what projects someone has been create a project that the
a part of building. “Good” is programmer was personally
referring to how quickly someone invested in.
can synthesize the code needed
On one end of the spectrum,
to solve a problem, how well that
there’s the way that someone with
someone can generate code
zero background in programming,
which is structured with future
but access to the internet, could
needs, readability, and adaptation
cobble together code they don’t
in mind, and how easily the person
fully understand to make
can digest and interpret code put
something happen. On the other
in front of them.
end of the spectrum, there’s
107
someone that can just breeze Time and time again, my mountain
through whatever problem you put of past project code has been the
in front of them, perhaps source of my confidence in taking
occasionally taking a moment to on a new project. Provided that
reference documentation or copy I’ve done something in a past
something out of their vast library project, or done something like it,
of past project files. there’s no doubt in my mind that I
know how to do it, and can
I’m reiterating this distinction for
probably make it work again
an important reason:
without much fumbling around.
1.) You absolutely, positively, Instead of spending my
unmistakably, want to be in that implementation time thinking
latter group. You want to be the about how to do something, I
person that is really on top of their could start from my past solution,
stuff. and spend that time finding a way
2.) There is no doubt, none to do that something better.
whatsoever, about why you will or The only way to get that mountain
won’t wind up in that latter group, of past project code is to (here it is
instead of that former group: again!) practice. On your own
practice. time.
YOUR PAST PROJECT FILES
If it’s done to satisfy classwork
Your past project files are much
requirements, it won’t be any
like sample code. The main
different than what every other
differences are that you
programmer has been exposed to.
understand everything in it.
Because you were responsible for If it’s done to satisfy business
the whys and the hows, you know goals, it’s likely company property
exactly where to find what. that you’re not free to reuse.
Practice. On your own time.
108
3 Programming is the language of
the machine. No skill will serve
as a more general foundation in
empowering you to see through
your own unique ideas. Even if
you want to be a level designer
or artist, you will be able to
create the context and tools for
your work by coding.

Programming

109
SE C TI ON 1

Game Programming Fundamentals

Many people getting into


game programming are
first learning - or have
already learned - some
common programming
elements. Here’s how those
generic pieces tend to show
up in videogame making.
Programming

Programming Basics in complement other resources that


Game Context are out there by providing a
The goal of this section is certainly connection to how the most
not to immediately transform common code structures are used
someone with no prior in videogame development.
programming experience into a My hope is that I can plant seeds
game programmer. That takes of familiarity, and establish context
time and practice, reading and of use for the various elements of
trying, experimenting and thinking, programming.
over a period of weeks (basics),
The following examples are given
months (intermediate), and years
mostly in C code, taking
(expert). This is not intended to
advantage of a little bit of the
take the place of a good book on
flexibility given by a C++ compiler.
programming, or practice – it’s
C++, Objective-C, ActionScript 3,
here for warm up, review, or to
110
and Java use the same or nearly Whitespace
identical structures for the same WHAT IT IS:
functionality, and those are the Whitespace refers to the gaps
major programming languages between letters within program
used to develop today’s console, code, whether represented as
downloadable, mobile, and web tabs, spaces, or new-line breaks
videogames. (as from the Enter key). Many
modern programming languages
Finally, the text in this section
treat all whitespace the same,
introduces a lot of material, in a
meaning that whether you skip
very short space for the amount
lines, indent a certain distance,
presented. If you’re new to
put two spaces instead of one, or
programming, it will take more
use tabs instead of spaces, the
than one read, but there’s a good
program code will work exactly
chance that you’ll pick up
the same way.
something new each time.
HOW IT LOOKS:
Remember: programming is how
for(int i=0;i<5;i++){showNumber(i);doOtherThin-
every videogame on the market gToo();}

(Wii, online, mobile, 360, PS3, …works the same as, but is not as
SNES, Atari, Arcade…), every easy on human eyes as…
piece of software you use (Office,
for(int i = 0; i < 5; i++) {
Windows, FireFox…), and every showNumber(i);
doOtherThingToo();

electronic device works. There’s }

EXAMPLE OF A USE IN VIDEOGAMES:


some patience involved in
When a program’s source code
understanding how all these
doesn’t compile correctly,
things work. Stick with it – you’ll
especially for a beginning
be glad you did!
programmer, it’s frequently due to
a mismatch between braces (the
{ and } symbols). Effective use of
indentation to indicate how many
111
pairs of braces are around code was written. Does the collision
helps keep track of where braces detection algorithm assume two
should close. All errors in objects weren’t already
programming code are reported overlapping in the previous frame?
by the compiler using line Is there a limit to how many bad
numbers, which are only useful in guys the game’s graphics code is
leading the programmer to the intended to render at once?
problem if the code is broken onto Comments are a perfect way to
new lines after each individual record this thinking alongside the
instruction is ended by its code to which it’s relevant to
semicolon. ensure that it’s passed along to
your future self, or anyone else
The Comment
that might wind up reading the
WHAT IT IS:
Text visible only to the human code.
reader, that the computer ignores Names
when it’s time to generate WHAT IT IS:
(“compile”) a program from the It is up to the programmer to
program code. create names for most things used
HOW IT LOOKS: in a program’s code – names to
// Text to the right of two slashes is a comment keep track of numbers that are
/* ...and so is anything typed between the slash- being used differently, to refer to
star and the star slash. This type of comment,
unlike the double-slash style, works on multiple
lines. */
text phrases that serve different
EXAMPLE OF A USE IN VIDEOGAMES:
purposes, and names for different
If you program something at the chunks of code to succinctly
start of a project, then return to describe their functionality. The
that part of code weeks or months computer doesn’t care what these
later, you may have trouble names mean to people
figuring out what you were (“drawStuff”, “ElvisPants”, and
intending when the original code “BV3_aUiP0” are all equally valid),

112
but their consistent usage in browsing through it. That means
different parts of the program is less time is needed for writing
how the programmer stores, extensive comments to explain
changes, and checks values for exceptions or clarify meaning, and
different purposes. far less time will get drained into
untangling confusion (or problems
Even though the computer can’t
arising from confusion) based in
tell the difference between a
poor name choices.
function for updating the screen
called “UpdateScreen” and one Sequence
called “DogsGetExcited,” the WHAT IT IS:
former is a smarter choice With only very rare exceptions (ex.
because it reflects how the very advanced topics related to
programmer is using the label. PS3, XBox 360, and high-end
Note that whatever names you use computer programming), program
inside your program are 100% code executes only 1 instruction
invisible to the users and the at a time, 1 step at a time, top-to-
outside world – they’re just a way bottom just like English text is
to stay more organized about the read. Every instruction goes on its
numbers you’re shuffling around. own line, for sake of human
HOW IT LOOKS:
readability, and must end with a
moveBadguys(); // good name for a code chunk
semicolon, for sake of machine
int playerPositionX; // clear name for a number
readability.
abc123(); // terribly unclear name. What’s it do?

int r; // bad! radius? red? radiation? roundness?


HOW IT LOOKS:

doThing(); // happens first


EXAMPLE OF A USE IN VIDEOGAMES: doOtherThing(); // then this
If you’re good with naming all the lastThingHappening(); // happens last

numbers, code sections, files, and EXAMPLE OF A USE IN VIDEOGAMES:


other labels needed by your moveByPlayerInput();
detectCollisions();
program, the code can become drawEverythingToScreen();

impressively clear to anyone


113
…is a smarter order than… called; if it is a function that takes
detectCollisions(); input values, those values would
moveByPlayerInput();
drawEverythingToScreen(); be specified between the
…because in the second ordering, parenthesis.
character positions aren’t updated Programming languages tend to
to account for collisions that could have one initial entry function that
have happened by the player’s always gets called: either main() in
input until after the current frame C/C++, or with a name matching
is drawn to the screen. That the main file, class, or program in
means the player may wind up Java/ActionScript. Code begins
seeing things overlapping one working from the top of that
another, which could have been function, and keeps going until it
easily avoided by simply switching reaches the bottom of it, getting
two lines of code! sidetracked into functions called
Functions from it.
WHAT IT IS: HOW IT LOOKS:
A function is a mostly self- The “declaration” takes a form like
contained solution to a recurring this:
problem. In its simplest form, it’s void doThing() { // function with no input/output
// Code goes here... to do anything
simply a group of code that can
// every time the function is called
be called from any other place in //
//
this code will execute, top-to-bottom,
from the function's starting brace "{"

code, any number of times, with a }


// to the function's ending brace "}"

one word label. More involved


The “call” (use) often looks like
functions can accept input values
this:
for use in calculation, and/or can
output new values reflecting the doThing(); // does "code goes here" from above
doThing(); // runs that code again, a second time

results of its processing. The


EXAMPLE OF A USE IN VIDEOGAMES:
parenthesis pair always show up Grouping related code together
after a function name when it’s into functions helps organize code
114
into more readable sections. A check for user input, and redraw
function called drawStuff() might the display – anything that needs
contain calls to all other draw to happen constantly. Common
functions, such as those used for names for this function, by
drawing the background, player, convention, are draw(), update(),
enemies, powerups, weapon tick(), move(), or something similar,
projectiles, and health information, although they can often be called
which in turn could call other anything the programmer would
functions that handle the details of like. Generally what function gets
how to display the necessary called, and how often it gets
images in the necessary places. called, gets set up in the
This approach enables you to program’s initial entry function
separately take a detailed or big (explained in the “What it is”
picture look at different parts of section above).
the program, breaking the
Includes
functionality up into
WHAT IT IS:
understandable chunks. It also Technically, “includes” takes the
centralizes code that’s needed contents of another file and
multiple times into one place, dumps them word for word into
where it can be fixed or updated the file that features the include
only once if something is found to statement.
be broken in its behavior.
Practically, it determines which
In real-time videogames, there is pre-made functionality you have
generally one primary function that access to using. It works this way
is set up to be called about 30 because most of the files we
times per second, executing code include are ones that define pre-
in it from top to bottom. That made functions for us to call in our
function is expected to call other programs – the include statement
functions to update positions, automatically injects those
115
definitions to the top of our file. tackling very hard problems so
Programming languages come that you won’t have to. Instead,
with many libraries prepared for find and include libraries that have
things like displaying text, reading their brilliant solutions inside them!
keyboard input, accessing This allows you to focus your
network hardware, and performing programming on what your
comparisons and manipulations of videogame does differently with
text. those graphics, sounds, and input
HOW IT LOOKS: events, instead of how to simply
#include <stdio.h> // C language for text output get them to work.
// "stdio" stands for "STanDard Input Output"

…then, later in the code… Variable Declaration


WHAT IT IS:
printf("This will show up, thanks to stdio.h!");
A Variable Declaration is a line of
EXAMPLE OF A USE IN VIDEOGAMES:
code that sets aside a named
Additional libraries can be
container for a value. It’s up to you
downloaded from the internet (like
as the programmer to come up
Allegro, SDL, or DirectX in this
with a name that you think is
case) that enable you to make
suitable. That value is often a
simple function calls to load image
number, a letter, a series of letters
or audio files into memory, change
(“string”), or an object (group of
the screen resolution, display
numbers, strings, and/or other
images to the screen, play sound
objects) – to be saved, updated,
effects, and handle fluid keyboard,
and checked within code.
mouse, or joystick input. People
have earned their PhDs from HOW IT LOOKS:

finding faster ways to get a int health; // to store/change/check one number


int lives; // store/change/check another number
// int stand for INTeger (any whole number)
computer to draw a line – don’t
EXAMPLE OF A USE IN VIDEOGAMES:
waste your time trying to re-invent
Every distinct horizontal position –
the wheel, when generations of
how far a player, bad guy,
computer researchers have been
116
powerup, or particle is from the float thisCanBeADecimalNumber;
char someonesFirstInitialCanBeSavedHere;

left side of the screen – must be EXAMPLE OF A USE IN VIDEOGAMES:


tracked with a distinct variable. The number of lives would be an
This is true for every distinct integer, since it is counted in
vertical position, too. discrete units. A rocket projectile’s
speed and position would be
The same goes for how much
floats, since for smooth motion
health each character with health
with acceleration finer variation is
has, how many characters are
needed than whole numbers allow.
alive at once, how much magic
A player’s initials on a high score
power the player has left, which
screen would be stored as char.
powerups the player has in
inventory, what level the player is Assignment
on… If it’s something that has to WHAT IT IS:

be remembered even temporarily, The equal sign in programming,


and may not always be the same unlike the equal sign in math
number, it needs a variable. You’ll classes, does not mean both sides
be declaring lots and lots of of an equation are the same. In
variables. fact, it isn’t used to write an
equation – it’s used to create a
Common Types statement of assignment. Where
WHAT IT IS:
there’s a single equal sign,
A “type” is any form of variable.
whatever is on the right side gets
Some of the most common are int
evaluated (added together,
(integer, non-decimal number),
multiplied out, substituted in, etc.)
float (floating point, refers to a
then stored into the variable to the
number with accuracy finer than
left of the equal sign. That is, a
whole numbers), and char
new value is assigned to that
(character, i.e. letter).
variable name.
HOW IT LOOKS:

int thisIsAWholeNumber;

117
HOW IT LOOKS: lives + 1; // Does not change! No = sign!

int temporaryNumberStorage; // creates a variable Since that previous method of


temporaryNumberStorage = 5; // sets variable to 5
// read as, "store 5 into temporaryNumberStorage" adding or subtracting involves
Here’s an example of what NOT to typing the variable name twice,
do: there’s a slightly faster way that
programmers invented to mark
5 = temporaryNumberStorage; // meaningless! BAD!
// Say, "store temporaryNumberStorage into 5"
// That sounds like nonsense, right?
that addition or subtraction that
// What does it mean to save anything into 5?
// Your computer doesn't know, either saves into a variable with the
And another, slightly fancier assignment operator (=):
example: Subtracting 1 life:
int num1; lives -= 1;
int num2;

num1 = 9; Giving 2 extra lives:


num2 = 35;
num1 = num1 + num2 - 2;
lives += 2;
// num1 winds up 42 (from 9 + 35 - 2)
// num2 stays 35, because it's right of the =
You can write it either way. “Var =
EXAMPLE OF A USE IN VIDEOGAMES:
Setting a player’s number of lives Var + num;” is the same as typing
(assuming “int lives” has been in “Var += num;” and that also
declared earlier in the code): works for multiplication (*), division
lives = 7;
(/), and subtraction (-). Lastly, the
addition or subtraction by 1 is so
Subtracting 1 life:
common in code that there’s a
lives = lives - 1;
way to do that without using the
Giving 2 extra lives: assignment operator:
lives = lives + 2;
Subtracting 1 life:
Beware that the following line lives--;
does not actually change the value
Add 1 life:
of lives, since there is no equal
lives++;
sign acting as an assignment
operator (=):

118
(That’s where the programming EXAMPLE OF A USE IN VIDEOGAMES:
Objects – whether structs in C or
language C++ got it’s name. It’s
classes in newer programming
the same as the C programming
languages – are essential to
language, but with stuff added on
keeping organized a project grows
top.)
to include many different kinds of
Object characters, environment pieces,
WHAT IT IS: data formats, and other
A way to organize multiple conceptual groupings of variables.
variables together into a The example above is a very
meaningfully named grouping. As simple, fairly typical use, but could
with function names and variable be expanded to account for each
names, the programmer invents character’s image, mood,
these names, ideally choosing a momentum, rotation, animation
name that reflects how the group frame, inventory, etc.
of variables is intended to be
used. In C, it shows up as a struct, The Array
which only contains a grouping of WHAT IT IS:
An array is a way to store a
variables, but in C++ and most
sequence of variables, such that
other more recent languages it can
they share a common label (think
be class, which has the ability to
street name) but different index
also group functions, plus a few
numbers to distinguish them from
other benefits.
one another (think house or
HOW IT LOOKS:
building address).
struct character {
int health;
int x, y;
HOW IT LOOKS:
};
// The number in [brackets] declares array size.
character thePlayer; // Array addresses start at 0, so 1 less than the
character badGuy; // size of the array is the highest index
// Defining size [3] gives us [0],[1], and [2]
thePlayer.x // storing the player's x position
badGuy.health // storing a badguy's health value int numbers[3]; // creates 3 int variable array
numbers[0] = 1000; // saving 1000 into address 0
numbers[2] = 70; // it’s 3 separate numbers!
numbers[1] = numbers[2] + numbers[0];

119
// numbers[0] winds up as 1000
// numbers[1] winds up as 1070 a<b (a is less than b?)
// numbers[2] winds up as 70
a>b (a is greater than b?)
// 3 separate numbers, 1 common label
a<=b (a is less than or equal to b?)
EXAMPLE OF A USE IN VIDEOGAMES:
a>=b (a is greater than or equal to
Any time there are many of
something, and each something b?)
a!=b (a is not equal to b?)
behaves the same way or based
a==b (a is equal to b?)
on similar rules, there is probably
an array or similar data structure Note that multiple statements can
involved. Particle effects, enemy be combined using logic
characters, units on the battlefield, operators:
projectiles, and so on are often (a<b) && (b > c)
tracked using arrays, utilizing The means (a < b) AND ALSO (b > c)
Object structure of a language to (a<b) || (b > c)
group each individual thing’s means (EITHER a < b OR b > c)
variables together. HOW IT LOOKS:

An array of letters (“characters” or if(lives > 0) { // "if the player is alive"


// ...move and draw the player here...
chars) forms a “string,” word, or } // otherwise code skips ahead to here

phrase which can be used as a EXAMPLE OF A USE IN VIDEOGAMES:


Killing a character when it runs out
name, displayed on screen as text,
of health, forcing the player to stay
etc.
on screen if the x or y positions go
If Statement (Conditional) outside an acceptable range,
WHAT IT IS: checking whether a gun needs to
Checking whether one or more be reloaded before allowing it to
mathematical comparisons or initiate the reload animation/code,
functions evaluate to true, and etc.
only doing a section of code if it is.
Valid comparisons include:

120
Else and Else-If Statements the internet) is an alternate
WHAT IT IS: construction available if the else-if
Using a section of code only if the chain is checking matches against
result of an if statement turned out consecutive integers (is it 1?
false. otherwise, 2? otherwise, 3? etc.).
HOW IT LOOKS:
While Loop
if(lives > 0) { // "is the player alive?"
// ...move and draw the player here... WHAT IT IS:
} else if(continues > 0) { // "continues?"
// ...go to the continue screen... It works a lot like an If Statement,
} else { // "if the player isn't"
// ...play sad music... except that when it closing brace
// ...go to game over screen...
}
is reached by the code, it checks
Note that you can have as many the While condition again. When
else-ifs as needed. You can even the While condition is still true, it
just have an else first thing right goes through the code between its
after an if. The presence of any braces another time; if the while
else or else-if is optional. If there's condition’s comparison expression
an else, it must come last in the is false, then code continues after
chain. its closing brace.
EXAMPLE OF A USE IN VIDEOGAMES: HOW IT LOOKS:
It’s extremely common to use this while( gameHasBeenLost == 0 ) {
useMouseInput();
type of series of evaluations in moveEnemies();
updateScreen();
games for a computer controlled if( health < 0 ) {
gameHasBeenLost = 1;

enemy to evaluate circumstances }


}

with a pre-determined priority, to EXAMPLE OF A USE IN VIDEOGAMES:


handle a series of circumstances Its most common usage is shown
that might cause a collision to immediately above – the game’s
detonate a projectile, or to handle logic and screen updates occur
menu item selection. constantly within a while loop,
The switch-case sequence (not until something happens within
covered here, but easy to find on the program (a key is pressed, a
121
menu item is clicked, lives run out, For Loop
etc,) causing its comparison WHAT IT IS:
expression (here The For Loop groups together a
“gameHasBeenLost IS EQUAL TO common and very useful pattern
0″) to no longer be true. of programming: set up a variable
to be used in a while loop, declare
Take heed that with any loop, the
the comparison expression for the
risk of an “infinite loop” – code
while loop to evaluate, and do
that never stops executing –
something each time through the
appears if nothing inside it
loop to affect the loop’s variable.
happens that will turn its
It’s commonly demonstrated as an
expression condition false. If your
easy way to count from one
program is being run in an old
number to another, but it can also
terminal, and seems to be stuck,
be used to scan across every
CTRL+C will bail from it. If all else
letter in a word, check every pixel
fails, CTRL+ALT+DEL (PC
of an image, or call a function on
Windows) or Force Quit (Mac) will
every bad guy/item in the world.
easily and safely terminate a
HOW IT LOOKS:
program that is trapped in an
infinite loop. for(int count=0; count<100; count++) {
// ...do something here...
// it will happen 100 times.
Note that the above usage is no }

longer common in certain newer …that behaves exactly the same


languages, particular ActionScript as this:
3, which instead handles game
int count=0;
logic best in the form of setting up while(count<100) {
// ...do something here...
a timer to call a particular function // it will happen 100 times.
count = count + 1; //Same as "count++;"
some number of times per }

second. (Not shown here.) EXAMPLE OF A USE IN VIDEOGAMES:


Going through each bad guy and
updating their position, where
122
each bad guy is an object in an
array, by calling a function on the
bad guy in the array position
denoted by the for loop’s counting
variable.

123
SE C TI ON 2

How Programmers Program

This is something rarely


taught, because it’s mostly
learned through experience
and hard to show in books
or example code. But I think
it’s important to emphasize
that code is rarely written
top-to-bottom in one pass.
Programming

NOT FROM START TO FINISH anything other than the most trivial
As a beginning programmer,
of examples typically involves
looking at finished example code
dozens, sometimes hundreds of
can seem daunting. How, with any
iterations, each of which amount
amount of experience, does
to drafting, editing, and polishing.
someone know what key to type
next? What is the thought process A Steven King novel is an
in someone’s head while they’re impressive thing to read. A
typing out new functions, classes, Spielberg film is an impressive
and algorithms? thing to watch. Every piece seems
well planned, and every scene
Unless a programmer is retyping
throws something new our way.
something that has been
The pure density of ideas
committed to memory, the
presented can seem
characters aren’t typed in their
overwhelming to an aspiring
final order. Finished code for
creative. But that quality of
124
content doesn’t just come estimate how long different
together that way the first time, features will take, or how valuable
beginning to end. The final they’ll be in the big picture), or
product came together only after whether it’s just time for hacking
countless drafts, aggressive features together to explore and
editing, and years of attention paid entertain creative whims (a good
to polishing every last detail. way to learn), the actual process is
still incremental. A version is built
Why would computer
with an unanimated character
programming be different?
drawn on screen, the next version
FROM THE OUTSIDE IN
moves that character according to
The first time that I compile any
which control keys are pressed,
videogame project, the first
the next version applies gravity to
version is a black screen. The
the character, followed by a jump
second version that I compile is a
ability, then collision with enemies,
black screen that makes a sound,
followed by hook up to
or displays a rectangle. The third
animations, and so on. Between
version will perhaps make the
each step, there’s compilation and
sound when spacebar is pressed,
brief playtesting to make certain
or move the rectangle to the last
that the last executed layer does
place the mouse clicks. Until
what it’s expected to do.
those things work right, the
videogame project isn’t going to ENABLE FAST ITERATIONS TO TEST CHANGES
Because of the iterative nature of
work anyway.
this process, consideration should
But that isn’t just how the process go into how to streamline the
starts – that’s also how features testing cycles early on in
get implemented. Whether development. While the tendency
planning went into which features of many beginners is to first make
are worth making (a good habit if the logos, splash screen, and
you have enough experience to
125
menus – again demonstrating the have done something wrong. This
erroneous thinking that something thinking has no place in
ought to be made in the order it programming, particularly when
will be experienced in – I suggest the notification of what’s “wrong”
working in the opposite order. just comes from the machine.
Leave the interfaces and splash YOUR PATIENT TEACHER
screens for last, when they’ll slow The compiler can be thought of as
down testing the least possible a teacher with infinite patience.
cycles, letting the game compile The compiler is always happy to
or run directly into play mode as proof-read code, and after passing
early as possible and keeping it that grammar/spelling inspection,
that way for the bulk of the it will show exactly what the work
development time. so far does.
ERRORS ARE A SIGN OF PROGRESS, NOT It’s a bad idea to wait until most of
FAILURE
Another part of the process in how an work is done before making
programmers program is hitting sure that it’s being done right. If
frequent errors and obstacles. starting in the wrong direction, it’d
Whether we’re setting up the be wise to find that out as soon as
development environment, writing possible before the mistake grows
core functionality, or extending throughout the program. When it
existing functionality to tend to comes to asking real human
details, the process of beings to look over what we’ve
programming is often a two-way done – whether we’re talking
dialogue with the machine. about parents, peers, teachers, or
online forums – we have a
We spend years in schools
carefully conditioned feeling that
learning to associate red marks or
we should pester them only if we
answers marked wrong (especially
have to, because we have to
to be redone!) as a sign that we

126
respect their time and not interfere When typing a loop, function, or
with their obligations. conditional, most programmers
close braces pairs and quickly
The compiler doesn’t have any
handle format indenting before the
plans for later.
filling what goes on the inside. In
MATCHING {BRACES} WHILE TYPING
other words, when I’m halfway
Much of the math that we do “on
through typing this:
paper” is a process of jotting as
for(int i=0;i<100;i++) {
much as we can on the page so printf("The secret password is XYZZY");
}
we can devote our mental energy
to thinking through the steps of It doesn't look like this:
(a.) what else to jot on the page for(int i=0;i<100;i++) {
printf("The secre

and (b.) what are the proper


processes to advance what’s on It looks like this:
the page to the next step. Even for(int i=0;i<100;i++) {

when we do mental math, most of }

us still wiggle our fingers to The distinction looks subtle, but its
temporarily hang on to information importance and difference
(like carry digits) while we juggle becomes more clear when
other figures and steps in our nestling two loops to perform a
head. computation over all entries in a
That’s how the most expert two dimension array, and checking
programmers program. It’s called with a conditional inside them, all
“distributed cognition” by within a function. Still, each
psychologists, so named because matching right-brace "}" is typed
it distributes cognitive processes immediately after the
to include mechanisms outside corresponding left-brace "{", so
the mind – but remembering the that the code is typed in the
fancy word for it is less important following order from 1st to 11th:
than practicing it.
127
code relate to one another, the
int some2DArray[100][100]; // from early in compiler may think that the error is
code...
int some2DArray[100][100]; // elsewhere in code
someplace else far away in the
void ValidateTheArray() { // 1st line typed code, or even give the unhelpful
for(int y=0;y<100;y++) { // 3rd line typed "expecting right brace at end of
for(int x=0;x<100;x++) { // 5th line

if(some2DArray[y][x] == -1) { // 7th


program" which means there
// TO-DO NEXT: type 10th line(s)
} else { // 8th line typed could be a "}" missing anywhere in
// TO-DO LAST:type 11th line(s)
} // 9th line typed the code. Time not spent getting
} // 6th line typed. Matches 5th line
} // 4th line typed. Closes braces from 3rd
frustrated tracking down these
} // 2nd line typed, Right half of 1st line typed
hard-to-fix but easy-to-avoid code
errors is time that can instead be
Closing out the braces and doing
spent productively iterating on
indentions before filling inside
functionality.
them in this case means fewer
things to remember while thinking SCAFFOLDING: TEMPORARY WORK
IMPROVING LASTING WORK
through what needs to be done The last part we'll cover here on
inside the nestled loops. We how programmers program is to
thought about that part, put it take advantage of the concept of
down in code (like jotting numbers scaffolding. Scaffolding in
down for long division), enabling everyday use, for anyone less
us to forget about it while we familiar with the term, refers to the
focus on writing the code at the temporary layers of ladders and
innermost scope. wood-planks stacked in metal
This is a particularly powerful habit frames around the outside of a
because a mistake in matching building while it's under
braces can be one of the most construction, giving workers easy
difficult for the programmer, or reach to everything. Once the
even the compiler, to accurately building is completed, the
diagnose. Because a mismatched scaffolding is torn down and
brace changes what parts of the removed, leaving behind a
128
structure which could not have program at a given instruction,
been built as efficiently or with as enabling the program to advance
much attention to detail had one step at a time, observing
scaffolding not been used. numbers and changes in memory.
This method, when available, is
What I call scaffolding, in the
particularly well-suited to making
world of programming, is what
sense of obscure technical bugs.
most developers call "debug
output". The idea is to temporarily Breakpoints, like debug print
include extra lines of code to help statements or visualization of
make visible the otherwise internal states, are removed or
invisible calculations and flow of disabled from the game or source
the program. Print statements code before shared. Debug
(printf in C/C++), trace statements elements are not needed by the
(ActionScript 3), log statements, time a game or source code can
and the like outputting information be shared, because like the
to the console like, "starting scaffolding around the new
function GameDraw", "loading building, they have already been
background image Swirl03", or put to use in ensuring that the
"left mouse click detected" are project itself came together.
examples of this.
Visualizing this information in-
DEBUGGING game can also be helpful
A good debugger and debugging
sometimes when rooting out
environment, when available,
questions about real-time
provide this same functionality
functionality that takes place
through breakpoints, although
across multiple frames which
depending on the language,
could be difficult to read from lines
environment, and platform, a good
of text, such as drawing the player
debugger may not always be
as a different color rectangle
available. Breakpoints pause the
based on whether the collision
129
code currently thinks that the both playing and editing as the
player is on the ground. code base develops.
INTERNAL TOOLS When looking at example source,
The greatest example of the
or playing a finished game, rather
scaffolding concept is the
than thinking about how the entire
development of software that
program could have come
simplifies the development of
together at once (a daunting task
software - level design tools,
no matter how much experience
weapon/unit stat editing tools,
someone has!), be thinking instead
animation tools - programs that
about how scaffolding of debug
enable design problems to be
statements could verify aspects of
solved using design tools instead
the program while working on it, or
of through programming. Though
about what the first few crude
they're (usually) not shipped with
features would be developed and
the final game, this additional
tested after the empty screen
programming work makes it
compiles. Test, then repeat.
possible for the game to be
START FOCUSED ON WHAT'S INTERESTING
finished sooner and better. In
Think about music composition -
smaller games - including most of
the refrain or underlying tune is
my old 2D tile-based projects -
likely to be worked on before the
sometimes the easiest way to
beginning or end. Or a story might
build the level editor is to
be built around one or more
introduce it as a level editing
intense climactic scenes, which
mode in the game itself, hiding
will need to be packaged between
that functionality for the final
build up and resolution before
release. That way the same assets
being ready for others.
(graphics/sounds), rendering code,
and level formats are the same for When an idea jumps into mind for
a videogame, starting to write
what the final videogame code
130
might be like from start to finish -
complete with rigorous class
definitions for everything and all
the trappings of a finished game's
functionality - just doesn't make
sense. Get the bare core working
with as little code as possible at
first, then layer and iterate.

131
SE C TI ON 3

Position and Speed Variables

Easily the most common


uses of variables for game
programming is in simply
storing and updating object
positions or movement
directions. There’s nothing
magic in how this works.
Let’s break it down here.
Programming

The impression of spatial OVERVIEW


What follows assumes very little
continuity – that an object exists at
prior experience, so there’s plenty
some location, and stays there
of text in an effort to be thorough.
until it moves to an adjacent
There are only a few points,
position – is not assumed by a
though:
computer. This seemingly natural
behavior has to be described in 1. Create number variables to
code by the programmer. store the position of the thing to
be drawn.
Fortunately, there is a pattern for
this. 2. Use those variables as
coordinates when drawing the
It can seem obtuse the first time or
image for that thing.
two it’s seen – it did for me –
though once used a few times its 3. Change those variables to
workings become clear. move it.

132
4. Create additional number pixels from the left side of the
variables – to treat as speed for screen, and 15 pixels from the top
horizontal and vertical movement of the screen. To be clear, that’s a
– and add those to the position fictional, pseudo-code notation –
variables every frame. actual function name and order of
DRAWING AT COORDINATES values vary by programming
Independent of the programming language and graphics library.
language and library, there’s a LOADING THE IMAGE
function to draw a specified shape Before that example line could be
or image to the screen at some used in code to draw a goblin, we
coordinate. would need to declare that there’s
an image we’re referring to in code
As mentioned in Chapter 1,
by the label “goblin”, as well as
Section 6 (General Concepts for
specifying which filename to load
Beginning Developers), the screen
into that label. Example code:
is a 2D plane, often measured in
pixels as distance horizontally and Image goblin; // creates 'goblin' image label

vertically from the top-left corner. ...skipping unrelated code...


goblin = load_png("monster.png"); // loads image
Typical draw functions range from
plotting a single pixel, to drawing a (Remember: any writing after the //
circle or rectangle, to copying a marks implies comments, meaning
loaded image file to the screen. that text is ignored by the compiler
when code is translated into an
For example purposes, we’ll refer application.)
to the image drawing function in
CLEARING EVERY FRAME
this form:
Computer games update the
copyBitmapToPosition(10,15,goblin);
screen dozens of times every
…to signify drawing the image second.
pointed to by the variable named
“goblin” with its top-left corner 10
133
The first thing to do with every copyBitmapToPosition(10,15,goblin);

update is to clear the screen, In Processing, that means we’d


giving backdrop to the object(s) put the copyBitmapToPosition call
and concealing the previous draw. in the draw() function, which gets
The two easiest ways to do this called every frame. In C++ or AS3,
(either works, no need to do both): the call would go in whichever
function we’ve attached to a timer
1. Draw a filled rectangle, at the
to be called 24-60 times per
top-left corner of the screen, the
second, somewhere after the line
same dimensions as the screen.
that draws the background to
(“background color”)
clear the screen.
2. Draw an image, one with the KEEPING TRACK OF POSITION
same dimensions as the screen, The problem with a call like this
lining up its top-left corner with one:
the top-left of the screen. copyBitmapToPosition(10,15,goblin);

(“background image”) …is that it always draws the


goblin image at the same position
An example of the latter, using our
on the screen. This is fine for
draw function, might look like this:
drawing the background every
copyBitmapToPosition(0,0,sky);
frame to clear the image, but
That erases whatever the world objects like goblins should be able
looked like the previous frame – to move.
which is why we do it – but that
To support that movement, we’ll
also means we need to constantly
create two number variables to
redraw the image at its current
store the goblin’s position along
position for it to show.
each axis:
DRAWING EVERY FRAME
After the part that clears and int gob_x = 10, gob_y = 15; // only once in code

resets the screen, we call the ...skipping middle code...


function that draws the image: // called every frame to draw image at position
copyBitmapToPosition(gob_x, gob_y, goblin);

134
…was that the position was
Note that the gob_x and gob_y
always the same (“hard coded”),
variables are now used in the
the problem with this:
copyBitmapToPosition as the
int gob_x=10, gob_y=15;
position to draw the image, rather
than specific numbers. This way, ...later in the code...
when gob_x is changed, whether gob_x = gob_x + 1; // move right by 1 pixel
copyBitmapToPosition(gob_x,gob_y,goblin);
dramatically (gob_x = 450) or
…is that the speed is always the
incrementally (gob_x = gob_x + 2),
same (1 to the right every frame).
the position where gob_x is being
Instead, we add another pair of
drawn for future frames will be
variables, denoting the current
changed.
horizontal and vertical speed:
Changing the value in gob_y will int gob_x=10, gob_y=15;

likewise affect the vertical spot int gob_x_moveAmount=0, gob_y_moveAmount=0;

where the goblin image is being ...and later in the code...


drawn. if( keyPressed( RIGHT_ARROW) ) {
gob_x_moveAmount = 1; // right movement
} else if( keyPressed( LEFT_ARROW) ) {
Small changes – say, adding or gob_x_moveAmount = -1; // left movement
} else { // neither left nor right arrows pressed
subtracting a few every frame – }
gob_x_moveAmount = 0; // stop horizontal move

creates the impression of if( keyPressed( UP_ARROW) ) {


gob_y_moveAmount = -1; // upward movement
movement. Larger changes, mid- } else if( keyPressed( DOWN_ARROW) ) {
gob_y_moveAmount = 1; // downward movement
gameplay, suggest teleportation, } else { // neither up nor down arrows pressed
gob_y_moveAmount = 0; // stop vertical move
}
although setting values at the start
// each frame, adjust position by current speed
of a level is unnoticeable without gob_x = gob_x + gob_x_moveAmount;
gob_y = gob_y + gob_y_moveAmount;
reference point, and the way to set copyBitmapToPosition(gob_x,gob_y,goblin);
initial positions.
By keeping horizontal and vertical
CONSTANT MOVEMENT
movement stored separate from
Just like the problem with this:
position, we can program and
copyBitmapToPosition(10,15,goblin);
reason differently about movement
vs position. For example we can
135
now zero – or reverse – speed ...skip position variables and key
when the goblin bumps into code...
something. We can adjust speed // move by whatever speed amount remains
gob_x += gob_x_moveAmount
when the goblin stands on a
// decay speed by 7% every frame:
conveyor belt, adjust speed based gob_x_moveAmount = gob_x_moveAmount * 0.93;

on wind vectors, fling the goblin With code like this, rather than
backward from an explosive blast, instantly coming to a halt when no
etc. by modifying the variables for keys are pressed, the object will
speed. glide gracefully to a stop.
SMOOTHER MOVEMENT CODE ORGANIZATION
In the example above, even Classes can be used to better
though the code is just pseudo- organize the data above. X/Y pairs
code (not actual wording for any are often contained in a Point or
particular language, just showing Vector class. Both vectors are
the pattern), the common ‘int’/ often grouped into a larger class,
integer type was used for position along with the image used (goblin,
and speed. Although pixel in this case), plus the functions
positions are whole numbers (501, used to handle the character’s
502, 503…), decimal real values of movement and updates on the
the float/double/number variety screen.
work better for keeping track of
That amount of structure isn’t
position and speed values.
necessary to get it working, but
When the speed values are it’s useful to stay organized and
decimal, percentage falloff can be minimize mental overhead while
used to slowly decay speed: expanding the program to include
float gob_x = 0.0; multiple moving objects. If you’re
float gob_x_moveAmount = 0.0;
new to programming, consider this
a note which will make more
sense in time.
136
OTHER USES OF POSITION VARIABLES
Keeping the position stored in
variables is also handy for
comparing the character’s location
to other values – screen edges,
world edges, and most often, the
position values used to track other
objects. When the distance
between the coordinates of one
character and another is within
some range, a function for
handling collision between those
characters can be called.

137
SE C TI ON 4

Float and Int Variables:


Casting and Other Issues
Most coding environments
distinguish numbers that
can’t have decimal parts
from those that do. Why
don’t we always want the
extra precision? Here I spell
out how and when one or
the other option works best.
Programming

To programmers with experience number) versus numbers without


making games, this may seem like decimal precision (almost always
something that doesn’t need to be using the type int, short for
covered. As I’ve pointed out integer).
before though, that’s a sign of a
For readers still getting used to the
common barrier to people getting
distinction, numbers with decimal
started: it’s a detail which is quite
precision include:
unnatural, however because it
0.0
seems obvious to people that are -1.5
3.14159265
used to it, it is rarely brought up. 9000.36
57.3333333

One of the first things learned in Meanwhile, examples of int values


programming is that there are include:
different variable types for 0
numbers with decimal precision -2
3

(typically of type float, double, or 9000


57

138
Decades ago, before floating point
Note that a number with decimal
units were common in processors,
precision can have a decimal part
using int for nearly everything was
of .00000… but it’s of a different
necessary for performance.
type because it could have a
Computer science trickery called
decimal part assigned, not
fixed-point math enabled
because it currently does. As a
programmers to simulate decimal
departure from pure math
accuracy, but at the expense of
terminology, simply setting a float
reduced precision and range. That
value to 6.0 does not change that
technique is still sometimes
float value to an integer in the
needed for making games for
programming sense.
cellphones of the non-smartphone
For this reason, in programming variety.
putting a “.0″ after a number
Anymore, calculations with floats
communicates to the compiler
are nearly the same speed as
(and other programmers) that a
integer math, and in either case
number is intended as a float/
it’s done fast enough to not be a
number with decimal precision,
primary performance concern. The
not as type int. I use that notation
minor performance differences
throughout this entry. 300 is
now come down to cache
different from 300.0, because 300
complexities and frequency of
is of type int whereas 300.0 is of
casting between types, both of
type float.
which are dramatically
DON’T WORRY ABOUT PERFORMANCE (YET)
overshadowed by other issues.
While getting started out, and well
into making a number of games, Especially with the number of
I’d suggest not worrying about objects being juggled for a typical
performance when deciding what hobbyist computer game (dozens
types of variables to use. of moving things, rather than
thousands), basic variable choice
139
is unlikely to be a source of exact equality, so it's perfectly fine
problems. to check:
AVOID CHECKING EQUALITY ON FLOATS if(someDecimalVariable >= 160.0)

Float values do not have infinitely ...or...


fine precision. One effect of this is if(someDecimalVariable <= 160.0)
that a series of math operations SUITABILITY OF EACH TYPE
which, done on paper, should If it can be counted in definite
equal exactly 5.0, may on a pieces, use an int. This typically
computer yield a number applies to ammo, score, or the
extremely close to, but not, that number of anything (enemies,
value, ex. 4.999999999 or particles, etc.). Indexes into an
5.00000001. Rather than array always need to be done by
checking: integer - for an array with 8 values
if(someDecimalVariable == 160.0) in it, it makes since to access
…which risks being false due to someArray[4] or someArray[5], but
small but accumulating precision there's no value saved at index
errors, something along the lines 4.3, meaning someArray[4.3].
of this is safer: Health can be either, depending
if( absValue(someDecimalVariable-160.0) <= 0.1) on how the game works. If the
...since it allows for a range of healthbar is presented as a
minor error. I am using percentage, as is often the case of
absValue(number) as a generic a 1-on-1 fighting game, decimal
math function for absolute value, precision is an option. If health is
though depending on language it's discrete units - for example each
often of the form abs(number) or tank has 5 boxes of health (even if
Math.abs(number). perhaps a big explosion might
take away 2 or 3 at once), saving
Note that if context allows,
the health as an int makes more
inequalities are much safer than
sense.
140
Positions and speeds are the most by pixel coordinates. A player's
common values to be stored and character might be drawn at
manipulated with decimal position (15, 200) one frame, then
precision. A player's character as they move right slightly, the
might have position (10.2, 200.0) - character would be drawn instead
whether as the .x and .y on a at (16, 200). There is no such thing
Point/Vector object or as two as a pixel 15.3 from the left edge.
separate variables like positionX
[As a brief aside: using textured
and positionY - and velocity (3.25,
polygons and a generalized
0.0) - likewise either on a Point/
rendering approach, it's certainly
Vector object or split into velX and
possible to draw something at
velY. Motion would be simulated
position (15.3, 200.0) through a bit
by adding the velocity to the
of pixel blurring/sampling, but this
position each frame, so that in the
is being written regarding the
next frame the player will be at
typical beginning case of 2D
(13.55, 200.0), creating the illusion
games in which bitmap data gets
of movement. Keyboard or
copied to directly to video
gamepad controls, drag
memory.]
calculations, and other effects on
player movement would then The first time someone integrates
modify the velocity rather than keyboard controls into a project
affecting position directly. made from scratch, it typically
begins by figuring out how to draw
PROBLEMS WITH INT MOVEMENT
Using decimal precision for a graphic to the screen at a given
positions and velocity can seem position:
counter-intuitive at first. This is // this is pseudocode, not real function names!

especially the case for position, // blits graphicToDraw to position


void draw(bitmap graphicToDraw, int drawAtX,
int drawAtY);
since positions on screen in a 2D
// ...skipping over code, into main loop...
game are typically distinguished
while(gameInPlay) {
draw(playerGraphic, 125, 300);

141
}
// update screen from buffer
// (not relevant to all languages) draw(playerGraphic, playerX, playerY);
updateScreen(); updateScreen();
} }

/* reminder that for many languages, instead of


a while(gameInPlay) loop, this type of logic Based on the code above, the
takeS place inside an update() function called
by timer event ~30 times per second */ player character can be shuffled
Realizing that a moving player around the screen using arrow
character will need its position keys. This works, technically, but
saved within variables, rather than it's very jerky. There are three
hard coded, the code will then major shortcomings:
change into something like this: • It's impossible to give the
int playerX = 125;
int playerY = 300;
player a speed other than full pixel
// ...skipping over code, into main loop... increments per cycle, i.e. its
while(gameInPlay) { minimum speed is 1 pixel/frame.
draw(playerGraphic, playerX, playerY);

updateScreen(); • It's impossible in this


}
implementation to slow down
This way, the position of the
gradually to a stop.
player's graphic can be changed
by incrementing or setting the • It's impossible to move the
value of playerX and/or playerY, player at an arbitrary angle, for
like so: example 30 degrees or -114
int playerX = 125;
degrees, while maintaining the
int playerY = 300;
same speed.
while(gameInPlay) {
if(keyboard.leftArrowPressed) {
playerX--; The solution to those problems is
// above is short for playerX = playerX -
1; to use decimal precision (float or
}
if(keyboard.rightArrowPressed) {
playerX++;
number) types instead of int for
}
position.
if(keyboard.upArrowPressed) {
// recall that (0,0) is top-left float playerX = 125.0;
// smaller Y in screen coords means float playerY = 300.0;
higher float playerSpeed = 1.0;
playerY--;
} while(gameInPlay) {
if(keyboard.downArrowPressed) { if(keyboard.leftArrowPressed) {
playerY++; playerX -= playerSpeed;

142
Speed;
// short for playerX = playerX - player-
casting between types, or even
}
if(keyboard.rightArrowPressed) { throwing an error for failing to
playerX += playerSpeed;
} manually between cast types.
if(keyboard.upArrowPressed) {
playerY -= playerSpeed; CASTING BETWEEN TYPES
}
if(keyboard.downArrowPressed) { Casting is the operation of
playerY += playerSpeed;
} converting a value in memory from
draw(playerGraphic, playerX, playerY);
updateScreen();
one type to another. For our
}
purposes here, it means taking an
Now, we could set playerSpeed to int value like 5 and converting it to
0.4 to move at only 40% the the float value 5.0, or in the other
speed of 1 pixel/frame. We can direction, taking a float value of
increase the value of playerSpeed 5.3 and converting it to an int
during the game ("playerSpeed += value of 5.
0.2;" when we want speed to
Syntax for casting varies by
increase by 0.2 pixels per frame)
programming language, and many
to make the player move faster,
programming languages support
and decay it gradually to make the
multiple ways to cast variables,
player smoothly lose speed (using
but it often looks something like
a line like "playerSpeed *= 0.98;"
this:
to lose 2% of our speed every
frame). Since the trig operations float someDecimal = 5.6; // setting a value
int ourCastedValue = ((int)someDecimal); // 5
// note: cast drops decimal, it doesn't round!
sin() and cos() return values of
// or going the other direction:
decimal precision, we can now int someInt = 6; // setting up a value to cast
adjust playerX and playerY by float otherCastedValue = ((float)someInt);
// otherCastedValue will be 6.000000...

those if we'd like to move the The cast does not need to be
player by some arbitrary angle. done when assigning a value, it
Now there's just one problem: the can also be done in-line, so that
compiler is probably griping at us we could update our draw code
with warnings about implicit from earlier to look like this:

143
draw(playerGraphic, ((int)playerX),
((int)playerY) );

Doing it this way would remove


the compiler's warning or error,
since we're now specifically
acknowledging that we
deliberately mean to use a
decimal-precision number as an
int value here, i.e. that we are okay
with losing the decimal portion of
the value for this purpose.

144
SE C TI ON 5

Hack Then Refactor

One of the disadvantages


that new game developers
sometimes struggle with is
recognizing that the “best”
way to do it is sometimes
not what’s fastest for the
program, but instead what’s
fastest for the programmer.
Programming

ROUGH DRAFTS SHOULD LOOK ROUGH then figure out in the following
One of the common challenges
steps step how it might be better
holding up beginning game
rearranged, chunked, and
developers, much like it holds up
reorganized.
beginning writers, is trying to get
everything down right the first Schooling introduces everyone to
time, perfect immediately, as soon some basic process steps to
as it’s “on the page.” A rough draft apply this process to writing. For
ought to be rough, whether it’s practical game coding we’re
written in code or in words. It’s the mostly on our own.
best time to be taking some STEP 1: JUST GET IT WORKING ASAP

chances, hashing out some When just getting started, give up


incomplete thoughts to see where pretense for elegance or doing
(if anywhere) they lead, getting it things the proper way and just
on screen as typed characters to embrace the hackiness while
figuring out what you want. Even if
145
this is the first step of a larger }
if(playerHealth > 0) {
drawCircle(playerX,playerY,color.GREEN);
projects, treat this step like game }
}
jam or timed programming
STEP 2: LABEL PARTS WITH COMMENTS
challenge, just get it working and That first step can be good for
out of your head. Don’t worry yet ideation, but typically results in
about optimization, what you’ll large undifferentiated blocks of
keep, code readability, or code serving mixed purposes.
organization, just get it working to This definitely doesn’t scale well to
be able to make a more informed a larger, distributed, or more
choice about what’s worth elaborate program, but while just
keeping. During initial prototyping, getting traction it has its
treat it less like an engineering advantages. Having all the code in
task and more like brainstorming, one place like that can make it
sketching, or outlining. My early very quick and easy to make
iterations when getting a game sweeping changes to what you’re
working can tend to look a little doing and how, ways that data
like this (though handling all four affect one another, and there’s no
movement directions instead of time spent hopping between files.
just one, and usually for a less The code at this point is small
trivial interaction): enough to keep in mind all at the
//// just pseudocode, not C++, AS3, Java, etc.!!
int playerX, playerY, enemyX, enemyY;
same time, and using CTRL+F in
int enemyAlive = 1;
int playerHealth = 1; the text editor to jump to spots
Bitmap backgroundFile; // load elsewhere in code
works fine but probably isn’t even
function everyFrameTick() { // just for example
if(keyboard.holding(RIGHT)) {
playerX++;
necessary.
}
if(playerX > screenWidth) {
playerX = screenWidth;
Don’t beat yourself up over a
}
if(distance(playerX,playerY,enemyX,enemyY) < rough draft looking like a rough
collisionRange) {
playerHealth--; draft. That is how it should be.
enemyAlive = 0;
}
drawImage(backgroundFile);
Add short, one-line, functionally
if(enemyAlive != 0) {
drawCircle(enemyX,enemyY,color.RED); descriptive comments breaking up
146
sections of that code. “Noun verb” STEP 3: CUT INTO FUNCTIONS AT COMMENTS
Carve that larger body of code into
form works best for this, such as
functions named after the
“// application setup” or “particle
comments you made to split up
effects update.” Rearrange line
groups of the code. The code
order to better group them if
going from “// player movement”
necessary without changing
up to the next “//” top-level depth
functionality. One section might be
comment should be moved to a
“// player movement” or
new function called
“//// player bounds checking” –
“playerMovement()” which, in the
using multiple comment pairs as in
example which had a subsection
that second example to mark
marked as “//// player bounds
subsections just as you would for
checking” could be further split to
an outline.
call a function called
int playerX, playerY, enemyX, enemyY;
int enemyAlive = 1;
int playerHealth = 1;
“playerBoundsChecking()” and so
Bitmap backgroundFile; // load elsewhere in code
on. If variables are needed among
function everyFrameTick() {
// wipe screen by redrawing background both, consider pulling them out
drawImage(backgroundFile);
temporarily as globals (if that
// enemy movement and draw
//// collision check between player and enemy
if(distance(playerX,playerY,enemyX,enemyY) <
wasn’t done already as part of
collisionRange) {
playerHealth--; rapid prototyping) with similar
enemyAlive = 0;
} names (playerX,
//// draw enemy
if(enemyAlive != 0) {
drawCircle(enemyX,enemyY,color.RED);
playerJumpHoldTimer…).
}
int playerX, playerY,enemyX, enemyY;
// player movement and draw int enemyAlive = 1;
//// player keyboard input int playerHealth = 1;
if(keyboard.holding(RIGHT)) { Bitmap backgroundFile;
playerX++;
} function redrawBackground() {
//// player bounds checking drawImage(backgroundFile);
if(playerX > screenWidth) { }
playerX = screenWidth;
} function enemyMovementAndDraw() {
//// draw player enemyPlayerCollisionCheck();
if(playerHealth > 0) { drawEnemy();
drawCircle(playerX,playerY,color.GREEN); }
}
} function enemyPlayerCollisionCheck() {
if(distance(playerX,playerY,enemyX,enemyY) <
collisionRange) {

147
playerHealth--; int x, y;
enemyAlive = 0; int health = 1;
}
} function playerMovementAndDraw() {
keyboardInput();
function drawEnemy() { boundsChecking();
if(enemyAlive != 0) { drawMe();
drawCircle(enemyX,enemyY,color.RED); }
}
} function keyboardInput() {
if(keyboard.holding(RIGHT)) {
function playerMovementAndDraw() { x++;
playerKeyboardInput(); }
playerBoundsChecking(); }
playerDraw()
} function boundsChecking() {
if(x > screenWidth) {
function playerKeyboardInput() { y = screenWidth;
if(keyboard.holding(RIGHT)) { }
playerX++; }
}
} function drawMe() {
if(health > 0) {
function playerBoundsChecking() { drawCircle(x,y,color.GREEN);
if(playerX > screenWidth) { }
playerX = screenWidth; }
} }
}
//// FILE: enemy.??? ////
function playerDraw() { class Enemy {
if(playerHealth > 0) { int x, y;
drawCircle(playerX,playerY,color.GREEN); int alive = 1;
}
} function movementAndDraw() {
collisionCheckAgainstPlayer();
function everyFrameTick() { drawMe();
redrawBackground(); }
enemyMovementAndDraw(); function drawMe() {
playerMovementAndDraw(); if(alive != 0) {
} drawCircle(x,y,color.RED);
}
STEP 4: GROUP FUNCTIONS INTO FILE/CLASS }
function collisionCheckAgainstPlayer() {
For functions and variables that if(distance(player.x,player.y,
this.x,this.y) <
have a common root – “player” in collisionRange) {
player.health--;

the case above – consider }


alive = 0;

}
whether that can be better split off }

into its own class, or at least its //// FILE: main.??? ////
Bitmap backgroundFile; // loading jpg elsewhere
own file. Likewise global variables in code
Enemy testEnemy = new Enemy();
Player thePlayer = new Player();
that use a common root can likely
function redrawBackground() {
be moved into being member drawImage(backgroundFile);
}
variables on the classes that share function everyFrameTick() { // incomplete example
for illustration!
the same noun. redrawBackground();
testEnemy.MovementAndDraw();
//// FILE: player.??? //// thePlayer.MovementAndDraw();
class Player { }

148
causal relationships with new or
Many programmers have the
different values to tune!) can go a
inclination - or rather the training -
long way when a project is just
to start at this last step instead of
forming. The extra minutes and
the mess that I illustrated at the
mental energy spent on playing
first step. If you're planning a
with information freely like clay,
telecom infrastructure, a compiler,
directly and all in the same place,
or banking software, by all means
rather than mentally moving from
there's really no room for even
room to room simply to get things
temporary hackiness. However if
wired together at all quickly adds
you're prototyping a design that's
up.
rapidly changing early on based
on how it feels and plays, pulling Hack while figuring out what
together basic functionality just to you're doing, then refactor once
get a demo on the screen, you begin to develop a clearer
consider for a moment how much sense for how you want it to feel
more bloated the last iteration of and work going forward.
code on this page looks than the TRADEOFF IN THE TRANSITION
first (61 instead of 25 lines, nearly After applying this process to
150% more lines), despite doing break up the code, someone else
essentially the same thing. will be able to read it more easily,
but it also renders it a little less
It's probably not immediately clear
malleable for rapid prototype
from this simplified, partial code
iterations. The added layer of
example just how much trying to
structure can begin to embed
start at the more organized phase
relationships and assumptions.
can slow down iteration early on,
This is even more the case in the
but extremely rapid iteration on all
phase that naturally follows the
aspects of the design (not just
last one illustrated above, when
tuning values, but adding or
we would begin for example
rethinking mathematical and
149
pulling out a common superclass iPad, finding ways to trick Unity
for Player and Enemy with a into behaving the same as the
number of shared properties and prototype, etc.
functionality to minimize
There are good reasons why rough
redundancy. The upside of the
drafts don't (and shouldn't!) look
tradeoff, to reiterate, is that
like final drafts. There are likewise
splitting the code out from one
absolutely good reasons for why
hacky function into multiple
later drafts need to look less and
methods, classes, or files
less like the rough draft as the
improves code readability and
work begins to solidify.
separation. That makes it easier to
share code with another Learning and becoming
programmer, or even to simply comfortable with a few different
make sense of it yourself, as the practices and processes for
programmer, a week or more later managing this transition can help
when trying to work on you be the kind of developer that
improvements to a particular part. can see through your own original
Those fixes are often worth doing, designs, rather than being stuck at
at least on an initial pass, to either the hacky end as a
minimize getting caught up in a gameplay designer unable to
tangle later. Another approach I've logically divide the work to scale
seen is when people will crazy beyond a prototype, or being the
hack during prototyping on a rapid sort that's only comfortable
and flexible platform, like working on more robust
Processing, then once they figure implementation of concepts
out some of the core gameplay figured out by (or cloned off of)
interactions start over fresh in another developer that's more
reimplementing that gameplay comfortable juggling the flexible,
using native Objective-C code for messy, and iterative design
discovery work.
150
THIS IS REPEATABLE, ITERATIVE, LAYERED
As one final note, I'd like to point
out that this is rarely something
that happens one time to the
entire game's code all at once.
That may be the case early on,
while it's still a very small core
being figured out, however
iterations atop of that while
exploring potential features can
then take on the same pattern
shown above: hacking it first in a
rough fashion to try out, in order to
efficiently figure out what's worth
further organizing into the larger
code structure to keep and evolve,
versus what to trim back out
before proceeding.
TRY IT! PUT IDEAS INTO PRACTICE!
Don't just read about videogame
development! Put these ideas to
work for you. If you're already
familiar with programming this
doesn't take very long to try -
that's kind of the whole point of
this method.

151
SE C TI ON 6

Basic Real-Time Videogame


Artificial intelligence
Many books out there about
artificial intelligence are
written by AI researchers,
and involve have layers of
complexity that we don’t
need for hobby projects.
Here’s a powerful main idea
without all the extra clutter.
Programming

SMART IS NOT WHAT PEOPLE THINK intelligence. These present AI as a


“The question of whether a computer can
pattern-matching, data-mining
think is no more interesting than the
question of whether a submarine can
adaptive algorithm used to
swim.” process mountains of messy,
complex information.
-Edsger Dijkstra
AI in real-time videogames is not
There are a lot of films, novels,
about trying to program
and comics about artificial
intelligence. It isn’t about making
intelligence. These present AI as a
the best decisions, thinking
problem solving, self-preserving
through complex problems, or
intelligence eager to assert its
adaptive learning.
dominion over people.
AI in real-time videogames is
There are a lot of non-fiction
about creating the impression of
books, internet references, and
intelligence. Generally speaking,
university classes on artificial
152
the appearance of intelligence is and reads his or her mind, or
all that we’re going for – it’s simply has a random 20% chance
functionally pretty similar in such of doing something random – the
narrow domains, and infinitely important thing is that the player is
more within reach than creating forced to stay alert instead of
“real” intelligence. always leaning on a memorized
strategy. (Guess which of those
What are the qualities that we can
two strategies is the most cost
appeal to, in order to create the
and time effective solution? Mind
impression of intelligence during
reading, or inserting a line that
gameplay?
reads if((rand()%10)<2)... )
SMART IS UNPREDICTABLE
If the “smartest” opening is move The 1997 game Trespasser, based
A, that move had better not be the in the Jurassic Park universe,
opening every time, or the player attempted to create AI that
will just be conditioned to react to “thought” based on needs around
that opening move every time. So the ecosystem, but the end result
long as one strategy works was monsters wiggling around
repeatedly, what the player is up looking confused until they
against doesn’t come across as charged sideways at the player. By
intelligent, just mechanical. comparison, listen to a young
person or non-technical player
The moment that pattern is
spending a few minutes in front of
broken, or that expectation is
Ms. Pac-Man, and before long
violated, the player will project
they’ll blame the mostly random
intelligence onto the previously
ghosts for all sorts of devious
robotic computer entity. “Why did
schemes.
it switch to move B?” The real
answer to this question doesn’t Keep it simple. Throwing in a good
matter – whether the program dose of randomness at a high
looks deeply into the player’s eyes level for the enemies is often just
153
as effective at creating the illusion deal with countless variables all in
of intelligence for the player as a the same part of code, we want to
more contrived system of distill groups of variables into
reasoning that would take longer meaningful measures that we can
to develop. base the high level decisions
SMART HAS PRIORITIES upon.
Heuristics – “fuzzy logic” is SHORT BREAK FOR EXAMPLES
another term for this – is a way to In Burn 2, a real-time PC game
simplify complex decisions involving up to 10 fast-moving AI
involving many considerations into ships thrusting in a variable gravity
a decision about decisions. environment with procedurally-
generated fully destructible terrain
The concept here is a powerful
(in other words, very little absolute
one, but simple once introduced.
certainty), each AI has a few
Instead of building a massive
values that they evaluate
tangle of if-else conditional
independently each frame, and
statements and boolean logic to
behaviors are determined by
determine an AI character’s next
which of these values exceeds a
move, the goal is to encapsulate
priority threshold:
what information derived from
those variables means. 1. Is the ship above minimum
safety altitude to avoid ground
It’s a form of divide and conquer.
collision?
To use a business metaphor: how
does a top-level executive make 2. Is the ship below maximum
informed decisions? By asking altitude to ensure room for evasive
each of their advisors and expert maneuvers?
employees to offer distilled
3. How imminent is collision with a
summaries of the issues they each
mountain (laterally) if nothing
believe are most important. In the
changes?
same way, rather than trying to
154
4. Is the nearest enemy in firing 1. Is a ball heading toward my
range? Am I facing them to goal? (forget any other objectives,
immediately begin firing? and protect the goal)
5. How close is enemy fire? Is one 2. Which players currently have a
facing me which may be firing, clear shot at my goal, and a ball to
and if so, am I facing them (to fire fire? (block that angle)
back) or facing away (to thrust
3. Which players do I currently
away to safety)?
have a clear shot on, and if I have
6. Am I about to collide with an a ball to fire, are they blocking the
enemy? If so, do I have more gap?
health than the enemy? (Collision
4. Is another player currently
causes equal amounts of damage
swamped with lots of incoming
to both ships involved)
projectiles, that would be too
7. Is my current target low to the overwhelmed to block if I fired
ground, with little distance on now? (fire on them immediately!)
each side, implying they are
5. Which player has caused my
entrenched for cover? If so, switch
base the most damage?
to bombing patterns…
(aggressively hassle that player, to
In Ghosts in the Machine, a real- knock them out)
time PC game features 3-5 high
6. Which player has won the most
speed projectiles ricocheting
rounds? (target them, so that it
between 4 independent players (3
won’t come down to one on one
of which are AI). The AI keeps
against them later)
track of the following information
SMART HAS PERSONALITY
for decision making:
By changing which of the above is
a priority for each AI player, I was
able to produce personality

155
differences between each of the AI my experimental project
figures (defensive, aggressive, and BeeDifferent:
retaliatory), and by shifting a value http://interactionartist.com/classic/
between their impatience gameloader.php?GAME_NAME=BeeDifferent

(premature firing) vs their sound Experiment with the slider below


decision making (higher threshold the game to see how enemies
for likelihood of successful shot which all behave optimally are
before firing), I was able to vary trivially outsmarted, enemies
any of the 3 personality types from which all behave randomly are
easy/dumb to hard/intelligent. also easily outsmarted, but by
SMART ACTS DECISIVELY using an even mix of the two, the
Moods – or “finite state machines” effect is the have some spread out
– can encapsulate a sense of as mines while others force the
memory, reaction, decisiveness, player to run through said mines.
and thus intelligence. The way this
SMART IS VERBOSE
works is that each character Telegraphing the enemy’s current
keeps a number tracking its state state, and/or the transition into
of mind. Is the enemy wandering, that state change, also goes a
alerted, angry, or retreating? Is the long way in creating the illusion of
enemy grouping together, intelligence (though this shouldn’t
spreading out, hunting for a health be too repetitive). The enemies
pack, or battling to the death on a turning red with anger in Bubble
kamikaze charge? Bobble declares their current
SMART GROUPS HAVE EMERGENT TEAMWORK mood clearly. Metal Gear Solid
For an interactive demonstration bad guys get exclamation points
of mixing randomness and over their heads, and enemies in
determinism in AI that can be No One Lives Forever and Thief
played quickly online, check out (both of which were widely praised
in their time for their otherwise

156
normal AI, thanks to this single Puzzle games are obviously a
reason) announced things along whole different can of worms,
the lines of “I can’t find her!” and depending entirely upon the
“I know you’re here!” and asking game’s structure.
their comrades things like, “Did
All that said, much of the real-time
you hear something?”
AI in most games still tracks back
SMART BUILDS UPON SMART to (a.) creating the illusion of
Big games – whether a First
impatience and intelligence by
Person Shooter, Third Person
being unpredictable (b.) reducing
Adventure, or Real-Time Strategy
groups of variables into easily
– invite some other AI needs like
prioritized decision points (c.)
pathfinding. FPS and TPA games
committing decisively to display a
often include hand-placed nodes
range of possible behaviors and
in the world giving AI clues for
(d.) unsubtle announcements of
where doors are, where the center
the current behavior or moments
of hallways/rooms are, and where
of mood switching.
the best cover points are to kneel
SMART CODE IS SIMPLE
behind. RTS games can involve a
On the technical side, the AI
bit of clustering (basics of facial
“mood” (finite state machines) can
recognition algorithms) to assess
be tracked simply by keeping two
areas of defensive weakness.
more integers per enemy. The
Basic vector geometry and dot
numbers are used by setting one
products can be used to ascertain
of the integers to an enumerated
line of sight between characters
value corresponding to behavior
(including trivially checking a
#1 vs behavior #4 (etc.), and the
character’s facing), and trig
other tracks how long the current
(especially atan2) are useful in
behavior should continue before
finding angles to shoot in, look at,
being reassessed. For example:
run toward, or flee from.

157
enum {
MOOD_WANDER, // same as "#define MOOD_WANDER 0" This sample code snippet pretty
MOOD_CHASE, // same as "#define MOOD_CHASE 1"
MOOD_MIMIC,
MOOD_FLEE, well describes the AI for most of
MOOD_NUM // useful for randomizing mood
}; my first PC games, including Pac-
/* the larger the first number (200), the more
decisive the enemy seems; the larger the second
number (150), the less predictable the enemy seems */
Deli, and Swarm. It's not going to
#define NEW_MOOD_TIME (200+(rand()%150)) appear intelligent in a one-on-one
class Badguy_typ {
// ... skipping class variables for brevity ...
fight, but when the player is up
int aiMood;
int cyclesTilMoodReconsidered;
against 3-8 enemies operating
Badguy_typ() { independently in this fashion, the
aiMood = MOOD_WANDER; // begin unalerted
cyclesTilMoodReconsidered = NEW_MOOD_TIME;
// other character initialization goes here player begins to interpret the
}

void Move() {
emergent patterns of their mostly
if(--cyclesTilMoodReconsidered <= 0) {
// random new mood
aiMood = (rand() % MOOD_NUM);
random (unpredictable!) behavior
// random new amount of time till change
cyclesTilMoodReconsidered = NEW_MOOD_TIME; as teamwork, plotting, and
}

/* cyclesTilMoodReconsidered is only
strategy. In Pac-Deli I gave each
intended as timeout, so that left on
their own, unprovoked, enemies will
seem unstable, curious, and impatient,
ghost color a significant bias
like they have minds of their own. */
toward 1 of the 4 behaviors - half
/* Within the switch statement below,
it's fine to switch aiMood and reset
cyclesTilMoodReconsidered even if it the time using their "personality"
isn't time for a mood change yet. For
example, if the enemy is within a certain
range from the player, especially if line
and half the time switching to a
of sight is established, then just switch
"aiMood = MOOD_CHASE;" */ completely random choice - and
switch(aiMood) {
case MOOD_WANDER: this created the impression that
// enemy is wandering, code here
break;
case MOOD_CHASE:
one was more confused, one was
// enemy aggressively chasing player
break;
case MOOD_MIMIC:
more aggressive, one was intent
// enemy is copying player movements
/* this is very easy to implement but on being tricky.
has the nice effect of giving the
player a temporary sense of control,
making it so that when this character WE'RE NOT TRYING TO BEAT KASPAROV
switches to a different mood there’s a
good chance of catching the player
off guard */
Ultimately, it's okay if the AI isn't
break;
case MOOD_FLEE:
// enemy running away from the player
the smartest thing on earth. If the
}
break;
player outsmarts it, they'll feel like
}

// ... skipping other class methods for brevity ...


a champ. You don't need to prove
}
to players that a computer can

158
process and respond to
information faster than they can.
As Ian Davis, the founder of Mad
Doc Games told me, "The goal of
videogame AI should be to put up
a fair, convincing fight, and
eventually lose."

159
SE C TI ON 7

Quick and Dirty BackUps

When a hard drive fails, or a


laptop gets stolen, you can
reinstall most programs
from a disc, or the cloud...
but not the ones you were
in the middle of creating!
You can’t prevent accidents.
You CAN minimize the loss.
Programming

I received a number of questions Q: IF I USE VERSION CONTROL, WHAT SHOULD


I USE? GIT, MERCURIAL, OR SOMETHING
from a reader about version ELSE?
control for hobby videogame A: My opinions on this are likely
projects. My responses follow. out of date, so I’d suggest
Q: HOW BIG DOES A PROJECT NEED TO BE TO
investigating the options to see
BENEFIT FORM VERSION CONTROL? what’s being said about these
A: In the laziest, simplest form, I newer options. For large-scale
think even a solo game jam can commercial development I’ve
benefit from some crude form of used Perforce, and for smaller
version control. As for “real” independent student teams I’ve
version control, I tend to only only used svn.
bother if at least 3 programmers
Q: WHAT CLIENT SHOULD I USE? GITHUB,
are involved with the project, and BITBUCKET, OR SOMETHING ELSE?
the project is expected to take at A: Likewise, my tastes here may
least a few weeks or more. be slightly outdated, but they still
work. I used TortoiseSVN when I
160
was in Windows, and just handled conscious of how well organized
svn via command-line when I was and documented their code is.
in Mac. I’ve witnessed a number When code isn’t open source we
of experienced programmers, can occasionally resort to hackery
myself included unfortunately, to get things done in special cases
bind up a bit when running into without getting self-conscious
certain conflict or folder mismatch about it, making conscious
issues via command-line using tradeoffs to optimize our
svn, and a good client would also development time in that case (as
probably go a long way in opposed to, say, making tradeoffs
simplifying that experience. in readability to optimize code
Having a good file comparison execution time). Of course, if
tool is important to spot diffs in a you’re a full-time software
conflict, and that’s often part of engineer and used to or interested
the client with Perforce or Tortoise, in joining larger team
although on Mac I used a program environments, for that same
called FileMerge which if I reason open source might be a
remember correctly was a tool constructive exercise, in which
application bundled with XCode. case such licensing implications
may not be a concern one way or
Be aware that some online
the other.
services that provide hosting
servers or other niceties may Q: HOW OFTEN SHOULD I UPLOAD A NEW
VERSION?
come with strings attached, such A: I’m a proponent of trying to
as requiring that your program is work on one relatively isolated,
open source, etc. That may sound bite-sized (1-4 hours of work)
fine, but even if you’re keen on the feature at a time. I’ll tend to
spirit of it, that can sometimes commit:
drag out a project needlessly by
making someone overly self-

161
• Each time I’ve completed and other features or debugger output
tied up a functional chunk, (i.e. for log or trace statements:
generally amounting to several clean up, remove, or make toggled
hundred lines of code or less. This on/off in code that defaults to off,
can even become a nice part of before committing to svn), or it’ll
the ritual, punctuating a finished throw off other programmers on
task, like scratching something off the project, including future you. If
a todo list. that code is otherwise incomplete,
then for now make sure it has
• Whenever I finish solving a tricky
been safely isolated from other
or creative code issue, or finish a
code still in use, flagged with a
tuning or balancing pass I’m
short comment at the top
pleased with, that I’m not
indicating it’s not ready for use. Be
confident I could easily reproduce
careful to not break the build, hog
a second time.
the debug output, or degrade
• Upon finishing something performance with a half-finished
monotonous that I would not want check-in that will leave others
to do again. This mostly happens wondering whether their local
when doing some type of hand- changes caused it.
adjustment to assets, for example
Q: IS VERSION CONTROL WORTH IT IF YOU
tweaking spacing offsets for every ARE THE ONLY PROGRAMMER ON THE
PROJECT?
character of a medium or high
A: Here’s what I’ve been doing for
resolution bitmap font, or
the past 5 or 6 years when I’m the
renaming several folders of sound
only programmer on the project
and image files to fit an improved
(which is very often the case for
naming convention.
my hobby projects, even when
It’s important to only check in there’s a team of people involved
code that’s ready to compile and with assets), it’s a habit I picked
run though without interrupting

162
up from one of my longtime copied to the cloud. The idea of
collaborators John Nesky: keeping a version of the full source
at a remote location is that no
• Every night, when I’m at a good
matter whatever disaster could
stopping point, I zip up the
happen locally – backpack with
project’s folder. I save most of the
my laptop in it falls into a deep
old ones of this, or at least 1 per
puddle, catastrophic hard drive
week, and it makes it easy for me
failure, my home gets broken into
to dig my way “back out” if I find
and my computer and backup
that I’ve coded myself into a
drive both get stolen, home burns
corner or introduced some
down, whatever – then at least I
nightmarish bug I’m having trouble
have something to pick back up
undoing. Sometimes it’s also fun
from.
when I’m done with a project to
look back on old zip files to see Loss would still be inconvenient, it
what the project was like earlier in would still be expensive, it would
development – what didn’t make still be lame, but things can be
the final cut, how much rougher it replaced with money, whereas lost
looked earlier, etc. game development work is simply
lost time, a huge loss to morale,
• At least once a week, I copy the
and if there are other people on
zipped folder to a location online,
your team or a business counting
like a folder on my FTP server not
on you to finish, not tending to this
visible to the outside world. A local
properly can make your or my
external hard drive for back ups is
misfortune spread to also become
handy, but not sufficient.
their misfortune. It’s way too
Nowadays I just copy the zip with
simple to back up a project
dated filename into a special
remotely to have any excuse to
folder that I keep on Dropbox
ever completely lose a project’s
specifically for development
backup, and it’s automatically
163
code and source/raw/PSD art not become bogged down with
files. sorting through non-game
technical troubles, it would be
It’s not your fault if something
reckless to have all of the work
goes wrong and a hard drive
invested into a project living only
utterly fails, but it is your fault if
in a single directory having one
that happens and you’ve not taken
version on one machine. That’s
any steps to mitigate that loss.
terrifying. At the very least, make a
If a project is tiny enough and new zip of the directory after a
you’re at a game jam, and don’t good night’s work on it, and
want to set up a Dropbox (but you occasionally toss a dated version
really should, it’s free and easy to of that file onto a server in a
do), at least e-mail yourself a remote location. If the project is so
zipped copy of the source every large, distributed, or complicated
so often. If you don’t have internet that using that method isn’t
access for some reason, practical, then it’s time to look into
occasionally copy that latest zip to setting up some real source
a USB stick so it’s not all one the control, whether svn, git, or one of
same physical point of potential the other solutions out there.
failure.
It’s not either-or, though. There’s a
continuum of source control
between having the technical
infrastructure of a massive studio,
which needs a fully staffed IT
department to keep it running,
compared to the resources of a
hobbyist or student trying to
moonlight. While it’s important to

164
SE C TI ON 8

Steps in Programming a Simple


Realtime Strategy Game
This student’s question
helped me highlight the
common layered approach
to game programming. Start
by making something basic,
then at each step revisit
adding new functionality
and features to your work.
Programming

Q: I’ve been wanting to do a military strategy (one level, a couple of enemy


game. I learned C++ in high school. I made a few types, basic winning and losing),
text-based games, but nothing major. Any starter
then you can use that as a
tips?
foundation to build the rest of the
A: If we were to make a demo or game; if that proves out of reach,
proof-of-concept version of the then you’ll figure that out far
military strategy game that you sooner, and be able to adjust
have in mind – i.e. pretty much the plans or switch projects before
bare minimum of functionality and getting in too deep.
assets to demonstrate what it
As one possible starting outline, in
does and how it goes it – what
whichever language, API, or
would be involved? For starters,
environment you choose to do it in
that should be the target, rather
(Unity for cross platform, C++ with
than a full game. If the core
Allegro or SDL for high
functionality of a “demo” works

165
performance downloadable, AS3 checking raycast collision against
for web, etc.) a bounding box a bit larger than
STEP 1: MINIMAL FOUNDATION the unit rather than doing distance
Get the mouse showing up, either checks to detect click proximity.)
as a default cursor or by drawing a STEP 2: GAME LOOP
small circle where the mouse Create a game loop so that action
coordinates are. Create two can happen 20-60 times per
numbers, x and y, to store a second, rather than only when the
soldier’s position, and draw a mouse clicks. If programming in a
colored rectangle on screen at that local native application or
coordinate representing the prototyping environment, this can
soldier. Before moving on, set it up be done by making a boolean
so that clicking close enough to “gameRunning” set to true, and
the soldier kills him – this can be wrapping the core of the game
as simple as a distance check (drawing, input handling) in a
between mouse cursor and the while(gameRunning) loop. If the
army man each time the mouse user either presses a key (Escape
clicks, setting a “dead” boolean perhaps) or clicks in the top-right
flag to true which draws him a corner of the screen (coordinate
different color. The distance check comparisons), set gameRunning
to the solider should be written as to false to quit the program. If you
a separate function that uses the are in a newer environment, this is
Pythagorean theorem to return a often done instead of using a loop
distance for numbers or by setting up a timer to call a main
coordinates given as parameters. logic and rendering function 20-60
(If you are going the Unity route, times per second, which is where
some translation may be your game code can live. In Unity
appropriate, such as rectangular this is set up automatically in the
prisms instead of squares, and

166
form of the Update() tick functions using float precision numbers for
built in to the scripting. coordinates, rather than the whole
STEP 3: TARGET DESTINATION number “int”.
Have the soldier keep track of a STEP 4: REFACTOR INTO OBJECT
target destination by creating two We’ve previously been keeping
new numbers, tx and ty (standing track of the soldier’s position and
for target x and target y). Update destination with variables of
the target destination to where the ambiguous scope or organization,
mouse last clicked. In each frame presumably global. Wrap up the
in the game’s logic, if the soldier’s soldier’s x, y, tx, and ty in a new
target destination is more than struct or class, and update the
some distance from his current code to use the object’s values
location, have him move closer to (they can be left public for now).
his destination. To fudge this, just STEP 5: MULTIPLE SOLDIERS IN ARRAY
do a straightforward: Refactor that code so that instead
if(x < tx) { x++; } // left of it? move right. of having one soldier instance, you
if(x > tx) { x--; } // right of it? move left.
if(y < ty) { y++; } // above it? move down. have an array or list of soldiers in
if(y > ty) { y--; } // below it? move up.

/* Remember: an increase in y is down, by de-


the world starting in various areas.
fault, for most game programming.
If using Unity this would need to be done differ- Keeping track of a current and
ently, among other things using x and z as the
horizontal coordinates instead of x and y */ target position for each should be
If you want to be fancy, use atan2() automatic given an array of the
to find the angle from (x,y) to struct or class defined in the
(tx,ty), then use sin and cos of that previous step. Also add a new
angle times a move speed or a bit number: an index indicating which
of vector math to move the soldier soldier in the array is
directly and evenly toward the “selected” (set to -1 by default, to
destination. If this seems correctly indicate that no soldier is selected)
coded but is acting strange, – as always for Unity this will
double check to ensure that you’re require some adaptation, keeping

167
a GameObject or Array of (GameObject reference if Unity)
GameObjects as a handle on where another soldier’s index can
which unit(s) the player selects be stored (which can be used to
which would be null or empty by change tx,ty coordinates if beyond
default and between selection. firing range) and hitPoints integer
Adjust the previous “click on to that starts at 3 and goes down
kill” code so that it sets the whenever hurt. Add a constant
selected value to that soldier’s number value (or if using C/C++ a
index – a brute force iteration #define will work fine) to centralize
through the entire array comparing your definition for gun range. Have
each soldier’s distance to the the code draw a line from any
mouse is fine at this scale. If no soldier with a non -1 killTarget to
soldier is found close enough to the position of the enemy having
the mouse to change the selection the index they’re targeting.
index, set the currently selected STEP 8: ATTACK COMMAND
soldier’s tx and ty to where the If an enemy soldier is clicked,
mouse clicked. instead of selecting that soldier,
STEP 6: DIVIDE ARMIES set the target of the currently
Give the soldiers one extra integer: selected friendly soldier to that
army number. Set to 0 for half of enemy. Use random countdown
them, 1 for the other half, and timers between shots fired (maybe
draw them as different colors. every 100-300 ms?) to randomize
Only let the player select units who wins, and/or give a
matching a particular army probability of missing ( if(rand() %
number. 3 != 0) gives them a 1 in 3 chance,
STEP 7: TARGETING AND HEALTH etc.) and depict the missing, firing,
Give the soldier class/struct two or hitting in some way like flashing
more integers to apply to all circles, sapping health from
soldiers: a killTarget index soldiers that take damage.

168
STEP 9: UNIT DEFEAT
If a soldier’s target is defeated,
either assign them a new living
target at random or await player
orders.
STEP 10: COMPUTER CONTROLLED ENEMY
Make AI by having countdown
timers either per enemy soldier or
per enemy army between discrete
moves, which could consist semi-
randomly of one of three things:
move a soldier to a new spot,
move two soldiers closer together,
target a random or the nearest
player soldier, or team up with a
fellow soldier by selecting the
same target as his nearest
teammate is targeting. Tune those
probabilities and timers until it’s
reasonably fair.
STEP 11: NON-INFANTRY UNITS
If you’ve made it this far –
congratulations! It’s an infantry
war game now. A simple
isUnitType integer added to the
soldier class or struct could
correspond to an enumerated unit
type (TYPE_TANK, TYPE_PLANE,
TYPE_ARTY, TYPE_GRENADIER,
etc.)
169
4 Even once you know what to do,
you’ve still got to put it into
practice before that knowledge
can do you any good. Becoming
good at anything requires
practice. Let’s look at some
ways to start getting practice
sooner rather than later.

Get Motivated

170
SE C TI ON 1

Stop Trying to Learn


Everything Before Starting
Knowing about something
isn’t the same as knowing
how to do it. The former
comes from reading and
discussion, the latter
requires practice and
experience. When you know
enough to start... start!
Get Motivated

Don’t wait until you know you’re programming for Windows,


everything there is to know before a .swf if you’re making a web
starting. game in ActionScript 3, etc.
Learn just enough to get started. At this point, you’re already ahead
That includes having a rough idea of an untold number of people that
of a realistic scope for a first have only ever thought about
project, so that you don’t wind up videogame development, but have
lost on a fool’s errand. been too caught up in waiting for
the perfect idea, or trying
Then get started. Get your
hopelessly to fill their brains with
development environment set up
everything ever written and said
and compiling empty, test,
about it before actually getting
placeholder, or example code.
started. So far so good.
Just get anything on the screen
that runs, meaning an .exe if

171
Find a way in your programming moving in the way that it ought to
language or environment to load move.
an image file and get it on the
Get the level structure put
screen, to respond to keyboard
together to position visuals and
and mouse or whatever input is
handle basic collision against the
needed, to load and play back
player. Save/load the level
sound effect files and looping
structure in some practical format
music. Depending on the platform,
– never mind getting caught up on
picking a library may be helpful for
the theoretically optimal
this (ex. SFML, SDL, Allegro, or
compression of that data, as level
XNA, if in C/C++), or this may be
files are virtually always tiny, and if
functionality built into what you’re
that becomes a problem later,
working with (Unity). Often the
cross that bridge when you get
easiest way to get to this point is
there. Level files initially saved in
to just find some simple example
ASCII can make debugging
code that already does these
significantly easier anyhow. Is the
things, then twiddle settings in
game world based on freestanding
your development environment
obstacles? Grid-based tile
until you can compile and run it as
collision? If the camera needs to
expected.
pan, add some offsets to the
Does the player character need to player draw position and level
move like a truck? A spaceship? A draw origin to achieve scrolling, or
tank? Mario? Get the input to a global transform if you’re in 3D
move the player’s graphic or using hardware acceleration,
(probably an unanimated rough and update those offsets to move
draft of the graphic at this point, the view based on player position.
concerned only with basic
Add enemies (if needed), items (if
appearance and scale on screen)
needed), trigger puzzle elements
(if needed), special powers (if
172
needed), ammo limits (if needed). how to cut that feature from the
Add nothing that isn’t needed. If design without the game
you’re not sure what else the basic completely falling apart, that’s
engine might need – and I’m only super cool, and welcome to
using the word “engine” here only production.
in the most minimal sense,
Once you finish the game and
meaning the game’s core code,
people don’t feel about it the way
not the try-to-support-every-
you hoped they would, first off:
game-imaginable Titanic-seeking-
that’s awesome, because hey, you
an-iceberg undertaking – start
finished a videogame.
putting together playable level
Congratulations! Next time you’ll
content and see what additional
be positioned to make
features or process improvements
incrementally more informed
you find yourself wanting while
tradeoffs with consideration for
doing that.
implementation realities,
The game may not need anything production compromises, and
else. potential impact on user
experience. It’s only at this point
If and when a situation arises for
that someone is beginning to
which you’re not sure how to
really do videogame design, as
proceed without digging and
opposed to talking about
experimenting for solutions, that’s
videogames, reading about
fantastic, welcome to real
programming, or cloning someone
programming.
else’s work as an exercise. Note
If and when a situation arises for too that design of a full videogame
which you have to make a tradeoff is different than level design.
between burning an uncertain Though the two are sometimes
amount of time on figuring out conflated, since they are often
something tricky, or working out done by the same people, when

173
done in isolation from other issues Roger Ebert was brilliant, but
and options about a game’s wasn’t suited to making a decent
development, level design is film. (Not hypothetical - see:
another field of content creation, Beyond the Valley of the Dolls.)
another skilled technician’s craft
If your goal is to be a critic: spend
like animation, dialog writing, or
all day studying the form and
sound editing. Those are hard
discussing it. If your goal is to be a
things to do, deserving of respect
maker: start making things, keep
and worth doing well, but they are
making things, and finish making
not videogame design. Designing
things. Being reflective on practice
a videogame is different than
can be helpful, but that requires
designing for a videogame.
actual practice to be reflective
Learning is great. Books are about.
important. Some amount of
Learning everything there is to
learning does need to happen
know about programming or
before starting, but the amount of
videogame development before
learning needed tends to be far
starting is impossible. It simply
less than people seem to assume.
won’t – can’t – all fit inside one
Learning, for this type of material,
head at the same time. Even if that
has to be situated in a context,
information somehow could be
demonstrable, useable, and
learned, memorized in the
practical. Contrary to the lay
abstract, detached, and rote
consumer impression that making
sense, it would not be of any use
something is a mere variation on
without experience working
being able to judge something, a
through real problems with it.
maker has a fundamentally
different set of concerns and This is not a decision between
practices than a critic. learning versus doing. What I am
proposing is that, within this

174
context, learning without doing Be wary of excessive preparation
isn’t really learning. Meanwhile serving as a disguise for
doing without learning is procrastination.
impossible, because doing will
demand learning.
If you make some wrong
assumptions early on, they’re
often easily corrected. That’s the
nature of digital stuff. We’re not
laying railroads or building
skyscrapers, we’re not cutting
someone open while they’re under
anesthetic – we are dealing in
digital text and other easily
modified, easily backed-up files.
The rework time is nothing
compared to the vast but invisible
damage from never starting,
waiting an infinite amount of time
until everything knowable is
known. That rework is even when
the best learning happens,
because the desire to not lose that
amount time on the next attempt
will help lead to a deeper
understanding of what caused it,
so that it might later be avoided.

175
SE C TI ON 2

"Overcomplicating Everything"

While the previous section


distinguishes “know about”
from “know how,” here I
distinguish “know how” from
actually doing what you
know how to do. I turn to
Arnie, everyone’s favorite
action hero, for inspiration.
Get Motivated

Arnold Schwarzenegger is an millionaire well before he was a


incredibly inspiring person. At 20 movie star. Still not enough, the
years old, he won Mr. Universe as guy picked up his life and moved
a body builder. For many of us, we across the world, becoming an
could just look at that actor. And, at least so I once read,
achievement and see that as the his first agents advised him to
likely high point, figuring that change his unpronounceable,
might come to define our identity unspellable, foreign-sounding last
and life path. No, that wasn’t name, encouraged him to hit hard
enough though. He started a the speech therapy to drop his
successful mail order business accent so that his voice could
based on his recognition from sound more American, going so
body building. Here again, many far as asking Arnold to get plastic
people might see that as a surgery to make his chin and face
stopping point – he became a less boxy, because it did not fit the
176
image at the time of how a the population of his home
handsome Hollywood movie star country and 5.5 times the GDP of
should look. his home country. Borrowed
directly from the Wikipedia entry
No. No. No. He found someone
on California Economics:
else to be his agent, because he
“California’s GDP is larger than
was determined to succeed on his
that of all but 8 countries in dollar
terms, with his name, with his
terms (the United States, China,
voice, with his face, and he of
Japan, Germany, France, Brazil,
course did. With flying colors. He
the United Kingdom, and Italy).”
helped define a whole new type of
He became head of the executive
action hero, an image that future
branch of the 9th largest economy
Hollywood agents could use as a
in the world, in a place he
measuring stick when encouraging
immigrated to in his 20s, and for
new Hollywood immigrants to…
eight solid years because he won
maybe not change too much.
the re-election by a wide margin (if
Again like becoming Mr. Universe,
it started even partly as a joke,
and again like creating a
clearly he succeeded in quickly
successful mail-order business,
taking it quite seriously).
anyone would have understood at
this point had he simply accepted Hoo-oo-oo-leeeeyy schnike-ees.
his identity within the world as a It’s hard to really wrap our minds
movie star, a beloved and around the thought of becoming a
extraordinarily successful one, mayor in a small city we grew up
finding a way to be satisfied with in. Oh, and he started a restaurant,
that. and probably some other
impressive things, but I suspect
He become governor of a state in
you’re getting the point.
a country other than the one in
Schwarzenegger is basically like
which he was born. Not just any
Tony Danza on steroids. Okay,
state: a state that has 4.5 times
177
formerly on steroids. (Tony Danza, definitely wasn’t rocket science,
you see, has also done a lot of but it worked.
stuff, not letting his early career
Random observer (rainman1): I’m
determine or limit his identity and
getting the distinct impression we
interest in broadening his life
[have] been overcomplicating
experiences.)
everything.
This is all background, mere set
Glorious. Here’s a massive, highly
up, though I suppose it has a bit of
active discussion forum where
a valuable message in its own
people come up with, deeply
way. The reason I bring up
research, and argue over complex
Schwarzenegger is because
diet and workout schemes to
periodically, he participates in an
optimize their gains, asking for
open online forum about weight
advice on how to lose weight
lifting, offering advice and
based on the lifelong experiences
answering questions. And recently
of Mr. Universe, a 7-time Mr.
an exchange took place that I
Olympia winner, a man that can
think is worth calling attention to
still achieve heroic muscular
here:
fitness now in his mid-60′s for
Q (Snowman24): When trying to continued action movie cameos,
cut weight after a bulk, what was and his answer, basically: exercise
your best method? In terms of more, and ease up on carbs.
cardio, diet, etc? Do you believe in
Pure gold!
ketosis at all?
It’s maybe just a little too easy for
A (GovSchwarzenegger): Pretty
some slightly geeky people (if
simple… I would add in extra
you’re reading this, I trust that
cardio – running on the beach,
you’re at least a little bit geeky. I’m
swimming, and bicycling. I cut out
geeky too) to judge some
bread, pasta and desserts. It
meathead, weightlifting jocks (I
178
was sort of one of those, too) for for. This isn’t being lazy; this is
overlooking the obvious, making it how things happen at all at our
seem more confusing or difficult scale. Given our small (or solo!)
than it needs to be. However, we team sizes and the sheer amount
videogame developers routinely of code, data, content,
fall into doing that exact same information, and decisions that
thing to ourselves. we’re trying to juggle to make
videogames, it’s often smart, or at
We often know what we need to
least sensible, to be efficiency-
do next. Instead of just doing it,
oriented most of the time. Then
we get into a long-winded
we can better make it count when
philosophical argument, tangential
we deliberately do something
discussions about directions that
specifically contrary to
we definitely are not going to go
conventions and expectations for
in, or bury our faces in Google
a meaningful reason.
trying to find everything that there
is to know about this particular In other words, assuming we’re on
decision before we just, 99% of track to realistically get a lot done,
the time, finally get around to what we do typically has far less
doing what we were going to do in to do with all that extra discussion
the first place, in the same way and investigation, and much more
that we were going to do it in the to do with what arises from acting
first place. on our ideas and reacting
dynamically if they don’t come
Generally we’ll only actually try an
together as expected. There’s
alternative approach if that first
often simply no way to know
attempt catastrophically fails us.
whether they can come together
Even then we’re very likely to
as expected until we’ve tried
attempt the next most logical,
acting on them.
convenient, or familiar thing that
we can find practical information
179
It’s almost as though, somewhere out what ideas are or aren’t
deep in the recesses of our minds, working. When they aren’t
we think that if only we could working, abandoning them is far
know enough about the problem smarter than forcing yourself to
at hand, one morning we’ll wake use them simply because the work
up and the work will be done. My on them is partly done.)
generation grew up hearing from
Here’s another hard fact, true for
G.I. Joe that “Knowing is half the
basically every developer that I
battle” but maybe didn’t hear
have ever met, myself included,
often enough that the other half
which I hope can be digested
consists of taking action based on
constructively here as a challenge
that knowledge. It’s not as catchy,
to your skills and intellect: there
I know.
are a great many things that you
No amount of accumulated think you know how to do, but
knowledge is going to substitute have never attempted, and in all
typing in the next characters that likelihood you don’t really know
need to be typed, creating the files how to do those things. At best
that need to be created, doing the you know how to start, and have
bit of code refactoring that may be confidence that you can figure it
necessary to move forward on the out from there, but that vague
project without tripping over bugs potential is very different from
leftover from partial having done it. Even
implementation of ideas tried but understanding how individual
abandoned because they did not parts work is not at all the same as
work. (That’s just part of the knowing how and why they fit
process. Again, generally together, let alone being able to
speaking, that hasty assemble them. Once we actually
implementation is often the only attempt to do the things that we
and most efficient way to figure only thought we understood, we

180
quickly discover all kinds of lovely with doing so, but strictly
nuances and subtle complexities speaking, you really don’t know
that weren’t apparent on first how to do it, even if you just
glance. The upside of course, is finished reading a book on the
that by the time we finish the subject.
attempt, we really will understand
To people in our family – and to
exactly what’s involved in making
ourselves – we tend to look like
it work. It’ll become one more tool
our potential, what we seem
in our conceptual or practical
capable of doing. To friends, we
toolbelt for future use, having
may be thought of from how we
shown ourselves that it’s
seem in the present: less pressure
something we know how to do.
about the future, and not worried
Note, however, that to “know how about the past. However, to
to do something” has way more to strangers, literally everyone else in
do with the “do” than it has to do the world, our abilities and our
with “know” – strange, right? If I character are judged only by our
ask whether you know how to do past, what we have already done.
a skateboarding trick, I don’t mean So outside of the dozen or fewer
do you understand what the stunt people that know us best, if we
is. I mean, can you do it? If I need haven’t done it, as far as anyone
heart surgery, I need a surgeon else is concerned we can’t,
that “knows how to do” the regardless of what or how much
operation, by which I mean we “know” inside. There is only
someone that can do much more one thing that can change their
than just describe the procedure. minds about whether you can do
If you haven’t made a platformer it, and that’s going through with
game before, you maybe have all actually doing it. Strangers can be
kinds of ideas of what you could very hard to persuade, but this
look up or try first to get started

181
turns out to be an extremely saying is that at the very least,
effective way of doing it. doing it is a different kind of
challenge than getting endlessly
Someone could spend years
distracted by learning infinitely
reading about how to do
more detail about the matter at
something, then be put in a
hand.
situation to do it, but then be
unable to translate that reading Sometimes we need to – get to! –
into doing. Meanwhile if someone play the role of grand architect on
else has actually done it, we know our projects, but for the vast
that we can generally count on majority of the development time,
them to be able to do it in the we actually just need to be our
future, or benefit from real own construction crew laying
takeaways learned as part of that bricks, nailing boards, taking
experience. measurements, and lifting things
into position. Even if you’re the
I’m clearly not opposed to books
kind of person that’s capable of
or book learning. I love reading,
governing the 9th largest economy
and I read a ton. Knowledge is
in the world, there’s still a time and
great! All I’m trying to stress here
place in life for simply being a
is that especially within the
brick layer.
domain of a craft, knowledge
alone cannot be a substitute for If you feel like you or your work
experience of actually putting may be hurting from falling into
things together. Here’s the crazy this pattern, and I know a lot of
part: actually putting things people are affected by this, having
together can in many ways be a been “overcomplicating
lot less complicated than trying to everything” day after day, I urge
study or talk coherently about you to catch and stop yourself
them. I’m not saying that doing it next time this starts. Just get back
isn’t challenging, but what I am to the compiler and do the work.
182
The thoughts you had previously
about where this project was
headed are still just as valid,
though of course even if you’re
having second thoughts there is
no better way to prove to yourself
whether the idea works than to
simply try it and see.

183
SE C TI ON 3

Think by Building, Build to


Answer Questions
The act of creation can
serve many purposes.
Wanting the end result to
exist is but one of many
reasons. The process of
making something can lead
us to change our minds, or
to refine how we think.
Get Motivated

A musician is more likely to dream happened while standing at the


up new songs by strumming on canvas with paint.
the guitar than by writing notes on
I’m guessing at the above, since
the page. A chef is more likely to
I’m not a musician, chef, or
invent a new recipe by trying a
painter. However I can say for
bold variation on an otherwise
certain that as a videogame
known formula – while actively
developer, I think by strumming on
preparing the invented dish, not
my guitar, trying different spices in
while sitting in the park with a pen
the kitchen, and mixing on the
and a notepad. A painter, no
canvas.
doubt, benefits by investing some
mental energy in deciding on When we’re halfway into
subject or approach, but I think developing a game, we think
that the genius of Mona Lisa differently about it than we do
when we’re just getting started or

184
nearly done. The same is true at path that can lead to coherent
25% through, or 75% through completion.
(which often turns out to actually
The natural objection to building
be only 25% through). While
too soon is a fear that doing so
building something, we’re always
sets too much in stone. That
at an intersection of “How do I
objection assumes the historical
address this immediate
approach required of massive
challenge?” and “How can I keep
physical projects like ships and
this on track to hone in on a
skyscrapers: extensive planning,
coherent, complete result?” Yet
followed by huge costs of
before initiating building, the
building. Since the cost of building
tendency is to think in vague,
(and more so, the cost of undoing)
incoherent, daydreaming ways
in software is significantly lower
about the project without either of
than in battleships or buildings,
those helpful grounding questions
I’m suggesting that development
in mind, because there’s nothing
is part of the planning process,
tangible yet to pivot on.
and seamlessly carries into the
Of course, it’s valuable to foresee production process. Build to clear
and steer away from potential up uncertainty in the planning, to
dead-ends, to have some clear narrow down frayed possibilities,
initial direction in mind, and to to work out a plan based in the
have a sense for how long a given reality of gameplay with situated
project might take. I’m not anti- proof that A works well and B
planning. I only mean to suggest doesn’t hold together.
treating any such plan as highly
If a feature isn’t working out, ditch
tentative – as little more than
it. If a level is bad no matter how
evidence to yourself and others on
it’s reworked, lose it. If something
the team that there is at least one
was originally planned but what’s
currently working seems to work
185
just great without that something, It’s okay to make a few not-as-
consider forgetting that something great games, especially if it means
and the extra complication it that you feel comfortable taking a
would invite – though if you have few chances, trying out a range of
the time, build it, and rip it back new ideas, and working with a
out if it’s not an improvement. variety of different people or
influences. However, you can give
When the built gameplay gets
each project its best chances of
pulled back out, it isn’t a loss. It
succeeding by being bold about
was exchanged for new
cutting out the not-as-great
information that could not be
features and the not-as-great
obtained any other way. It was a
content. The flexibility to do that
sacrifice made in exchange for
kind of cutting only comes from
conviction that the better course is
building to test ideas along the
to go without that surrendered
way, beginning with making plans.
part.
Building isn’t just for final
When actively developing, it
decisions – it’s also for arriving at
becomes clear that there’s a much
better decisions. Don’t just build
better destination en route or
to keep what’s built; build to think,
accessible by a short detour.
and build to answer questions.
Remember though that the goal
isn’t to reach the originally
planned destination, but to make
something worth making. If the
original goal’s role turned out to be
getting you close enough to spot
that alternative outcome and
achieve it, go for it.

186
SE C TI ON 4

Your Attitude Matters Even


When Working Alone
Attitude is obviously a
factor with a team. Issues
come in many forms:
rudeness, pessimism,
unwillingness to adapt, etc.
Less obvious is that attitude
is just as crucial a factor
when working alone.
Get Motivated

THE WHOLE TEAM’S PROBLEM If you’re working alone and are


If you’re the only person working
being unnecessarily hard for
on the game – as is so often the
yourself to work with, that has to
case for beginning practice, small
be remedied.
side projects, and artistic games
for personal expression – then This might seem like a peculiar
your mood is the mood of the way of looking at it, but isn’t it
entire development team. much stranger to instead assume
that the mood of the entire
If a game’s entire development
development team has no bearing
team is feeling angry, is letting
on the work getting done?
frustration overwhelm them, or
ATTITUDE’S A KEY INGREDIENT
simply stopped believing in the
Regardless of how much talent,
worth of what they were creating,
know-how, and time is available: if
we’d expect that to drag down the
your attitude’s out of whack, the
game being made.
game won’t get done. If your
187
attitude’s a bit better, the game what you’re trying to get done,
may get done, but not as well nor that’s a signal that maybe
as soon as it could be. If your something needs to change.
attitude’s well-tuned, you can find WHEN THE ISSUE IS ENERGY
yourself getting more done, at The solution might be getting on a
higher quality, and feeling better in more regular sleep schedule,
the process. getting out of the apartment more,
starting and sticking to a light
On a team someone else is likely
exercise routine, eating better, or
notice these kinds of issues and
reaching out more frequently to
raise them as concerns to be
some other people just to talk.
addressed. What makes this sort
of problem especially dangerous These may sound unrelated to
for lone developers is that it’s game development, but keeping
much more difficult to catch these what’s sitting in front of the
in ourselves than it is for us to keyboard properly functioning is
observe when they’re happening clearly at least as important as
with others. The damage is still ensuring that you’ve got the right
there but there’s no other hardware and software properly
perspective involved to help spot functioning behind it.
it. WHEN THE PROBLEM IS MOTIVATION

Attitude is a broad word – on its Find ways to reward yourself. Try


own it’s no more specific than listening to a different kind of
“disease.” Attitude issues are not music (more upbeat? more
confined to one kind of ailment, energetic? more nostalgic?
one set of symptoms, nor can it be different things work for different
fixed by one common solution. people). Rethink whether your
development schedule might be
If you feel like your body and adjusted to keep your morale
mind are putting up resistance to higher through seeing more
188
tangible progress one week to the identify as a lack of training or a
next. skill mismatch.
There are many things that we can Demanding from yourself
do to keep a team’s spirits up. unrealistic results on an unrealistic
When working alone, it’s worth timeline, stretching too far beyond
sometimes doing the same things your present level of experience or
to keep yourself going. abilities isn’t motivating or
WHEN SELF-COMMUNICATION FAILS educational, it’s instead bound to
Sometimes the issue arises as the frustrate, stalling forward progress
solo equivalent to what on team or bringing hopelessness to the
projects we see manifested as surface.
communication problems.
There’s always a temptation to try
Maybe the upcoming schedule to be a hero, taking on a
needs more or less detail. Maybe monumental task just to prove to
this next chunk of work needs to the world that you can, but the
be broken into smaller steps or work can’t really impress or excite
different kinds of subtasks. anyone if driving so hard into it
Communication is a process, and makes you crazy or upset to the
it’s always open to further point that you can’t make
refinement or simply switching progress.
approach. On a solo project your
World class weightlifters didn’t
communication challenge is
start by trying to lift the amount
successfully keeping future you
they do now. It could’ve snapped
working toward the same
their bones, torn their muscles,
objectives thought through by
and crushed their bodies. The
past you.
consequences of trying to do the
WHEN GOALS ARE UNREASONABLE equivalent as a videogame maker
Sometimes the issue comes down are certainly less visceral, since
to what on a team we’d easily
189
the risks of overexertion are
instead purely psychological, but
it’s a nasty sort of harm that can
drag out stealing years of
productivity.
NOBODY’S HOPELESS, NOBODY’S PERFECT
Most likely: you’re not 100% off
the deep end in any of these
dimensions, but you’re not
completely matured past all of
them either. Every person has
some mixture of different
imperfections in attitude to work
on improving.
Even if you’re not working with a
team, you’re still functionally a
team of one. Keep an open mind
to trying out various ways to make
yourself easier (for yourself!) to
work with.

190
SE C TI ON 5

Don’t Wait for an Event, Job,


Contest, or Assignment
School trains us to do what’s
asked of us, and most roles
in the workplace reward the
same. But when you have
the power to create from
your imagination, don’t wait
for someone else to ask you
to do what you want to do.
Get Motivated

As soon as you know how to Want to work on a 3D puzzle


program in a practical language, game, a space exploration game,
are functionally fluent with digital a scrolling shooter, a sniping
art and audio creation, and have mission, a mech combat game, a
developed one or more submarine stealth game, a game
videogame projects of your own where you play as a squirrel
design, don’t wait for an event, gathering nuts or control weather
job, contest, assignment, to shape how tiny villages
invitation, business plan, or develop? Leave this web site, and
context to make what you want to go make it.
make.
In case you’re still reading:
Want to work on an overhead
Set a date for it to be completed
racing game? Close the browser
by. Whether that’s 6 months away
and go make it.
or 24 hours away, scale the style,

191
features, polish, and scope to well before there was reason to
whatever it takes to make that have done so.
schedule. Tens of thousands of
Is there something you want to be
amateur videogame developers
making, or want to have made,
routinely put together playable,
that you’re capable of creating on
original projects over 24-48 hour
your own (or creating “enough of”
spans in game jams. There’s
on your own to fill in the blanks for
nothing wrong with game jams –
now), that you haven’t yet started
but there’s absolutely no reason to
making?
wait for a game jam to roll around
to create something in 2 days. Or Then what are you waiting for?
2 weeks. Or 2 months. There’s no
reason why it has to only take
place a few times a year, while
other people are doing it, or in
connection to some arbitrary
centralized theme.
It may not be clear how to market
it, who it’s for, how it will turn out,
or even why it’s being done. Don’t
let that get in the way. It’s
probable that at some point in the
future, a situation will
unexpectedly come up to share
and show off something that
you’ve done. Whether or not you’ll
have something that fits the
occasion will depend on whether
or not something was put together

192
SE C TI ON 6

The Brain is Not an Emulator

Modern PCs can emulate


(play game code from) old
game systems. Despite the
brain’s power, it’s unfit for
that task. Memories of real-
time play and expectations
of how an idea will work out
are highly undependable.
Get Motivated

LessWrong explains verbal “principally non-verbal


overshadowing with the following process” (gameplay) are digested
examples from research: into words, they can interfere with
People who were asked to describe a face
the accuracy of those memories
after seeing it are worse at recognizing the rather than aiding them. The more
same face later. we discuss videogames and
videogame design, the more at
People who are asked to describe a wine
after drinking it are worse at recognizing risk we become of wandering
the same wine later. astray from what we’re
supposedly discussing. Talk about
People who are asked to give reasons for
their preferences among a collection of
Pac-Man too much, and you’re
jellies are worse at identifying their own likely to start mixing up all sorts of
preferences among those jellies. important details (pop quiz: does
Pac-Man move faster or slower
Or, as the concept relates to this
than the ghosts? [check your
entry: when thoughts about a
193
answer at the end of this section]), input, cognitive overload,
if not outright dreaming up and attentional bias and reflex
emphasizing all sorts of seemingly limitations are lost in indescribable
important aspects that are either tacit memory and immediate
not there or turn out to be experience, but none of that
comparatively unimportant during happens if you aren’t the one
real, actual, human play. actively playing. When you aren’t
the one playing there’s no stress,
Part of what makes this tendency
no relief, no exploration, no
dangerous is that we’re unaware
dexterity, no practice, no learning,
of this confusion, since the brain is
no being lost nor stumped nor
providing its own reference. Minds
excited. Without those events in
are powerful but often imprecise,
the picture, it’s not really a
and we’re prone to lie to ourselves
videogame being discussed at all.
on accident. We think we know
Studying YouTube videos of
how something works in a game,
games is a good way to become
so we’ll just visualize the game in
an expert in making YouTube
our heads to check, and… yep,
videos of games, but that’s not at
sure enough, it’s exactly like we
all what we’re interested in doing.
thought. But of course the brain is
actually fudging that visualization, PLAY A LITTLE GAME
Imagination can’t even fully
constructing it from what we think
recreate playing classics like Pong
we know, rather than replaying a
or Breakout in real-time. Stop for a
lossless video recording.
minute and try it. Let the actions,
GAMEPLAY IS NOTHING LIKE WATCHING
movements, and sounds play out.
Speaking of video recording:
looking up a YouTube video isn’t [Play Pong or Breakout in your
sufficient, either, and nor is head. Seriously. No one else will
watching someone else play. The notice or care. And if it turns out
human complexities of analog you're good at it, you'll have a new
194
way to entertain yourself in long fast does the ball move, and when
meetings.] does the ball’s speed change? To
what score were you playing to in
Provided that you can at least
Pong? And to mentally simulate
maintain coherent positions and
Pong you needed to play both
velocities beyond a few seconds
sides – but certainly that yields a
(surprisingly non-trivial), you’ll
very different mental experience
likely need to admit that you pretty
than only playing for one side?
quickly started cheating or fudging
basic unknowns: messing with Those are some of the simplest
movement (analog dials produce a videogames ever developed.
very particular type of on-screen They’re from the 1970′s, and built
glide!), losing track of brick size, on extremely limited hardware.
locations, and count (how many Meanwhile there are plenty of
per row, and how many rows? designers who feel quite certain
brick dimensions? is there a space that they firmly have a grasp in
above the bricks? how large is memory on the gameplay from
that space? how many points are Genesis games, Xbox games, Wii
bricks in various rows worth?), Games, and even PlayStation 3
getting ball bounces wrong (you games – sometimes played years
know the ball doesn’t reflect off ago, and in all such cases with
paddles like it does the walls, significantly greater complication
right? and that in Breakout the ball in animation, audio, object count,
never hits the side of a brick, then level design, input devices, and
the ball moves harmlessly through other factors than the two
all other bricks on the way down, comparatively simple games just
such that it only hitting one brick mentioned. Not only is the
per paddle bounce unless it just memory mostly fudged, but
bounced off the back wall… ?). thanks to Verbal Overshadowing
How big are the paddles? How the more we try to explain what

195
we remember, the further we stray jumpers with satisfying controls.
from what the gameplay actually (In SMB, exploration primarily
consisted of. takes the form of crouching on
DELICACY OF EMPHASIS most pipes to check which lead to
The factors I’m referring to may underground zones, bumping
seem like trivial tuning matters, normal-looking bricks to find the
but that’s just how wrong the mind ones that are multi-coin blocks,
gets it: when those aspects are etc.)
other than they really are (say, in a
There’s a temptation to inspect the
crummy port or shoddy clone, or
totality of the system, as though
in your human imagination) a
every authored decision has a
videogame can take on an entirely
significant and isolatable affect the
different experiential and
player. This simply isn’t true. When
mechanical quality. Attention and
the brain gets overwhelmed by
anticipation are fragile but central
rich details and possibilities it
to gameplay, and get manipulated
relies upon performance
by countless audio cues, visual
shortcuts, crude mental models,
clues, input behaviors, and so on.
and selectively ignoring the vast
Just one incorrectly remembered
majority of information. An efficient
element or human response can
approach to gameplay adaptation
drown out the real priorities that
won’t even internalize most
occur during live play. Super Mario
environmental details, but will
Bros and Super Mario 64, for
instead focus on how to react or
example, both involve a lot more
solve when necessary and how to
combat and exploration than
advance between combat and
designers typically remember
puzzles. As to what information
when discussing those games,
gets acknowledged or disregarded
both of which get wrongly
on the fly for a given videogame,
abstracted as pure platform
and what the brain actually does

196
with it, that can only be when trying to recreate or discuss
determined by playing the game a camera movement, player
(not just having played it at some behavior, layout, input dynamic, or
time before). other aspect of an existing
videogame, there’s no substitute
Trying to remember gameplay is
for breaking it out and playing it.
even more difficult than accurately
Then iteratively making notes – not
simulating all the inputs, outputs,
after the experience, while Verbal
and code, because it also requires
Overshadowing is rapidly taking
simulating and accounting for the
over, but during the experience, so
complexity of the brain. Given that
as to immediately and frequently
the brain can’t faithfully emulate
check whether the observations
Atari hardware, it certainly can’t
and thoughts are holding up.
handle fully emulating itself, too –
all while focusing on the player’s Often, confirmation bias will still
perspective and experience, of takeover, making things seem to
course. align to the way we think of them,
OUR LIMITATIONS but at least some of the time we
True, we can have a fuzzy memory can catch our own nonsense
of some screenshots, a few before we spread it to others. This
memorable sounds or fragments seemingly hopeless picture I’m
of songs, perhaps a single scene painting is quite deliberate,
playing back as though it were a because the real takeaway here
non-interactive animation (again: isn’t on how to better document
minus the stress, confusion, gameplay in words to avoid the
confidence…). We can recall crude need to reference gameplay, it’s to
facts aboutour experience, such accept the futility of anything less
as whether we had fun, how long than actual gameplay to
we spent playing, and whether we accurately and completely capture
were impressed by it. However what it is.

197
DESIGNING GAMEPLAY ISN’T VERBAL even having better ideas, so much
The other challenge this
as it’s having a better process for
introduces is the near-guarantee
building, trying, rejecting, and
that most of what we think about
salvaging ideas, then seeing
when designing and planning
through the polished completion
gameplay features in our heads
of those thoughts that survived
(and on paper in words) is pure
and fit well together. It’s an
fantasy that will fall apart and need
elaborate dance to compensate
to be mostly rethought the very
for the inability of our brains to
moment it’s tested in interactive
know or manipulate gameplay
implementation. We can write or
accurately as thought or words
talk for arbitrarily long about how
alone.
we think it will work and how well
it will play out, but we can’t even
reliably articulate that dynamic for ♦
rudimentary games that already
exist, let alone nebulous ideas in
our imaginations. At best, such POP QUIZ SOLUTION
So, does Pac-Man move faster or
thoughts hint at possible
slower than the ghosts? As the
directions, and give sufficiently
Pac-Man Dossier summarizes:
clear direction to begin exploration
in a tangible way, but quite often The game starts with Pac-Man at 80% of
once we get the ideas playable we his maximum speed. By the fifth level,
discover that they work or flop for Pac-Man is moving at full speed and will
continue to do so until the 21st level. At
reasons totally unrelated to what
that point, he slows back down to 90%
we expected.
and holds this speed for the remainder of
Because of this effect, often what the game. Every time Pac-Man eats a
makes great videogame designers regular dot, he stops moving for one frame
(1/60th of a second), slowing his progress
isn’t writing better design docs, or
by roughly ten percent—just enough for a

198
following ghost to overtake him. Eating For level 1: Pac-Man moves at
an energizer dot causes Pac-Man to stop 0.8X, Ghosts at 0.75X
moving for three frames. The normal speed
maintained by the ghosts is a little slower For levels 2-4: Pac-Man moves at
than Pac-Man's until the 21st level when 0.9X, Ghosts at 0.85X
they start moving faster than he does. If a
For levels 5-20: Pac-Man moves
ghost enters a side tunnel, however, its
speed is cut nearly in half. When
at 1.0X, Ghosts at 0.95X
frightened, ghosts move at a much slower For levels 21+: Pac-Man moves at
rate of speed than normal and, for levels
0.9X, Ghosts at 0.95X
one through four, Pac-Man also speeds up.
The table below summarizes the speed My point, of course, is that the
data for both Pac-Man and the ghosts, per difference is subtle enough in
level. either direction, and complex
In other words: it depends on enough in its involved factors
which level you’re on (generally, (many of which casual Pac-Man
Pac-Man is faster than the ghosts players may not be aware of), that
before level 21, except...), if Pac- unless you’ve made a point of
Man is in a tunnel still filled with learning these facts about Pac-
energizer dots (in which case the Man through deliberate study,
missed movement frames from merely being familiar with this
eating a let a following ghost catch iconic classic and having played it
up), and where the ghost is on the on numerous occasions is actually
map (they slow down significantly inadequate for being able to figure
in the wrap tunnels even in the out something relatively central to
later stages). how the game plays.

What are their relative speeds?


Also covered in that source, if we
let X = Pac-Man’s speed in levels
5-20, then:

199
SE C TI ON 7

Stop Arguing About What Makes


a Better Game
Lots of people have ideas
about how videogames
ought to be. At the end of
the day, the only people
who are really deciding how
videogames will be are the
people that make them.
Bring your argument to life.
Get Motivated

Stop arguing about what makes a that they last built or are currently
better game, and go make your building. As it should.
better game.
In purely technical challenges, the
Every indie developer that I know questions we deal with are often
– and I’ve had the good fortune to convergent. In other words, in
meet quite a few of these folks – terms of algorithm or
has a wildly different answer to the implementation, there are
question, “What makes a good answerable questions about which
videogame?” They generally have pathfinding or collision detection
an answer, it’s not as though the routine makes the most sense for
question leaves developers with a particular application, or at least
nothing to say. My point is that the pros and cons can be
actually saying it doesn’t do much objectively outlined and weighed.
good. The argument usually
sounds quite a lot like the game
200
Technical matters exist in other art Though perhaps the best reason
forms, as well. A painter’s opinion to be acquainted with one
isn’t what makes a particular another’s work is to avoid wasting
material of canvas or paint last, an precious time simply recreating
architect’s opinion isn’t what someone else’s work, while
determines a structure’s ability to mistakenly thinking that doing so
withstand an earthquake, and a is trailblazing. We need to know
musician’s opinion can’t override what else is out there not just to
room acoustics or material learn from it, but also to recognize
realities in instrument and reduce redundancy, to not
construction. misuse our lives exploring beaten
paths. (For people new to making
However, in matters of taste, one
videogames, cloning can be
painter arguing that other painters
helpful as a form of detailed study
ought to mimic her own style and
or to get initial momentum, but
purpose would result in a less
that’s neither who nor what’s
interesting gallery for the rest of
being addressed here.)
us. Architects and musicians
likewise would deprive the world The only meaningful yield of the
of much needed variety if they individual’s deeply-felt arguments
spent their energy trying to tell about game design is the actual
others to do exactly as they game designed.
personally would do, especially if
Some people will like it, some
this were done instead of actually
people will hate it, some people
doing it themselves. They could
may feel like it’s the game they’ve
certainly still be aware of one
dreamed about but didn’t know
another, be inspired by one
how to make, and the
another’s work, even borrow and
overwhelming majority of the
remix parts.
population (even if your game is
Zelda, Angry Birds, or FarmVille)
201
flat out won’t really care one way unlike their cousins in clear
or the other. It’s a matter of taste. categories, on account of having a
Even the most popular or critically far harder time being found by
acclaimed work in any medium is people that can know before
met with infinitely more playing that they want to play
indifference than with what it is. You could make exactly
appreciation, or at best in the the game you mean to make,
absolute peak of pop cultural totally love the outcome, and the
products, iconic recognition person you would’ve otherwise
without real understanding. argued about it with still may not
be into it at all.
If you’re doing a commercial
project, sure, you’ve got to worry Of course, since the brain is not
about what’s going to sell, and an emulator, arguments about
that’s a different battle than what what makes games better are
I’m talking about here. If you’re a even more silly. In argument form,
hobbyist, I still say embrace the as opposed to videogame form,
hobbyness, do something strange there’s too much information left
that beginners can’t and unspecified. Even if it were all
professionals won’t. somehow conveyed exactly, the
mind would derail managing it all
Someone that doesn’t like driving
within the first second of
games still won’t care about the
execution. In my mind I can fool
“best” driving game ever created,
myself into feeling like any
by any metric or definition of best.
videogame concept is appealing,
The same is true for puzzle
equally well regardless of whether
games, shooter games, platformer
in reality it’s my least or favorite
games, and though I suppose it
game. If brains could be trusted
goes without saying, the whole
with juggling all the details in real-
vast and infinite sea of games
time, and if language could do
without clear genres which suffer,
202
justice to explaining those details,
we wouldn’t be throwing so much
time into programming and
creating assets.
Make the game your argument
leads to, to get the argument out
of your system, so that you can
come up with another argument,
informed or changed somehow by
how the last project came out.
Then make a game out of that new
argument, and repeat. It’s barely
meaningful to ask whether an
argument about taste (not an
estimation of “the most popular
taste” or “fitting the taste of vocal
critics” – but actual, individual
taste) is right or wrong, but you
can be sure that nothing will make
the argument more clearly and
loudly, in a way unmistakable to
those within or interested in our
domain, than actually making a
videogame out of it.
This entry was inspired by the quote “Complain
about the way other people make software by
making software,” from Andre Torrez, which I
found in Steal Like an Artist by Austin Kleon

203
SE C TI ON 8

Start Before You Have an


Idea
Too often, people get stuck
trying to come up with the
perfect idea before they’ll
let themselves start. Then,
unsurprisingly, the idea has
no connection to what they
are able to create! Let the
idea evolve from the work.
Get Motivated

I received this message the other This is a common source of


day: paralysis when trying to get
“I don’t know how to come up with an
started. Let’s look at some ways of
idea for a game. My problem is that I can’t bypass these barriers and get
come up with an original idea. I had many back to game making.
ideas for games, but it turns out those have YOU DON’T NEED THE IDEA TO START
already been created by other people.” Contrary to popular belief, it often
As always, I really appreciate works out pretty well to come up
hearing questions from readers with the idea after starting it. This
and subscribers. It helps ensure is not the chicken and egg
that I’m writing content addressing problem that it appears to be.
real questions that people out Start building something. Pretty
there are currently running into. much anything! Anything simple
enough that you realistically could
finish in a straightforward,
204
predictable way. Make “just a onto and grow into something
racing game,” “just a puzzle deliberate. Others may take form
game,” “just a strategy game,” while trying to figure out a simpler
“just a platforming game,” etc. or more time efficient way to
accomplish some immediate goal,
Ask yourself what’s the bare
involving some approximations or
minimum basics needed to be
accepting certain limitations. Ideas
coherent as one of those
can also take shape as just
recognizable game types.
needing to fill in for something in a
Just start piecing it together. way that you’re able to do well (or
The different ideas, including well enough!).
what’s going to make it special, Doing this on the fly helps find the
will often develop midway from the workable intersection between
details, process, and personal current capabilities and current
interests, strengths, and curiosity. Often the key “idea” of
constraints. the game that really sets it apart
HOW THE IDEAS EMERGE isn’t even something easily
While dealing with those parts and described at first, but is instead
watching it take shape in stages, something subtle in the gameplay
you’ll begin bumping into all kinds that only arises from back and
of ideas of different things to try. forth tinkering with the machine.
Different ways to approach
WHAT TO DO
common problems. Different Step One: if you’re not already
directions to take the game in. actively working on a project, pick
Different things to let the players an old or otherwise relatively
do. simple type of game or two and
Some ideas arise from incomplete start trying to implementing parts
implementation, a discovery in the of it to get some momentum. Get
cracks of work that you can latch yourself further along in the
205
process. Create a situation in some particular example in as
which you can have ideas that much detail as possible.
you’ll be able to promptly put into HOW WELL IT’S DONE MATTERS MORE
action, in a context that’s at least Concern over originality at the
partly functioning. idea level, rather than in the details
and execution, stems from
Only with the foundation of some
overemphasizing the importance
code and functionality in place can
of the idea. To put it bluntly that’s
the imagination begin to orient
just not really how media, whether
itself in concrete possibilities
entertainment or art, works. Of
rather than random dreaming.
course the topic matters to an
Plenty of concepts that are
extent. It can drum up certain
interesting to think about might
kinds of excitement or imply
not work particularly well in a
connection to certain audiences.
videogame, or might need a huge
However, much of its impact
budget and large team to get it
resides in how well it’s done in the
done. Using this approach you’ll
eyes of the audience that it
always be building in a way that
reaches.
necessarily fits in a game and –
just as importantly – within (or just Star Trek didn’t invent space ships
at the edge of) your present skills. and science fiction. Quake didn’t
invent zombies, grenade
You’re not someone else. You
launchers, or gothic(-ish)
don’t know the same things, care
architecture. Godfather didn’t
about the same things, or work
invent mob films. Super Mario
the same way. Your work simply
Bros. didn’t invent platforming or
isn’t going to wind up the same,
saving captured princesses. Back
unless as a deliberate practice and
to the Future didn’t invent time
learning exercise you go out of
travel. These are so well done that
your way to specifically copy

206
they captured people’s this approach for
imaginations. InteractionArtist.com
This isn’t just about TV shows, That’s still thinking by building. It’s
games, or movies. Moby Dick just not starting from as
didn’t become a classic because established a foundation,
the idea of whale hunting is cool. accepting a higher chance of
Moby Dick is so well put together producing something uninteresting
that it creates interest in what it’s in exchange for a shot at coming
about. out of the process with something
more unusual.
The idea of Mona Lisa is… well,
you get the idea. DON’T WAIT FOR INSPIRATION
Waiting for an original idea to just
Pick something to do, practice to happen is an unproductive trap.
do it better, and you’ll discover
Ideas grow out of action, iterative
your own tricks along the way to
building, and through
make them more personalized and
collaboration with others that have
unique.
different tastes and strengths than
RAPID PROTOTYPING
your own.
The other approach to come up
with gameplay ideas that haven’t Want to come up with more
yet become a common pattern is ideas? Start making something.
to rapid prototype, which requires
Even if a project starts out as
a high degree of development
totally unoriginal, with persistence
fluency and often returns a
and some practice it’ll soon lead
relatively low yield. However, it’s
to directions you wouldn’t have
one source for original and decent
thought up otherwise.
things that aren’t evolved from
things that began as clones. I took

207
5 Some game development books
begin with game design. But first
learning some programming
skills as a foundation can help
give you the power to put your
designs into practice. Let’s next
dig into some design concepts,
since you’re now better
prepared to try them out.

Game Design

208
SE C TI ON 1

Modest First Projects and


Incremental Learning
No one expects their first
film project to be just like a
Hollywood movie, and yet a
similar belief is oddly
common among people new
to making videogames. Here
I make my case for realistic,
incremental goals.
Game Design

Via @HobbyGameDev on Twitter I


asked people why they haven’t
started yet. For the most part the
responses helped me better
understand challenges new game
developers were experiencing. I
love these community interactions
since they help keep me firmly
connected to people’s real needs.
Although I was able to field a
number of exchanges with just an
@reply tweet or two, the most
important one to address that
couldn’t fit in that space is
perhaps this exchange:
209
believe this is worth addressing
directly. That this is still a fairly
I want to be clear that I am in
common way of thinking for
absolutely no way intending to
people getting started out seems
draw any negative attention,
to me a sign that it hasn’t been
attitudes, or ill-will toward our
suitably explained, or at least not
good friend in the world, Orange
yet in a place that’s easily found
Rectangle (or O.R., for short). I
by those who are looking.
asked my question with the
specific purpose in gaining a I offer the following to our friend
better understanding of the O.R., and of course to others who
challenges people were may share his mindset:
experiencing, and O.R. then
offered an answer in good faith to
help me. I attempted to offer some ♦
real details (those numbers are
from Uncharted 2, by the way) in
Dear O.R.,
the sincere hope that this might
help lead to a startling realization. I’m not saying you can’t or
shouldn’t. Maybe you’ll pull it off.
It did not.
That’d be awesome. More power
If I thought O.R. was just trolling, to you.
I’d simply ignore or block them to
I suspect many people doubted
prevent any further attention being
Notch when he started work on
stolen from the many people out
Minecraft. Although by that time
there who are really interested in
he had already been programming
making videogames. However I’ve
for 25 years. People were
met and spoken with enough
probably skeptical of the team that
people face-to-face sharing a
made Angry Birds. That may have
mindset similar to that of O.R. to
just been extrapolating from the
210
51 games that Rovio made before developers at some point bite off
that project became a new more than they’re ready to chew,
standard for mobile gaming. The for at least one project, and can
success of Super Meat Boy was sometimes take away from that
not guaranteed. However Tommy experience some helpful concepts
Refenes had been making games for later. For me that was Guinea
for 18 years before that, Pig back in 2004.
and Edmund McMillen, Tommy’s
So, with that in mind, why not just
collaborator on the game, worked
attempt the dream game first, and
on 14 finished games before
if it doesn’t pan out, just learn
Super Meat Boy (including its free
some lessons in the process?
Flash precursor, Meat Boy).
Here are a few reasons that I think
Even with their accumulated
should at least be considered.
experience, these now famous
developers still didn’t make
games with the look and
feel of a modern Call of
Duty or Uncharted. From a
technical, team size, and
content creation
standpoint, Minecraft,
Angry Birds, and Super
Meat Boy are tremendously
less complicated than
either a Call of Duty or
Uncharted sequel (let alone
a brand new intellectual A screenshot from Guinea Pig, for which my engine used skeletal
animation (authored by a custom tool), clothing and skinning, blood/
property). bullet decals, real-time fully destroyable terrain, dozens of weapons
types, parallax, dynamic fire, hi-res “mode 7ʺ″ semi-3D effects…
Many videogame
211
WHY NOT START WITH UNCHARTED/COD steps means instead of productive
I’d like to make a case here for
edge learning atop a solid
why those tutorials don’t start with
foundation, a person instead tends
a Call of Duty or Uncharted style
to wind up with sloppy, ineffective
game (let alone a variation with
actions detached from the many
world building and other additional
lessons figured out by prior
features), and instead focus on
generations.
games like Pong or Asteroids.
While I do not claim to be a world
In Daniel Coyle’s The Talent Code:
class expert, as Coyle’s subjects
Greatness isn’t Born he talks a lot
are, I have enjoyed some
about deep practice, or edge
recognition for my commercial
practice. As a takeaway from his
videogame work, which started
multi-year international study of
more than a decade prior by doing
what world class experts in a
exactly the same kinds of simple
variety of disciplines consistently
historical game remakes that I
do to get there, he explains:
consistently encourage others to
“…you can capture failure and turn it into try when starting out. By starting
skill. The trick is to choose a goal just
beyond your present abilities; to target the
struggle. Thrashing blindly doesn’t help.
Reaching does.”

Or, if I can reframe that in terms of


a more widely recognized system
of incremental learning: no matter
how strong, flexible, and quick
someone is, there are still steps This Pong remake was some of my first experience
that they need to progress through with AI. Around the time I was playing (and
modding a bit for) Quake 2. I wasn’t crazy for retro
in order to earn a black belt in games – I didn’t even play Atari’s original Pong until 8
karate. Skipping over essential years later – but I was interested in creating games
that I could finish and strive to make well.

212
small and moving toward the ability to pick myself back up
increasingly complex games, a and promptly get back up to full
solid foundation of applied design speed on new projects when that
principles and practical coding one didn’t pan out.
habits can be formed
This progression of foundational
incrementally, with lessons picked
skills was also a central
up along the way that are
philosophy to both videogame
appropriate in size to be learned
development clubs I helped start:
from.
before someone has been a lead
Over the years I’ve now seen a or solo developer for a game of
number of people massively early 1980′s-gameplay complexity,
overshoot their means on an early they’re typically not ready to lead
project and fail spectacularly. In a team of others on a game of
most cases that unfinished game late-1980′s gameplay complexity,
is the last one they work on, never and so on. This begins with late
fully recovering from having dug a 1970′s scale: Snake, Breakout
pit of embarrassment and fighting (not Arkanoid, that’s mid-80′s!),
through considerable frustration Asteroids, or Space Invaders.
every step of the way. Getting
some practice before diving
headfirst into these kinds of
undertakings can help steel us to
the complications that they entail.
For example, by the time I bit off
more than I could chew on Guinea
Pig, I had already completed more
than 15 other smaller games in the My first graphical game was based on the late 1970ʹ′s
game Snake. Again: not because I grew up with it – I
years prior. That steady was born in 1984 – but because in terms of game
momentum beforehand gave me mechanics and programming it was a realistic start.

213
For those developers that truly are BEING UNPREPARED ISN’T BRAVERY
As my friend Nicholas Brown
extraordinarily efficient and clever,
commented:
who say “that’s so easy, why
bother?” I have two responses: (A) “Shooting high and learning from it is nice
that’s grand, then you’ll have no but at a certain point you’re trying to shoot
problem knocking it out in 30 down an airplane with a bow and arrow.
It’s just not going to happen and you
minutes, or in an evening at most,
probably won’t get anything useful out of
after which when you come back
the experience. Saying ‘that project is out
with it completed you’ll have of my scope/skillset’ isn’t fear, it’s good sense
impressed and earned the trust of as a developer.”
more potential collaborators. And:
There is a certain amount of
(B) even if you know how to get
fearlessness, unreasonableness,
started, and know that you know
and boldness that successful
enough to work your way through
entrepreneurs, innovators, and
it, going through the actual
cultural leaders of all kinds have
process of doing so will involve
had at their core. However, the
sorting out some details,
fact that some amount of
processes, unexpected
fearlessness is a factor in success
complications, and chunks of
does not automatically mean that
code that will together speed up
an even greater amount of
and simplify working on the games
fearlessness linearly correlates to
you take on later.
greater success, nor that it’s the
Being able to do something and only factor. Bold leaders still need
having actually done it are not the a viable strategy, considerable
same thing. In particular, after experience and connections in the
you’ve already done it you’ll have relevant domains, and a certain
expanded the domain of what dose of patience and discipline
you’re ready and able to do next. underlying their persistence and
determination.
214
At the heart of Coyle’s research in resemblance or fit to the first ones
The Talent Code mentioned earlier attempted. Because of that rapid
is the idea that we can learn most learning, going in this case from
from those experiences which are one new painting attempt to
just beyond our reach. That’s at another gives practice and
the core of deep, edge practice. opportunity to rethink the initial
When we extend ourselves greatly decisions, and will likely work out
beyond our past and present much better than just spending all
proven capabilities, there are often of those months retouching the
too many convoluted ways to very first painting started.
make mistakes for us to figure out
As Coyle (again, from The Talent
how to make sense out of what
Code) explains about the famously
isn’t going right, let alone to learn
talented and accomplished Brontë
from it.
sisters in relation to their work as
FIRST PROJECTS ARE ALWAYS ROUGH novelists:
We tend to learn most rapidly
“…the myth Barker upends most
when we’re still very new at
completely is the assertion that the Brontës
something. Anything about the
were natural-born novelists. The first
field can be absorbed as new little books weren’t just amateurish — a
learning. We quickly overcome the given, since their authors were so young—
awkwardness and inefficiencies in they lacked any signs of incipient genius.
dealing with whatever Far from original creations, they were
development environments, bald imitations of magazine articles and
programming languages, and books of the day, in which the three sisters
and their brother Branwell copied themes
content tools we’re working with.
of exotic adventure and melodramatic
If you put a few months into
romance, mimicking the voices of famous
learning how to paint landscapes a u t h o r s a n d c r i b b i n g c h a ra c t e r s
well, your work at the end of that wholesale.”
time would likely bear no

215
Because our first work is inevitably reasonable chance of not finishing
rife with beginner errors from or finishing well).
learning as we go – even world COMPOSING WITHOUT PLAYING FIRST
famous authors first wrote When someone wants to play
amateur junk – insisting on making piano, do they begin by
an idealized dream project as your immediately composing original
first undertaking is unfair to the works? I don’t doubt at all that in
vision, condemning it to be rife the history of all civilization there
with beginner errors. This is are people who have tried to do
instead an ideal time to that. Generally, though, we have
experiment a bit with modeling the not heard of them or their work.
proven past successes of others
We start with learning a bit about
(those that are reasonably
notes, sheet music, and scales.
achievable within our means),
We build up to childishly simple
including simple historical cloning
sequences like Mary Had a Little
as a form of initial practice and not
Lamb. We move up, through
as a shady business scheme. The
consistent and focused practice,
Brontës started that way.
to trying to merely perform well
I’d say try getting some of the junk some the more advanced classical
of your system first on titles that works far before trying to
can be finished far sooner, aren’t compose our own.
as personally important (read: not
The reason we see so many
yet highly original), and won’t
introductory materials about
involve pulling others into the risk
games like Pong and Asteroids –
involved (even if not risking your
including the Hands On Intro to
and their money, then at least out
Game Programming (my own
of care and respect for their time
approach to that path) – is
in something that has a
because those are the Mary Had a
Little Lamb of videogame creation,
216
a tried-and-true way for someone what is typically expected of this
new to game development to get ship type.
oriented and learn to perform full,
While it’s true that we don’t have
simpler classics before trying to
many of the same material
become the next Bach or Mozart
constraints and labor challenges
from day one.
as ship builders, what we are
BUILDING AN AIRCRAFT CARRIER… FIRST unavoidably faced with are literally
Where the above music analogy
millions of design, artistic, and
breaks down is that composers
technical decisions, from the very
are often able to write music
large to very small, which we have
primarily alone. While that is true
to make about everything in the
for a subset of videogames, it is
game.
not the case for the size and
scope of videogames that you’ve Faced with all of those decisions,
identified as your target. making them well at every step
either means having the
If someone is interested in making
experience from enough variety of
a boat and decides that the kind
past projects to make informed
of boat they wish to design is an
tradeoffs between alternatives
aircraft carrier, that’s necessarily
(which is why teams generally
going to require a massive scale of
want professionals experienced in
teamwork, money, experience,
videogame making, not just
earned trust/credentials,
people who “can program” or
compromises, and a lifetime of
“know Photoshop”), prototyping
work leading up to that point. It
like crazy to find even a few small
either won’t be the first ship they
innovations that work, or adhering
work on, or the rushed result will
fairly strictly to conventions.
involve so many compromises that
it will not come anywhere close to However, note that even
companies filled with experienced,

217
full-time professionals creating game idea.” This is in regard to
massive games that do adhere to what you’re calling your “secret”
most conventions of their genre that you suggest will, alongside
still manage to go through $20 world building, set your first game
million just to get their game done apart from Call of Duty and
and complete. These companies Uncharted.
are in the business of maximizing
I often introduce this concept to
profits and minimizing costs, with
others with an example like this:
both internal and external
pressures to figure out ways to do “I’m going to make the world ’s best
painting. I have an idea way better than
more and better work with the
the Mona Lisa. That one’s just a picture of
lowest possible expenses.
some girl.”
It still costs them $20 million or Most successful games aren’t a
more to make what may appear to particularly genius idea.
be a formulaic and relatively Conceptually they’re usually pretty
straightforward followup to an blatantly derivative but are
existing franchise (note that the polished in their execution to an
actual changes and additions amazing degree. When the idea is
involved are often quite complex, at least unusual, perhaps one that
but the differences may be difficult has been done before but not well
for someone who is not on the enough yet to achieve widespread
team to fully appreciate). commercial significance and
AN IDEA IS ONLY AS GOOD AS ITS EXECUTION recognition, at best that concept
One of the other common themes serves as a marketing point to get
that arise in advice from people talking about it. But people
experienced developers for others generally don’t keep playing a
just starting out is along the lines game, nor recommend a game to
of “ideas are a dime a dozen” or their friends, based primarily on
“no one cares about your great whether a game has an interesting
218
idea, unless it also has world-class experienced developers, legal/
execution and refinement. business personnel, and support
Provided it’s got world-class staff along with paying for
execution and refinement, an sprawling office complexes, retail
interesting or original idea is often distribution arrangements,
not even needed. television/billboard advertising
PICK A FIGHT YOU CAN WIN budgets, etc.
Sometimes there’s a confusion
Part of the way this all holds
that because one or two indie
together is that even though a few
games succeed financially in a
individuals (out of the many, many
genre previously thought dead
more trying) might make enough
(point and click adventure, for
money to pay their own costs and
example), or with a very weird type
then some, it’s still often far from
of game (much of what’s found in
being something that the big
IndieCade or IGF), those games
studios can take seriously as a
have been proven to be
business opportunity.
economically viable after all.
In 2010 I made a strange iPad
The underlying misunderstanding
entertainment app that paid my
though is that what may be a
rent for 18 months. That registers
tremendous amount of money
as a medium success – weirdly
when split only 1-8 directions
putting me somewhere in the
among a small team of indie
upper percentile in terms of return.
developers working out of their
While it clearly didn’t make me
homes or a tiny shared office does
wealthy (my rent at the time wasn’t
not even show up on the radar of
much), many more developers
the kind of money that AAA
lose considerable sums of money
companies burn through in only a
or generate very tiny revenues in
few months of salaries for massive
the range of fewer than dozens of
teams comprised entirely of
dollars from ads, virtually non-
219
existent sales, etc. Also, as a fair on what they have solid evidence
warning: the App Store was to think will make a sizable return
definitely a lot less of an over- on their investment. Projects that
saturated mess in 2010 than it is don’t meet that goal get
now. (Speaking of which, back in eliminated. They’re a business.
2008 I developed a game for the
This is why when we see
app store that earned
advanced indie developers
considerably more than that… for
succeeding commercially, it’s
the publisher, which is how I
usually not by doing better at what
learned a lot about being the
the big companies are in position
weaker party financially in a
to do well, but instead from some
negotiation.)
combination of strange projects
Anyhow, for perspective, a (with regard to their execution,
massive publisher pays their CEO often not in the main idea; i.e. tons
more money than that 2010 app’s of personality in an otherwise
total earnings in what calculates to relatively simple experience), retro
about 24 hours of their time. genres that the AAA companies
That’s not including the salaries of haven’t been able to justify for 10+
9,000 other people, the costs years due to the shrinking level of
associated with massive facilities, market demand for such games,
or the remaining mountains of or the intersection of both
money expected leftover for (meaning tons of personality in a
annual profits, etc. They have truly retro genre that has otherwise lost
staggering ongoing costs to keep most of its market significance).
up with, which means they can’t With the rare exception of some
afford to take risky chances on mod teams that quickly get
little weird stuff, or on genres that swallowed up into the machine
are no longer desired by and vanish for years doing polish
mainstream players. They deliver work, indies stick to guerrilla

220
tactics in niche domains that the be followed by variations from
huge companies can’t justify competitors.
meddling in.
But what about something like
It’s not a matter of purely creative KickStarter, in which customers
vision that Minecraft is built out of prove that they’re there before
1-meter cubes textured with pixel development even begins? The
art, instead of having the look and space is filled with people that,
feel of Uncharted or Call of Duty. because they’ve never had to
It’s small team resourcefulness. work with a real budget before,
tend to not know how to schedule
and plan a commercial project.
If KickStarter sounds like freedom,
it’s worth looking up Code Hero,
which raised $170k, well past their
$100k target. I’ll spare you the
web search, and share the major
Minecraft is basically 3D pixel art. update from last year: effectively,
they ran out of money long ago
FUNDING WILL AFFECT DESIGN
Getting funded does not mean and are now an entirely volunteer
that you have the freedom to effort. They appear trapped with it.
design your perfect game. When WHERE I’M COMING FROM

money gets involved, it tends to Although I started as a hobbyist,


influence what gets made, even returned to being a hobbyist, and
when sometimes only out of some help other people get into
crude evolutionary feedback loop videogame making as hobbyists,
where the games that do well in a what I’m suggesting about the
given market space tend to soon nature of huge commercial-scale
videogames is not just guesswork.

221
I’ve worked professionally as a Being in a position to compare
game designer on the size of those professional and
games and teams that you’re nonprofessional experiences, I can
talking about: games that take say with total certainty that I have
years, 80-200 full-time found infinitely more creative
professionals, and tens of millions freedom in the projects that have
of dollars. I’ve also worked no budget or funding than I’ve
professionally as a game designer seen in working on games with a
at other commercial scales: at a big budget.
casual games start-up, in a
That applies no matter whether I
gameplay R&D company, and as
was being paid steady salary,
an iPhone game developer both
hiring/paying/leading a team of
independently and through
others, funded by outside
publishers. I am familiar with at
investment, or even when
least a cross-section of
completely self-funding projects
commercial videogame
and theoretically having total
development.
directorial control. Games that
More importantly to this exchange cost money to develop have a
I have also, with zero budget, certain obligation to prioritize
served as a lead or solo developer earning (at least) that money back,
on more than 85 completed which places certain inflexible
freeware games with 3-18 month outside demands on the work.
production schedules, and MAKE FINISHED GAMES. WITHOUT FUNDING.
hundreds of same-day playable There are ways to make
prototypes. Some of those were videogames that don’t require
for class projects, some were getting anyone else’s approval,
created in clubs that I established, taking anyone else’s money, or
and many were just developed on handing over veto control to your
the side. design ideas.
222
It takes time and a lot of work.
There’s no easy shortcut to it. But
it is a way.
That way is to start small, building
your way up from modest
beginning principles based in
time-tested classic designs,
toward the point where you’re
prepared to do your more grand
and elaborate game ideas justice,
so as to have to ability to realize
them without making
compromises in service of
financial obligations.
In other words, the way is to make
videogames for free for awhile,
incrementally advancing your skills
and design understanding with
each new project.
If however you choose to still push
on the route of seeking substantial
external funding, especially
without any track record yet of
completing any simpler games, I
wish you only the best. Good luck.

223
SE C TI ON 2

Bottom-Up vs Top-Down Game


Design
There are infinite ways to
do and discuss design work.
A key concept to ground us
is that there’s a continuum
between how much your
game comes from a central,
planed idea as opposed to
growing out from its parts.
Game Design

There are a few things that I would Bottom-up design starts from
like to say about bottom-up what a medium can do, and
design, compared to top-down shapes that into something a mind
design. Before I can do so, I want wants.
to make sure that we’re on the
For example, a top-down art
same page as to how I use those
process might begin by thinking, “I
terms – they mean somewhat
want to create an image of
different things to different fields,
Napoleon, in a way that conveys
and I suspect it’s likely that some
great intensity – this concept is
readers have never yet come
worth attempting and sharing.”
across these handy terms for
The artist would then create the
discussion.
most complete or faithful
Top-down design starts from what realization of that idea possible,
a mind wants, and shapes that using whatever tools and format
into something a medium can do. the artist is most proficient in
224
Impression, Sunrise by Claude Monet
Concept inspired by or chosen partly by its form of
representation
Examples: Mario Bros, Pac-Man, Asteroids

particular effect – I will find a


Napoleon crosses the Alps by Jacques-Louis David
Emotive representation of an existing concept of subject that emphasizes the
interest beauty of this effect.” The artist
Examples: Call of Duty Modern Warfare, Madden
would then seek a technique and
(might be charcoal, oil paint, or 3D subject particularly well suited to
Studio Max). The goal is to realize make the most of what effect the
an idea, and if it can be made less artist’s tool and format convey.
evident that this is done by oil The resulting work is as much or
paint applied to canvas, by more about the paint and canvas
making its focal point what it is itself as it is about the subject
showing instead of method by matter; the grain and texture take
which it is shown, that is desirable part in the creative process,
in this case. somewhat like a sculptor carving
stone in a way that not only
A bottom-up art process, by
considers existing fracture lines,
contrast, might begin by thinking,
but perhaps even calls attention to
“The texture and shine of oil paint
them.
on canvas produce a very
225
Naturally, there is a continuum, or
smooth gradient, between these
ideals. It is not as simple as being
one or the other. By virtue of being
represented through a medium,
the work will necessarily account
for constraints and affordances of
how it is made; likewise, by being
the work of a human being, it
inevitably will come into contact
with how the human mind
conceives of reality. There is a
significant difference, however, in
whether the work starts mostly as
a chosen idea or mostly through Shimmering Substance by Jackson Pollock
It is itself, not a representation of some other idea
exploratory execution, and that Examples: Qix, Peggle, Bejeweled, Tetris
difference is generally evident in
the end result. toward the bottom-up side of the
spectrum.
As a rough test: if a description of
the project sounds normal to For example, Bubble Bobble is a
someone that doesn’t play game where two dragons trap
videogames (or, in our ongoing toys, witches, and drunks in
analogy, study art), then it is bubbles to pop them then eat the
probably top-down. The more fruits, vegetables, and candies
eccentric, absurd, and arbitrary that fly out, though if they take too
the description of what the player long then the ghost monster
does (or what a painting is chases them until they either die
“about”), the further it probably is or kill the last enemy – that’s
bottom-up, because the game

226
mechanics clearly were not sort of interesting things can we
invented to support that do with this Wii Remote?” That
haphazard concept, but the other was bottom-up design. When
way around. The same is true for people began thinking in terms of
Super Mario Bros, Joust, or designing games for iPhone that
Breakout. It’s not primarily about used multi-touch, gravity data,
wish fulfillment, like being a saved photos, or GPS, that was
superhero that fights crime or a also bottom-up. The first racing
soldier that wins the war for games were made partly because
freedom – it’s first and foremost racing is cool, but mostly because
about how what’s going on is that was one of the few things
going on, the what being videogame machines at the time
secondary and subservient to the could represent. Likewise for
how. The texture of the space-based shooting action – an
“paint” (software) and all black background with no
“canvas” (hardware) are central to buildings or flora to collide with
what these videogames are, and was the sort of thing primitive
celebrated instead of hidden. devices could represent.
The continuum extends farther off That Pong is a crude
in both directions, too. Miles representation of “tennis” instead
below my previous example of of football or baseball was not a
bottom-up, but in that same matter of its designer being a
direction, an artist might think, tennis player, nor was it being
“The texture and shine of oil paint designed to satisfy tennis fans.
produce a very particular effect – I
Racing the Beam by Ian Bogost
will explore this effect,” thus
and Nick Montfort provides a brief
abandoning subject altogether.
history of how the Atari 2600
When the Wii came out, hardware limitations influenced
developers began asking, “What (and in many cases inspired) the
227
games designed on the platform. innovative controls and graphics
Yars’ Revenge was co-designed (vector to raster was as huge a
by Howard Scott Warshaw and shift as 2D to 3D), there is nothing
what-an-Atari-2600-can-do. ancient, unsuitable, or undesirable
about bottom-up design. Part of
By contrast, when the PS3 came
why I opted to show the paintings
out, developers felt less
is that the Napoleon is from 1800,
constrained than ever in terms of
Impression is from 1872, and
computation, and began dreaming
Shimmering is from 1946 – that is,
about how they might share new
it took a lot of time, genius, and
stories (Heavy Rain,Metal Gear
creativity for humankind to reach
Solid 4), fantasy characters and
the sort of bottom-up, format-
settings (Batman Arcane Asylum,
inspired thinking that the earliest
Final Fantasy sequels), and
videogames employed.
appealing concept pitches (make
your own physics game in Little An inexperienced game designer,
Big Planet). That’s top-down. yet unfamiliar with the grain of the
machine – what impressive things
When a modern videogame is
it can very easily do well, what
about tennis, racing, or space
somewhat less impressive things it
combat, it is no longer because
can hardly handle, what the user’s
that’s one of the few physical
relationship is like to the
events that a computer can
experience through the set of
process and display.
controls provided – most often
Even though many modern games thinks in terms of top-down
now have the luxurious option of design. We’re all familiar enough
more faithfully representing top- with films and storytelling to think
down concepts, and even though about what happens, where, and
bottom-up has largely taken place to whom in a story, but the typical
at the dawn of platforms utilizing level of procedural synthesis is

228
that which only knows what it likes
when it has tried it, and will thus
“borrow” a mountain of
assumptions about gameplay and
interaction from another game. A
certain sort of confidence and
understanding of the technology
available is necessary for bottom-
up design to even be an option.
Façade by Procedural Arts
It gets awwwkkwwaarrddd.
On this note, to build a clone or
derivative of another game, either than “resembling Napoleon” is
completely or in terms of core rooted in the complete concept of
gameplay, is top-down. The Napoleon that existed before and
elevator pitch for Goldeneye 007 outside of Jacques-Louis David’s
on Nintendo 64 fits in this painting.
category. To paraphrase: “It’s like
An important thing to bear in mind
Virtua Cop – enemies react to
about top-down design is that,
where they are shot, and the gun
despite the remarkable hardware
can move freely about the screen
advances of the past several
– except not on rails, and it takes
decades, we are still a long, long
place in the James Bond universe
way from being able to take a
with the player completing
purely top-down approach to
missions as James Bond.” Making
videogame design. Façade is the
a videogame version of Monopoly
closest thing that we have to The
or soccer is top-down, of course,
Great Gatsby – or maybe The
but so is making a game “like
Sims or Second Life are no further,
Super Mario Bros” or “like Tetris“,
coming towards it from different
even if the original game’s roots
angles.
were bottom-up design – no less

229
percentage of the world that can
be interacted with, and the
solutions to challenges will either
be those that we explicitly
planned, or possibly some slight
variation by clumsily moving
objects around in the game’s
exaggerated physics.
Top-down is unlikely to free us
Half-Life 2 by Valve. We were quite excited in 2004
when there was 1 room in a game where it mattered from limitations, because by its
that objects have weight. The gravity gun and physics
gameplay were bottom-up design within an otherwise
nature it echoes better than it
top-down world. speaks. It adopts the additional
constraints that shaped previous
Even though PS3 and modern
gaming and story conventions
computers give a lot flexibility to
much more naturally than it
think in terms of, “Imagine a world,
pushes the boundaries to test
in the distant future, where…”
where they end.
there’s still a few qualifying
sentences implied after that: “In Innovation – particularly the
this magical place, all characters surprising, unintuitive innovations
will repeat the same things if that no one could have seen
spoken to multiple times, they’ll coming – tend to come from
have a small set of awkward bottom-up. It is no coincidence
poses they can switch between to that the genrification of the
convey expression, and the player industry, the attack of the clones,
will speak by choosing statements has coincided with the increase in
from a list of 3-4 pre-written hardware power inviting more top-
statements. There are only a few down design, while those pockets
things that can be done to interact of gaming that see the most
with the relatively small aggressive innovation – indie
230
games, mobile games, existence results that are not
experimental games, and little web entirely of human origin. The
games – tend to be bottom-up (at medium becomes a co-creator, an
least, those that don’t rely heavily inanimate but unyielding creative
on appeal to retro fandom). partner, arguing for or against
ideas thrown its way by what it will
The imagination – the source of
and won’t agree to do.
top-down – copies but
personalizes, mixes and matches A top-down development team
what it has already experienced, strives to create as perfect a
or even when it thinks it is finally realization of their concept as their
being clever and original, has been available platform technology and
swept up by the zeitgeist of skill strengths can support. The
whatever recent films, best sellers, hidden member of their team is
and news stories have everyone the work that has been done
thinking about. There is, of course, before them, by bottom-up
a market for this; people like pioneers, and they benefit from
what’s recognizable, and people the market’s feedback on past
like getting what they’re looking products.
for. But as the top-down market is
A bottom-up development team
predominantly derivative, from a
strives to discover as perfect a
creative standpoint it’s more like
concept for the platform
being a translator than like being a
technology and skill strengths that
writer. For the craftsmen and
they have or can learn. The hidden
artists among us, it is not our
member of their team is the
desired line of work to make
technology itself, and though they
variations on other people’s work.
don’t have the same benefit of
With bottom-up the constraints, borrowing from the past, everyone
limitations, and natural texture or benefits when they help create the
grain of a medium push into future.
231
SE C TI ON 3

Photographer's Algorithm

This is the center of design


process! Only so much can
be figured out ahead of
time. Iteration only makes
things into nicer versions of
what they started as. Make
many start options, then
keep and refine the best.
Game Design

Professional photographers, even Likewise, no matter how


with the best training, the best experienced you are, no matter
equipment, and ample experience, how good your tools are, and no
still take many, many more matter how clear of an idea you
photographs than they wind up have for what you’re doing, in
keeping. There are too many matters of design there are usually
factors, variables, considerations, countless factors involved, and
and subtleties to simply go counting on getting something
someplace, take the “right” photo, done the best possible way on the
then call it a day. They instead first attempt is unrealistic. It’s not
take a ton of potentially right good design to rely on luck as the
photos, then compare them mechanism for identifying a solid
against one another to pick the initial effort to iterate further upon.
best to keep. Try minor and major variations, but
also try some designs that are
232
completely different, built from being overly careful about which
wildly different strategies or initial direction is tried, and that time is
assumptions from the ground up – invested instead in just creating
whether we’re talking about levels, multiple different options that are
weapon tuning, game economy, AI far enough along to be
scripting, or otherwise. meaningfully assessed, there’s a
lot less guesswork involved. It
People with traditional design
takes some of the luck out of it.
backgrounds probably take for
granted that this process happens Make several variations. Keep
in all design. Designers doing then clean up the best. Throw
product design, package design, away the rest.
t-shirt design, and so on are used
That was my process for Boom
to quickly trying out dozens of
Blox levels, Shotgun Debugger
different ideas and tossing most of
levels, Vision by Proxy: Second
them out.
Edition levels, Vectorverse levels,
However most gameplay and more.
designers don’t have a
traditional design
background. Because
much our work, even at
a prototyping level,
often involves a sizable
time investment,
people get lazy about it
and start to act like
there’s only time to do
one, instead of making
several to keep one. If
less time is wasted
233
As Fried and Hansson
say in Rework, “Be a
curator… What makes a
museum great is the
stuff that isn’t on the
walls; what makes a
museum great is there’s
someone saying ‘No’ to
things.”
Curate like a
photographer.
Don’t make just enough and then Several of my iOS apps were
find yourself stuck with the worst designed as highly polished
of it. A good tool isn’t only suited versions of carefully selected
to rapid iteration, but also to rapid projects out of my 219 daily
exploration, to figure out through experimental gameplay projects.
experimentation what’s worth Think about that for a minute: I
further iteration. spent seven months having
No matter how good you are at virtually no social life in order to
what you’re doing, the best 40% make that happen, then I filtered
of your work is better than the out 98.6% of it. But of those three
other 60%. Working with that plan small apps, one led to my series
in mind to edit aggressively can winding up on JayIsGames, one
free you up considerably to take was a finalist showcased at
chances that you might not take if IndieCade 2010, and the other
you always create with a sense paid my rent for a year and a half.
that you’ll be stuck with whatever There are actually similar stories
idea or direction is first attempted. for other developers that led to the

234
more commercially well-known accomplished nearly any other
games Crayon Physics (from a way. It allows direct comparison,
series of 1-month game in-engine, in-play, between
prototypes) and World of Goo potential results in a way that’s
(from a series of 1-week game otherwise simply impossible to do.
prototypes).
If you’re having trouble deciding
what to throw away: come up with
some simple weighted criteria
(these can be subjective values –
“understandability,” “aesthetic
appeal,” “fairness,” “spectacle” –
weighted to give some criteria
more emphasis than the others),
score each attempt you’ve made
from 0.0-1.0 in each column, find
the weighted sum to rank those
scores, then throw away the
bottom X% of your attempts,
where the greater you can make X
and still get away with it, the
better. It’s a handy way to make a
rational decision when your gut is
telling you that you want to keep
all of them for different reasons.
But use the Photographer’s
Algorithm, and you’ll consistently
wind up with something much
better than you could have
235
SE C TI ON 4

A Little Planning Can Go a


Long Way
How to best follow a section
about the limitations of
creative planning? By
acknowledging that there
are times when planning
really helps! It can’t ever be
perfect, but it’s important to
not ignore it altogether.
Game Design

Over-preparation is often a form of you’re past the point where you


procrastination, about how people need to follow tutorials to make
over-complicating everything, and anything, after you’ve maybe
of course, I frequently advise cloned a game or three and are
against starting by writing up 20 shifting toward doing your own
page design documents, in favor thing. Suddenly situations will
of making a mock-up screenshot arise where the blocking issue
then programming just enough to between you and moving forward
bring it to life, with at most a one is the need to sit down and plan a
page treatment of gameplay and little.
basic theme notes.
Mistakes will be made.
But I don’t want to overstate the
Over planning is going to happen.
case! Especially after you’ve
gotten over learning some of the But making those mistakes is the
essential skills and ideas, after only way to learn how to avoid
236
them, carefully and narrowly, in called Brain Puking). The sky’s the
your own future. Even if that limit on what the step might look
mistake happens to be like or might be. But consider that
overplanning, sure you’ll be a step may be missing, look for
relearning the same lesson so what it might be, try anything that
many others have already learned comes to mind to see if it unclogs
before, but it’s time for you to be progress and if it doesn’t then try
the one learning it! And, sure something different until you’re
enough, people will still need to able to move forward.
learn it after you’ve figured it out.
The danger of excess planning is
When someone gets stuck, usually a result of someone trying
whether unable to make progress to come up with a plan who
or unable to get started, it’s often doesn’t have enough context and
a case that there’s a step being practice yet for the plan to
skipped. Look for that step, accurately reflect what realistically
something to use as a stepping can or will happen. The more
stone between where you’re at experience you accumulate
and where you’re trying to get. though, the better positioned you
Think about the additional process become to account for your future
steps that you introduce to any development a useful, productive
other kind of creative or problem way. This includes foreseeing
solving process, since videogame some likely sources of
making involves both. Brainstorm, complication in advance and
concept map, rough draft, sketch, already possessing some
storyboard, diagram of the strategies and fallback plans for
problem, draw up a map, write how to keep rolling – even
enough down until your mind is developing a comfort for how it’s
clear of whatever’s holding it up not always a problem when plans
(something an old teacher of mine and reality diverge, as long as the

237
right things are still falling into It may be as simple as writing
place. down a half page plan, first as an
unordered list of what’s left to be
Excess plans can get in the way of
done, then rewritten a second time
beginners, becoming an excuse to
ordered by which sequence will
work on something other than the
make the most sense for you
game. Lack of plans can get in the
going forward.
way of more experienced people
with more ambitious targets. At Just because a plan needs to end
some point that’s a necessary but up short doesn’t mean it needs to
difficult transition to go from be short at first and only ever be
planning being a misuse of time to short, sometimes like the process
planning being a necessary use of of overproduction (or the
time. Photographer’s Algorithm) it can
help to begin by getting it all out of
Here is where planning really
your system and putting too much
begins to be learned, and not
down, then going through it to find
because it’s some abstract,
highlights of what’s really worth
artificial, bureaucratic exercise that
saving form all that.
we’re told to do before we’re
allowed to start the next part. We And though I keep saying write it
learn – and this is actually kind of down, let me stress that I mean
exciting – because you actually exactly what I’m saying here:
can derive real utility from doing it. you’ve actually got to write it
You need something to happen, down. Information in our head is
but until you jot a few of the right too easily changed every time we
things down, it’s simply not going think of it. Digital files are far too
to happen. That’s kind of crazy, easily changed, or far too easily
right? ignored by being tucked away
where we won’t see them since
they take up zero physical space.
238
When I say brainstorming, important to put on the producer
concept mapping, scheduling, hat and work out a list on
etc., that’s really something to be whiteboard or paper about what’s
put down on paper. If you’re more left to be done, and out of that,
comfortable working in a digital what should happen, by when,
format – and I know this can just to know at least what to do
sound like heresy in 2014 – print it next.
out and put it where you’ll see it.
There’s a reason large teams tend
Again because it takes up physical
to have producers, and if your
space it’ll get in your way, it’ll
small team or solo effort doesn’t
remind you, you can’t as easily
have a producer, one or more of
deny it or easily change it. Trust
you is going to need to fill in that
me on this, if it’s the difference
role from time to time, ideally, at
between your project stalling out
least a little bit of every day that
from paralysis, or getting done,
something is supposed to be
then it’s a darn good use for one
making progress on your project.
sheet of paper.
Feeling a bit overwhelmed at all
Sometimes it’s true that in order to
the options? Not sure what type of
make progress, you need to just
chart or graph or process to
sit down and put the time and
apply? Then let’s keep it simple,
work in, writing code, churning out
here are two specific planning
art and audio assets, iterating on
instruments that, used in
level layouts. Even if there’s a
conjunction, can be used to
problem you’re going to run into
bulldoze through nearly anything.
you need to work on that problem
up until the point at which you’re (1) Make a high level – meaning
stuck in order to ask for help from non-detailed – list of what’s left
someone productively! However that needs to be done for the
other times, it can be just as project to be considered finished.

239
Your goal in making that list is to yourself up over it. One of the hard
make it as short and skills you’re learning in this case is
uncomplicated as possible. Don’t how to plan and estimate your
list any nice-to-haves on it, put work more effectively. That’s
those on a second list to, which another type of skill alongside
realistically you’ll never look at doing it.
again ever, because if you find
It’s a steady plan to wrap up your
yourself suddenly having oodles of
game in some form, even if it’s not
time later to reinvest in the project
exactly what you originally had in
you’ll probably have better ideas
mind. Sometimes that can even
then anyhow of how to spend it.
wind up better with a more
(2) Divide that real list of what’s left focused game. Or if nothing else,
to be done up into realistic weekly it’ll set you free to collect your
chunks, so that you’re not trying to thoughts, avoid the guilt and lost
get it all done at once immediately learning opportunity of an
– too much pressure! – nor letting unfinished project, and move on to
yourself put it all off until the last the next thing in a finite period of
week – which is just not going to time.
happen! That is your new
Want another simple planning idea
schedule now. Maybe you had a
to turn to? If you find that when
schedule before. This is now the
the day is gone that you can’t
schedule.
account for where the time went,
Be flexible about it, swap order of devise a way to add more
things if it makes sense to do so structure to your time, and break
by bartering between weeks, and your weekly goals further into daily
if in the process of making goals, or even further into: 1
continual forward progress it tangible thing you’ll have done
doesn’t go quite as fast as you before lunch, 1 tangible thing
optimistically hoped don’t beat you’ll get done in the afternoon,
240
and/or at least 1 tangible thing irresponsible, it is! Even more so
you’ll get done for the day before when other people are onboard,
letting yourself crawl into bed. planning has to be part of doing.
Stuck, or finding you’re not Don’t let unwillingness to find a
progressing on a chunk? You’ve pen or use a few sheets of paper
got to break that chunk down keep you from making forward
further, you’re probably still trying progress. It’s still important to not
to bite off too much at one time to get sidetracked into burning
chew. You’ll choke. The metaphor energy coming up with fantasy
exists for a reason. plans that’ll never happen, but a
short bit of written planning may
Let’s try on another metaphor:
be just what’s needed. Figure out
you’ve got to be doing the
what’s left to do, break those
programming, design, and art, just
chunks into spread out weekly
like a road trip is about driving.
objectives, and when you swap
You’ve got to be behind that wheel
your producer hat back for your
and driving. But making yourself a
designer/programmer hat, have
map, and thinking ahead a bit
some trust that producer you
about how much you’ll be able to
knew what he or she was doing
handle in each stretch, or where
when the weekly schedule was
you’ll be able to comfortably stop,
put together as assignments.
that’s a tool and process to
keeping your trip or project on
course to a destination. If you just
sit in the car and hold down the
accelerator you’re going to run out
of gas, almost certainly wind up in
no place interesting, or even
wreck the vehicle with you and
other people in it. If it sounds
241
SE C TI ON 5

Doing More With Less: Short


Videogame Design
When developing a hobby
videogame without a budget
- whether alone or with a
small team - it’s important
to figure out ways to do a
lot with a little. Here are a
handful of different ways
that you can do just that.
Game Design

Rapid advances in computing, and increasingly dominant


design community discourse, and limitation now seems to be
demographic variation continues consumer time and attention
to make game development and within an ecosystem of constantly
distribution easier each year, improving free/cheap
prompting a tidal wave of new entertainment alternatives. Not
games. Although console only is each game competing with
manufacturers historically limited the flood of other quality games,
the number of annual releases, the either – it also battles for attention
internet and smartphone app against the internet in general and
spaces have no such restrictions. pirated media.
Videogames used to be light on This has prompted unexpected
content due to limitations of moves like GameStop purchasing
technology. Then they ran into Kongregate, and Electronic Arts
limitations of budget. The latest buying Playfish. Like it or not –
242
and I certainly have mixed feelings outside games to highlight
about this – the future of the game variations and counter examples.)
industry may look more like The CHALLENGING ENDING FOR SYSTEMS GAMES
Fancy Pants Adventures than Topple (iPhone) was not a long
Mass Effect. Even iPhone app game. It has 10 levels, each of
budgets are shrinking rapidly, and which can be played in 1 minute
they were comparatively bite-sized each. 10 minute game, right?
projects to begin with.
As developers, then, it is
increasingly worthwhile to
strategize about being resourceful
– cleverly finding ways to do more
with less, until we discover ways
to make what we want while
spending next to (or ideally)
nothing.
In the material that follows I will
mostly keep to examples from my
projects – not because they show
the best ways to deal with minimal
resources, but because they show
the best ways that I know
firsthand. If I knew the design or
development of anyone else’s
projects nearly so well as I know
my own, I could focus more on
those, instead. (I will, nevertheless,
try to reference at least a few

243
When the game was released – TOY WITHOUT OBJECTIVE
Burnit (iPhone) / FireWriter (web)
the publisher ngmoco may have
isn’t a “game” – there’s no score,
adjusted the difficulty since – it
points, or goal. Instead, it’s just a
took 40-90 minutes of play to
way to draw with gunpowder, then
complete, due to a mix of luck,
light it (optionally, in Burnit, over a
strategy, and skill required to
photograph). There’s no level 2,
advance. In particular the first 6
there’s no plot, there’s no
levels were designed to be a bit
easier, with 7-10 being much more
challenging.
In a story game, that difficulty
spike would be substantially more
frustrating. It would create the
impression that there’s content
being kept away from the user. A
person buying a DVD expects to
be able to see and hear everything
from it, and a lot of larger games
strive to be associated with film,
resulting in an expectation that the
user bought and thus deserves to
watch all content included. Since
Topple is about systems, rather
than story content, replaying a
level isn’t keeping the player from
seeing the ending – it’s simply
playing the game.

244
expectation set that it needs more MEANING OUTLASTING THE GAME
Transcend (iPhone/iPad) can be
depth or functionality.
completed in 15 minutes. It has
Tumult is a similar example. roughly the same replay value as a
Relative to most iPad apps, there’s book – it’s there for review at any
virtually no content – no time, but won’t behave differently
animations, no music, no story. than it did the time before. In spite
Users aren’t complaining about its of this, user reviews recommend
length, though. People like it. it.
We expect songs to be 3-5
minutes long, movies to be 90-120
minutes long, and television
shows to be 22-45 minutes –
whether we get them from the
bargain bin, pay full price, or
watch/listen for free. We similarly
expect videogames to be a certain
minimum length regardless of
price. Tumult avoids looking like
it’s trying to be a videogame,
avoiding those expectations.
Those two are not videogame-like.
That’s okay, if our goal is to
entertain, rather than to make a
game. However a toy can be like a
videogame.

245
Rather than focusing on the time
HIGH REPLAY VALUE
spent playing the game in this feelforit (iPhone/iPad) is an artsy
case, the emphasis is offloaded on project, but mechanically it’s built
making a memorable impression. around a novel interactivity
Unusual presentation, unusual concept rather than a sequence of
design approach, and a few dozen content. By presenting a repeated,
highlights pulled from over 15 randomly new situation each
hours of text read from an round, rather than having levels,
influential book in the public
domain (Walden). It ends with a
short “song” juxtaposing half of
the game’s excerpts over a catchy
tune.
My interest was not how the user
would think about Transcend while
using it, or how long it would take,
but rather how and how long the
user may think about Transcend
after.
Meaning doesn’t have to be dense
to outlast the game. Especially if
the game is short. This is how I
got away with Candy. This
strategy also seems to central to
Ian Bogost’s satire game Cow
Clicker.

246
the game cannot be “completed”. WITH VARIED CONTENT, UNLOCK EVERYTHING
This is a theory of what I should
Each time it’s as good as new.
have done, based on what
It’s a skill to be mastered, rather happened. iZombie Death March
than an obstacle course to be (iPhone) has 6 level scenarios –
completed. It doesn’t translate each plays differently, with unique
naturally into challenges of weapons, in a distinct setting, and
different difficulty – they’re all different features. Because the
equally hard until the skill is game had a textual story, I locked
learned, and they’re all equally
decently engaging, a bit like
juggling 3 balls. Had I added two
or three “levels” to it, the game
would be completable or
“digestible.”
(I think this particular distinction,
on a massively different scale, was
one of the design faults in Spore
that previous games from Will
Wright didn’t suffer from. In
SimCity, the player is
fundamentally always doing the
same thing, even if at different
scales, making there no end to
what’s there; in Spore there were –
necessarily – a discrete number of
different gameplay modes, such
that by the time the player was
“trained” in all of them, the game
felt completed.)
247
the levels into an order: level 1 STRETCHING OUT RELATIVELY LITTLE
CONTENT
must be completed before playing Alice in Bomberland (iPhone) is a
level 2, 2 before 3, up to 6. Each hybrid literature/action mash-up,
level only lasts a few minutes, and partly designed around
during which time a random theories about educational
quantity and ordering of zombies interactivity atoms. It’s a dodging
attack, of varying types depending game with 7 types of weapon
upon the level, and in different behaviors to avoid, in front of 8
speed/quantity depending upon
difficulty selected.
All 6 levels, therefore, can be
completed in order relatively
quickly. In that time, players may
not even come to appreciate the
differences between the levels,
weapons, lighting, perma-gore
feature, etc.
If, instead, all 6 levels were made
available immediately after
download, and instead of being a
6-level linear game it was a
random zombie shooter with “6
ways to play!” or “6 Zombie
Minigames,” I don’t think I would
have received as many criticisms
about the game being too short.

248
different backgrounds – yet the • Lots of power-up types. Every
game lasts roughly 3 hours. 1-2 levels, a new item is
introduced to the game.
While this game turned out much
Programming the effects for these
longer than the other “short
items was fairly straightforward,
games” on this list, it does not
and their graphical requirements
have proportionally larger asset
were also very simple. This
requirements. A few design tricks
spreads out novelty over all levels
were used here to squeeze the
in the game.
most out of what’s there.
• Unpredictable ordering of level
• Alice is the only animated
patterns. There are six level
character. All others are presented
difficulties for each of the eight
as paintings holding weapons
character types, creating a total of
during story sequences, which
48 levels. Rather than putting
interact with gameplay via attacks
character types in repeating order
fired from off screen.
like A, B, C, D, A, B, C, D, A, B, C,
• Recolored backgrounds. Each D (i.e. always putting a Caterpillar
of the 8 background images, in stage immediately after each
addition to appearing in its full White Rabbit stage), I instead
color version, also appears in dark ordered as A, B, A, C, B, A, D, B,
(challenging), blue-tint (even C, D, C (like the distribution of
harder), and red (final version, grassy, rails, caves, and water
most difficult). These required very stages in Super Mario World). This
little programming time to create, allowed me to save certain types
but added significantly to the until later in the game, include
variety in visuals throughout the early types throughout until the
game while giving an extra sense very end, and avoids a sense of
of proximity to the end. monotonous routine. Different
players have different level types

249
they prefer or hate, leading to
surprise “Finally! Another Hatter
level!” or “Ooo, a Cheshire Cat
level this time” like a mini-lottery
after every win.
• While a lot of writing work still
had to go into selecting, editing,
and ordering excerpts from Alice’s
Adventures in Wonderland, as with
Walden for Transcend, the core of
the writing already existed and
had passed the test of time,
saving a considerable amount of
time and energy. (In both cases,
the copyright on the book text in
question expired long ago.)

250
SE C TI ON 6

Colorful Oceans and Chunky


Sauces
Difference in context, style,
audience, or appeal means
there’s no perfect game, but
only different kinds that
appeal in different ways to
different people. Be on the
lookout for ways that you’re
well-positioned to fulfill!
Game Design

The 2005 book Blue Ocean compete over a huge audience of


Strategy popularized the known buyers by trying to have
distinction between Red Ocean more realistic graphics and sound,
and Blue Ocean. Red Ocean refers more single player content, better
to competition with the existing voice acting, more persuasive ads,
market leaders at what they do etc.
best. Blue Ocean refers to making
Minecraft or Wii Sports (at the time
something characteristically
of its release in 2006), on the other
different than what market leaders
hand, are Blue Ocean. They were
are doing.
not trying to out-Call-of-Duty the
The arms race taking place real Call of Duty. They were
between Medal of Honor, producing something vastly
Battlefield, and Call of Duty different for a difference audience,
franchises is an obvious example a sizable portion of which
of Red Ocean strategy. They probably doesn’t care about Call
251
of Duty at all. They didn’t win for players haven’t already
having the most impressive experienced enough of the original
graphics and sound, they won by on its cheaper platform, or they
each doing really well at things were hoping to win over those
that games like Call of Duty never same customers on claims of
even attempted to do. improving upon the formula, which
is a clear sign of Red Ocean.
A company isn’t going to acquire
the combined audiences by simply Chunky Tastes
integrating more aspects of We’re going to hard switch now
Minecraft and Wii Sport into a from Red and Blue Oceans over to
warfare game. Many of these spaghetti sauce. It’s a similar,
preferences are mutually exclusive though subtly different point, that
– those of us that like Minecraft has to do with finding and
enjoy it as much for what it isn’t as appreciating Blue Oceans.
for what it is. Likewise, giving Wii
Sports a Michael Bay treatment of In case you haven’t heard Malcolm
huge explosions and machine gun Gladwell’s TED Talk on spaghetti
fire would very likely turn off a sauce, it’s well worth the 17
massive chunk of the audience minutes:
that enjoys that game. http://www.ted.com/talks/
malcolm_gladwell_on_spaghetti_sauce.html
Of course, now that Wii Sports
The craziness that happens when
has been out for 5 years, releasing
fans argue about whether
games like it is much more of a
Battlefield 3 or Modern Warfare 3
Red Ocean than it used to be.
is “better” is that they are arguing
When Sony’s PS Move and
between whether plain or spicy
Microsoft’s Kinect eventually
spaghetti sauce is better. Despite
attempted similar games on other
surface similarities, the games are
consoles in the current generation,
different in their pacing and
they were grasping for whichever
252
appeals, and resonate differently And over the next 10 years, they made 600
with everyone based on whatever million dollars off their line of extra-
chunky sauces.
styles they happen to prefer.
A few snippets that are especially Gladwell also touches on the
relevant to hobby and indie importance of recognizing that
videogame development: people don’t know what they
want. You can’t just ask them.
Now, did he look for the most popular
People can’t even properly say
brand variety of spaghetti sauce? No!
what they want when they have
Howard doesn’t believe that there is such a
thing… And sure enough, if you sit down,
had it many times before, and
and you analyze all this data on spaghetti given that, they are even less likely
sauce, you realize that all Americans fall to be able to articulate what they
into one of three groups. There are people want but have never had.
who like their spaghetti sauce plain; there
Assumption number one in the food
are people who like their spaghetti sauce
industry used to be that the way to find
spicy; and there are people who like it
out what people want to eat — what will
extra chunky.
make people happy — is to ask them. And
And of those three facts, the third one was for years and years and years and years,
the most significant, because at the time, in Ragu and Prego would have focus groups,
the early 1980s, if you went to a and they would sit all you people down,
supermarket, you would not find extra- and they would say, “What do you want
chunky spaghetti sauce. And Prego turned in a spaghetti sauce? Tell us what you
to Howard, and they said, “You telling me want in a spaghetti sauce.” And for all
that one third of Americans crave extra- those years — 20, 30 years — through all
chunky spaghetti sauce and yet no one is those focus group sessions, no one ever said
servicing their needs?” And he said yes! they wanted extra-chunky. Even though at
least a third of them, deep in their hearts,
And Prego then went back, and completely
actually did.
reformulated their spaghetti sauce, and
came out with a line of extra chunky that People don’t know what they want!
immediately and completely took over the Right? As Howard loves to say, “The
spaghetti sauce business in this country. mind knows not what the tongue wants.”
253
It’s a mystery! And a critically important working and in front of people.
step in understanding our own desires and Howard’s tests weren’t surveys
tastes is to realize that we cannot always
about how chunky people wanted
explain what we want deep down. If I
their sauces – they were rigorous
asked all of you, for example, in this room,
what you want in a coffee, you know what
taste tests with more than 40
you’d say? Every one of you would say, “I variations of fully prepared ready-
want a dark, rich, hearty roast.” It’s what to-eat sauce. (I used a similar
people always say when you ask them process when responses to my
what they want in a coffee. What do you 219 daily prototypes led to my iOS
like? Dark, rich, hearty roast! What apps Tumult, feelforit, Burnit, and
percentage of you actually like a dark,
iZombie Death March.)
rich, hearty roast? According to Howard,
somewhere between 25 and 27 percent of Returning to the main point, but
you. Most of you like milky, weak coffee. stated another way:
But you will never, ever say to someone
Mustard does not exist on a hierarchy.
who asks you what you want that “I want
Mustard exists, just like tomato sauce, on a
a milky, weak coffee.”
horizontal plane. There is no good mustard
That speaks to the importance of or bad mustard. There is no perfect
prototyping, and early testing (with mustard or imperfect mustard. There are
direct player observation of their only different kinds of mustards that suit
different kinds of people.
responses, rather than simply
trusting what they say afterward). At the end of the day, at least in
People won’t know if they’ll want it terms of design decisions (as
before it’s made, even if the game opposed to technical quality, such
could be perfectly and completely as not crashing), games don’t
described in advance. Our exist on a quality hierarchy.
behavior is far more telling than
It doesn’t matter whether the
our verbal guesswork when it
people that like some other type of
comes to knowing what we want,
massively popular game also like
and that means getting the idea
your game. Audiences looking for
254
the types of experiences that huge hard time finding anything that
companies can deliver to a high suits their niche tastes.
level of polish already are quite
Vision by Proxy: Second Edition
satisfied with what they are getting
has been played 6.9 million times,
(except to the extent that they
whereas Transcend has been
occasionally feel angry over other
played fewer than 10,000 times.
people having different tastes).
However I have had people go out
The preferences and interests of
of their way to contact me about
smaller groups – groups perhaps
how much they enjoyed
too small to be of interest to major
Transcend, eager to talk more
companies – are equally legitimate
about the game, whereas the
and important.
same has simply not been true
Maybe the outcome of a particular about Vision by Proxy: Second
project will turn out to be chunky, Edition. I suspect that difference is
a huge category that previous partly because VbP:SE is more
developers didn’t even realize recognizable as a videogame, and
existed, as has been the case for fills a more commonly understood
Minecraft or Wii Sports (the latter niche, as compared to the much
example which I love, in part, smaller number of people that
because it’s solid evidence that foundTranscend suited to their
Blue Ocean isn’t just for indie preferences – who understandably
developers). might have trouble finding many
videogames that scratch that type
Or maybe it will simply be a
of itch. I don’t regard either project
smaller audience, like finding one
as better than the other, a luxury
of the other 36 spaghetti sauce
that comes with neither being a
styles on the shelves. Such an
commercial undertaking (I
audience may even appreciate it
invested no money in the
more because they have such a
development of either, and the

255
excellent work done by
teammates on Vision by Proxy:
Second Edition was likewise part
of a group volunteer effort). They
are simply “different kinds… that
suit different kinds of people.”
As a hobbyist, I think that’s a
healthy attitude to maintain, and I
think it’s also a useful lens to put
the work of other developers, both
large and small, in context.
[Credit where it's due: I would like to thank
thatgamecompany's Robin Hunicke for
introducing me to the idea of applying Red and
Blue Ocean thinking to independent games. I
first heard about it briefly in an exchange during
our one day of overlap on the Boom Blox team
back in 2007, but it's a way of thinking that has
stayed with me and affected much of my work
since.]

256
SE C TI ON 7

Genres and Conventions: Known


Patterns of What Works
While it’s good to pick fights
we can win, in deciding what
to make it’s also essential to
never lose sight of the real
value in adhering to some
recognizable genres and
conventions. People can’t
crave what they can’t “get!”
Game Design

HATING ON GENRES In reality there has been a ton of


Game designers sometimes speak
experimentation in terms of
poorly of genres. I strongly
creating non-formulaic
suspect that this same dialog has
videogames – for decades – since
occurred and continues to occur
the dawn of home computers, and
in all other creative communities,
even as published (though now
from novelists to screenwriters to
largely forgotten) games on early
visual artists, though of course
videogame consoles. Such games
game designers are the
likely outnumber those titles that
community that I’m focused on.
fit easily into genres. Whether or
Closely related are the complaints
not it has already been the case
about all games seeming too
historically, it has undoubtedly
similar, that there isn’t enough
come to be in the tidal wave of
experimentation.
noncommercial or small scale (ad
supported etc.) game
257
development within the rise of common. When there’s news
web games and smartphone apps. about a genre-breaking game
Videogames have basically been among the critic, developer, and
in a constant Cambrian explosion player communities, it’s not simply
since their inception. because it’s genre-breaking – it’s
FINDING LESS FORMULAIC GAMES rather because it succeeded on
The notion that there are and have top of being genre-breaking,
ever been only a handful of types unlike the rest of the genre-
of games is a side effect of breaking shovelware in the bargain
selective awareness. In particular, bin and buried countless pages
it arises from only giving attention deep on web game portals.
to those games that received
Why is it that so many people
chart-topping commercial success
think and say that they don’t want
or extraordinary critical acclaim.
genre works, but then go buy
Both of those tend to be
them and tend to rate them
disproportionately genre works.
higher? Let’s take a brief look at
Want to find the more
how and why genres work in
experimental videogames? Look
videogames.
past the Top 10 lists, into the
WHY GENRES GET ATTENTION
greater catalog of games with a
Some of the angst against genres,
metacritic score in the 60s and
at least among indie developers if
below, or even more so among
not players, perhaps inadvertently
games too small to be reviewed or
overlaps the Red Ocean / Blue
listed on metacritic, and you’ll find
Ocean distinction, which was
a lot more of them.
covered in the previous section.
That domain has plenty of failed Lazily painting with broad strokes,
shots at the top 10 list, too, but we might consider genres as Red
within that low to no score space Ocean basically by virtue of having
the weird projects are much more been established enough to gain a
258
distinction as a genre, while work little more right than the other and
that is without a clear genre might previous efforts.
seem Blue Ocean by the opposite:
There’s more to the success and
it’s less contested space because
frustration over genres than that,
it hasn’t yet been identified as
though. I think it’s essential too to
lucrative to iterate on/within.
not doom ourselves, as solo and
It makes sense, I think, that once a small team developers, to
particular style of product has obscurity by ceding genres to big
clicked with the public and a clear studio games, when the two really
demand has been demonstrated aren’t quite a 1-to-1 mapping to
for it, then and only then does Big Red Ocean / Blue Ocean.
Publisher move in to try to outdo “GAMENAME”-CLONES
everyone else at making the Where do genres come from?
biggest, most impressive version Generally, someone doesn’t
in that category to capitalize on deliberately invent a genre and
that trend. This of course folds coin it. Companies and people
back into the visibility of the simply make a game, and if the
games that fit squarely into genres game does very well then other
relative to games that don’t: people clone and vary it… until
games in those clearly understood those clones and variations
genres connected to substantial constitute a genre.
consumer demand are what can
At some point after enough of a
get the most development
game design’s derivates begin to
funding, marketing budget, and
fill up the retail shelves or front
iteration in the form of companies
pages of review sites, it starts to
battling out every variation and
seem strange to refer to them
sequel they can think of in a
anymore merely as
struggle to get that formula just a
“GAMENAME”-clones. First-
person shooters were Doom
259
clones, platformers were Mario projects spanning from 2007 to
clones, first-person puzzle click 2008, when I developed mostly
adventures were Myst clones, genreless digital interaction
overhead turn-based RPGs were prototypes daily for seven months.
Final Fantasy clones, overhead Aside from a few iOS apps that my
real-time combat adventures were favorite few led to (Tumult,
Zelda clones, head-to-head feelforit, and burnit), one of my
fighting games were Street Fighter main takeaways from working on
clones, while match-3 puzzles the series was to better appreciate
were Bejeweled clones and open the value of genres and
world driving city games were conventions to developers and
Grand Theft Auto clones. Those players alike. A bunch of those
last two still are referred to as prototypes, anything beyond the
such in some circles, these being most simplistic, left most visitors
a comparatively more recent. Note simply scratching their heads,
too that in none of these cases are literally unable to even make
those actually the first game of sense of what was in front of
that type, they were just the first them. Oops.
breakout success, or otherwise
There’s only so much learning,
the first highly visible, such that
attention, and new consideration
those games defined what the
that a typical player is willing to
projects following their formula
give to a new amusement activity.
afterward desired to emulate or
Building upon a player’s prior
improve upon.
knowledge and experience can
DOWNSIDES OF IGNORING GENRES enable more depth or richness
I did much of my personal
with considerably less ramp up.
exploration into questioning
Expectations embedded into
genres with the InteractionArtist
genre distinctions are one way
series of experimental gameplay
that a player’s cognitive load can

260
be, if not necessarily lightened, something they have some head
then at least focused on what start on understanding.
makes a game special or different,
The same can be said for head-to-
atop a central framework of
head fighting games, RPGs,
interactions and events that the
platformers, first-person shooters,
player already understands how to
real-time strategy games, and
navigate and operate.
virtually any other videogame
RECOGNIZABLE TRANSFER OF SKILL genre. People can look for visual
I have a particular interest in
and other clues to know in
pinball, so for sake of illustration,
advance whether it’s something
think of pinball as a genre of
similar to what they’ve enjoyed
electromechanical games. Once
before, and if so, when they start
someone knows how to play even
into it they already have an
one machine pretty well, even if
understanding of how it works and
there are many scoring details and
what to do with it. They can get
artistic differences between pinball
right into the game. That’s a
machines, their basic flipper
tremendous advantage over the
techniques can largely transfer to
many forgettable videogames that
other tables. Unambiguous visual
strive to eschew (or what one
clues in the machine’s physical
might optimistically reframe as
structure and playfield layout
“attempt to start a new”) genre.
communicate to the player
IN TRADITIONAL NARRATIVE
whether an arcade device that
As another way of thinking about
they’ve never even seen before is
the above, genres in videogames
also a pinball machine. If it is, then
serve some of the same function
they know even before playing
that genres do within general
that it’s like something they’ve
storytelling: a set of established
liked before, something they’re
conventions to serve as a
capable of doing well, and
background, any deviation from
261
which can be a source of be well received by many people,
meaning. If the sheriff in an old and perhaps more importantly,
western is the bad guy, that’s particular people (the same many
interesting. If the aliens in a sci-fi who keep coming back for more).
movie are less advanced than Consider music or images. Most
humans, that’s interesting. In the of the technically possible
same way great games are often arrangements of notes do not
firmly fit within a genre, so that for constitute anything even remotely
the most part we can count on musical, and likewise most of the
understanding what’s going on, possible arrangements for color
except with one or two central on a 2D plane produce something
twists (the player controls gravity, not just nonsensical but
the player controls time, the player uninteresting (as opposed to
can possess enemies…) and nonsensical and interesting, which
polish and iteration evident in the of course actually describes a
execution. That frees the mind to great deal of rather famous art).
focus on what makes it interesting Tell me however whether music is
or different, without needing to techno, hip hop, rock, or country,
exert much brainpower for and I immediately have some
understanding the core of what’s notion of whether I’m likely to
going on. enjoy it, since despite there being
COMPARISONS IN MUSIC AND ARTWORK such great variety within genres
However it’s not merely a matter it’s of a significantly more limited
of what people have practice in, or scope than genre-less sequences
what knowledge they’ve already of sound. Likewise tell me that an
learned. That can make it seem art exhibit is surrealist, cubist,
much more arbitrary than it is. impressionist, splatter painting, a
graphic novel illustration, etc. and
Genres and conventions reflect
even without knowing more
patterns that have been found to
262
specifics about the art, I can form environmental art or audio content
some sensible guess of whether of the game, is a relationship
it’s something I’d at least be between input, movement, and
interested in seeing. camera that creates what Steve
Swink labels “Game Feel.”
Most of the possible interactive
Expectations for how this does or
graphical programs that could be
doesn’t work out varies between
written do not constitute anything
genres. As with those previous
that even remotely works as a
examples most of the theoretically
videogame. Whether a videogame
possible combinations flat out
is 25 kb, 25 MB, or 25 GB, most
don’t make sense, leaving islands
other possible configurations of
of flavors that one player
those bits go beyond meaningless
community or another might tend
into the realm of unusable. But tell
to prefer.
me it’s a platformer, first person
shooter, third person adventure Imagine a chef trying to combine
game, or puzzle game, and I know flavors and food preparation steps
enough from past experiences in a truly random way in hopes of
with games we assign those labels producing food anyone would
to to make a decision about actually want. Consider that
whether I might like it. process in contrast to, for
BAKERS IGNORING CHOCOLATE AND CAKE example, making a cake. Or a
The analogy I find most useful for muffin. Or a cookie. Or a hot dog.
thinking about genres for Or a donut. Or french fries. Or a
videogames though isn’t how burrito. Or sushi. Or falafel. These
genre applies to music, or image, are all recognizable food
or novels, but instead the parallel concepts, an incredibly narrow
to how genre applies to food. At slice of the possibly mixtures of
the core of gameplay, rather aside ingredients and preparation
from narrative bits and the methods. People can order it

263
knowing what to expect, and have To some degree – and it’s not
some sense for how to judge quite the same thing, but I think
whether it’s a good or bad version close enough to warrant
of what it’s aiming to be (a good consideration – complaining over
french fry, for example, would be a a game designer working within a
very bad cookie). Their value to genre would be akin to
people however is not merely that complaining over a baker working
they’re recognizable or that on bread or a pie instead of
because they’re recognizable they actively trying to rethink and
can be judged meaningfully. But reinvent or challenge what baking
because out of the however many is. People want things that bakers
millions of possible foods created make, there’s still plenty of room
throughout history, these within those “genres” for creative
templates survived while the interpretation and for the work to
countless other attempts promptly come out amazing or inferior,
went extinct, not because personalized or generic. Most
anything in particular went wrong, random other combinations of
but because so much has to line preparation methods and
up just right for a recipe to really materials at the baker’s disposal
work. So when a pattern that does would be very likely to yield things
work well gets discovered, it’s only that even given time would be
sensible for many creators to incredibly unlikely to become an
deliver on variations of and acquired taste, especially
masterful attempts at making alongside recipes and patterns
those. It is similar for consumers that have evolved and been
who know what they want from refined for so many generations.
past experiences and go looking
for just that.

264
6 For videogames that have levels,
the art of designing a good level
is as much a skilled craft as
music composition, art, writing,
or programming. Some game
levels aren’t even spaces, but
are instead just tuned numbers:
waves of enemies, or odds of
different puzzle pieces falling!

Level Creation

265
SE C TI ON 1

Anti-Design / Backwards Game


Design in GoldenEye
Because design involves so
many different options, it’s
sometimes helpful to take a
case study approach: find a
specific real example, read
up on and/or study its parts
in very close detail, and try
to extract lessons from it.
Level Creation

I’ve been studying GoldenEye


recently–not the newer remake,
but the old 1997 game from
Nintendo 64. Rare put it together,
and Martin Hollis was the
producer. Back in 2004, long after
a lot of people forgot about the
game, Martin Hollis did an
interview about the game and its
Cop mode – or various other
creation. In it he reveals a bunch
tidbits, but, if you’re interested in
of interesting facts about how it
that full interview check out:
was originally inspired by Virtua http://www.zoonami.com/briefing/2004-09-02.php
Cop in certain ways – as he puts
But there’s a few very specific
it, when you hold down the aim
gold nuggets in there that I want
button it kind of goes into Virtua
to pull to the surface and share
266
today. Those have to do with the provide contrast to how game
ideas of backwards game design, design typically occurs for level
or anti-game design as he calls it design in, say, a shooter or a lot of
in another place. types of games, is you might first
come up with a beat doc of what
The excerpt I’m referring to begins
you expect the player to do in
as follows:
what order. He’s going to collect
“One important factor was this. The level these documents, he’s going to
creators, or architects were working
get this key, he should blow up a
without much level design, by which I
helicopter, and then he’s going to
mean often they had no player start points
or exits in mind. Certainly they didn’t escape the base. And then you
think about enemy positions or object would design the level around
positions. Their job was simply to produce those objectives. You would
an interesting space. After the levels were provide a space in which he can
made, Dave or sometimes Duncan would complete the first objective, and
be faced with filling them with objectives,
then you would assume he would
enemies, and stuff. The benefit of this
move on to the next and would
sloppy unplanned approach was that
many of the levels in the game have a
complete some objective in the
realistic and non-linear feel. There are next segment of space you give
rooms with no direct relevance to the
level. There are multiple routes across the
level. This is an anti-game desig n
approach, frankly. It is inefficient because
much of the level is unnecessary to the
gameplay. But it contributes to a greater
sense of freedom, and also realism. And in
turn this sense of freedom and realism
contributed enormously to the success of
the game.”

What interests me about this, to


267
him. You might give him another This is, as he calls it, anti-game
room with someone to battle, and design. He’s beginning by
he progresses past that. In each focusing on making an interesting
case in a lot of games, and we still area then populating it, as
see this a lot of the time, once you opposed to the other way around.
complete an area or complete the He uses these loaded words,
objective for that area, you never saying that this approach is,
go back. “inefficient,” “unnecessary,” he
calls it “sloppy,” “unplanned,”
Instead, what Martin Hollis had his
though of course he’s not saying
level designers do for Goldeneye
these things negatively. I want to
back in 1997, or I guess rather
call attention to the fact that
development in 1995 or 1996 or
without using this approach, they
so, was to just focus on making an
would not have gotten those same
interesting space, to make these
enormously successful results, the
spaces different from one another,
sense of realism and freedom that
to make them compelling to
come from having spaces that are
navigate, to make them all have a
so interconnected and tied
unique look and feel. They weren’t
together, having so many optional
supposed to be worrying about
rooms off to the side, having so
where the player started, where
many different hallways that don’t
the enemies were supposed to go,
wind up being used. That was a
where the objectives would take
product of the anti-game design
place–what the objectives even
approach. So if that’s inefficient,
were! Their objective was to put
compared to a usual process that
some rooms together, put some
doesn’t produce as good of a
hallways together. Build a space.
result, then I would argue that it is
And then we’ll worry about how to
in fact the most efficient way that
populate it with enemies and
will yield the result that’s desired.
objectives and items later.

268
Something to keep in mind: is it
sloppy? Is it unnecessary? Or is it
the way that this sort of good work
happens?
This approach actually extends
beyond level design. As Martin
appear in which levels. They
Hollis mentions later in the
focused on what are some cool
interview,
Bond gadgets, and then how can
“We milked the Bond universe in many they shoehorn these in after
ways. For example gadgets, I compiled a they’ve already been made, and
list of about 40 gadgets from various Bond
some of them didn’t make it. In the
films, most of which were modeled, and
data for the game, there are a
then Dave and Duncan tried to find levels
where we could use them. This is number of objects in the memory
backwards game design, but it worked which never wind up used, not
very well. These models were the game even through cheat codes, and
design; there was very little written down have been pulled out partially but
on paper. And the models were researched not entirely, because as
and milked extensively. And, importantly,
development progressed they
they all gelled together very well. These
realized they didn’t necessarily
things helped to make the gameplay and
the game style what it is.”
need all of these. But they have
them there to pull from.
So it wasn’t just that they built
levels without plans for what He mentions that they all gelled
would happen in them. They together very well. It’s no
modeled and textured 40 different coincidence of course that when
gadgets before they really had you pick out 40 James Bond
specific plans for how to use these gadgets, they all gel together very
things, for which would be used well, because he’s pulling from a
with the others, for which would very specific source of intellectual

269
property, that has evolved for a Lord of the Rings has a whole
very long time, since the creator bunch of dynamics about how that
Ian Fleming came up with the world works and how those pieces
character for James Bond. Since fit together. These gadgets all
then every studio, every producer gelled because of course they’re
that has touched the property has mostly James Bond gadgets.
contributed ideas to it based on
The gadgets were inspired by the
what looks cool, what will be neat,
James Bond films, but so were the
what’s a great setting, what are
spaces, obviously.
some cool weapons or gadgets to
introduce… and so that gave them As Hollis puts it,
a lot to pull from, in the same way “Karl constructed levels based on the film
that the Star Wars universe has a sets, which we visited several times. And
lot to pull from, the Indiana Jones Bea constructed characters based on the
universe has a lot to pull from, the photos of people and costumes we had.”

270
making your levels before you
know what to do in them. It
doesn’t necessarily mean that
you’re making objects before you
want to do something with them. It
also doesn’t necessarily mean that
you go back and write a full
So think about this – they’re really complex lore like James Bond’s
utilizing Hollywood film set design, universe before you start working
Hollywood film costume design, in on your game to ensure that
their game, by adopting those everything will gel. There’s smaller
patterns. Although those aren’t ways that this can happen, too.
just built off of skilled Hollywood
David Jones, the guy who created
craftsmen, they certainly played a
the Grand Theft Auto series and
huge role in it. Those were scoped
later worked on Crackdown, also
out real locations in Cuba, and in
created the Lemmings game. This
Russia, and so on. Likewise the
was a classic game where you
costumes were based on, in many
had these little suicidal characters,
cases, real army outfits, and the
and you’re trying to real-time
weapons are all based on real
strategize them to block each
guns. This keeps it grounded in a
other and build bridges and build
complex cultural, very realistic
stairs, to make their way to an
environment in which the guns
exit. And so the story goes, that
and the costumes and the settings
derived from sort of a bet David
are based on something
Jones had with a another
recognizable in the real world.
developer about how small of an
Anyhow, there are many ways that animated character he could
this can be applied. It doesn’t make, that that small character
necessarily mean that you’re became the Lemming. It’s a case

271
where he didn’t start with the starting by building something
game’s idea, he didn’t start with that’s neat or appealing in its own
the game’s story, or arc, or events. regard - be it a model, as a space,
He simply started with a character a character, a sound effect,
sprite, and then found a way to whatever form yours might take -
build a game to use that. and then work around making that
material fit. For once, try worrying
We followed, of course to much
only after you produce the content
less fame and success, a similar
how to fit it into the game.
sort of approach with Zylatov
Different processes tend to yield
Sisters. Before anything else
different results, so this is likely to
about the game existed, I was
lead you in a different direction
modeling the little Zylatov Sisters,
than your usual methods.
or drawing them, just to practice
small pixelated animation. Once I
had one of those
drawn, and color
shifted her and got
different hair color
from her, I decided
we could make a co-
op little game with
guns. That turned
into a game for us.
Think about
backwards-game
design, anti-game
design, or call it
Zylatov Sisters by VGDev, available to play free in-browser. For more
whatever you prefer. information about this game see Chapter 10 Section 2, “Reflections on Three
It’s simply the idea of Specific Hobby Game Projects”

272
SE C TI ON 2

Level Design Concepts

Certain patterns have


emerged in my experiences
designing spatial levels for
a wide variety of games -
whether navigational
puzzle platformers, action
overhead, or otherwise. Can
you try these in your game?
Level Creation

Philosophies Odds are, you’ve never played


Every decision in a level’s design more than one published title that
is a conscious act by the level used the same underlying level
designer. design philosophy. What works in
one game, given its AI, weapons
Levels aren’t made by placing set and player interface generally
walls; levels are made by planning. does not translate well to another
Once a level developer is title in the same genre. Goldeneye
accustomed to the toolset at hand N64 levels make poor Doom
and the underlying game engine, levels; Doom levels make poor
emphasis shifts from placing Unreal Tournament levels; Mario
“walls” to placing “rooms,” and levels wouldn’t work for Sonic and
from placing “enemies” to Sonic levels wouldn’t work for
designing “encounters.” Mario.

273
Why bother with level design locations. An architect by training
philosophy at all? Why not just is most likely to design this type of
make maps that are different every map, so we’ll call it the
time? Just like there are conflicting “Architect’s Design.” It provides a
philosophies that don’t work well strong sense of immersion when
between games, for every game it’s done well, since real buildings
there are some overriding points aren’t laid out linearly for mission
that can be kept in mind to make objectives, but it can make for
the most of the engine. Here we’ll awkward flow that confuses first
look at a few particularly different time action players.
ways of thinking about level FIREMAN’S DESIGN
space, since by separating them Other titles focus on flow of
out, we’re better able to switch action. Halo is the unmatched
between them deliberately as best example of this design strategy,
fits the current videogame using Fireman’s Design to
project’s needs. compensate for the disarray of the
ARCHITECT’S DESIGN battlefield. The player is rarely left
Some games focus on wondering where to go next, since
environmental realism, to the point there are typically shots, yelling,
that most of the levels are and action taking place where he/
designed to feel like they are she should go. We’ll call this the
almost incidental to the gameplay “Fireman’s Design,” since it results
experience taking place there (ex. in the player rushing from point to
Hitman, Rainbow Six). For these point to “put out fires.” This
games, most of rooms, hallways, requires a considerable amount of
and open areas feel like they were event scripting, and doesn’t leave
laid out without special emphasis much of an opportunity for the
for the player start, ammo and player to rest. This risks hurting
health boxes, or enemy placement replay value by making interesting

274
things happen predictably the (the enemies!) have been
second time around, but it can eliminated.
offer an extremely cinematic REVERSE BREADCRUMB
experience (ex. Medal of Honor, The name of this technique comes
Call of Duty franchises). from the old Brothers Grimm fairy
CURIOSITY LURE tale, Hansel and Gretel, in which a
Some games lure the player young boy and girl leave a trail of
around via exploration. Tomb breadcrumbs behind them to find
Raider and Descent both relied at their way back home. It’s “reverse”
least in part on this “Curiosity because, in this method of level
Lure” (the player’s left thinking design, breadcrumbs are
“maybe this pathway leads to the scattered everywhere by the
exit?”). Without careful attention to game’s designers, and the player
attractive landmarks in the finds their way to unexplored
distance, and clear visual areas by running toward and
distinction between different picking up any not yet claimed.
rooms, it can lend itself to arbitrary
id Software used Reverse
map layouts, leaving the player
Breadcrumb in Doom, but it has
wandering in cycles through
been around at least since Pac-
corners for the next area to search
Man, and still appears in modern
through. Tomb Raider, for the most
FPS games. Reverse Breadcrumb
part, succeeded in doing this well,
is a technique that involves lacing
whereas Descent (unfortunately)
corners, hallways, side rooms, and
did it very poorly. In a more action-
action areas with cheap, low-value
oriented game, the wandering is
items of cumulative worth. Boost
made even worse by going
of tiny value, such as +1% health,
frequently through areas well after
+1% armor, and little ammo packs
the interesting part of that genre
are great for this, though in some
densely-populated action games
275
where the player has been is just like Robotron, Mega Man, and
as easily marked by where bad Zelda established its place in
guys no longer roam. history. The concept behind
“Arena Traps” is to have the player
Besides giving you as the level
fight battle after battle in isolated
designer an instrument of
architectures. This avoids player’s
instruction to show the player
using kill zones to take advantage
where to go, it provides an
of deterministic AI. It implies that
immediate visual test for the
the world has an overriding,
player to mark off areas he’s/she’s
malicious intelligence manipulating
already visited. If there are no
the player’s environment, but that
more items (or weak bad guys) in
works so long as the story takes
a room with several branching
the player to an evil dungeon, a
hallway exits, the player only has
trapped temple, or alien den.
to explore whichever hallways still
have items to find new areas of PUZZLE BASED
Jumps, keys, physics engine
the map.
exploits, and remote switches or
This approach constantly rewards time trip wires dominate puzzle
the player, and leads to most or all based games. It’s rare to see an
of a map’s areas being explored in entirely puzzle based game
turn. Care needs to be taken in a anymore, but some degree of
map designed with Reverse puzzle is more likely than ever to
Breadcrumb to minimize the depth find its way into every game on the
of dead ends, to avoid the player shelf. Prince of Persia had a few
winding up stranded without undisguised puzzles in the story,
cheap items as hints. as did Quake II and Tomb Raider.
ARENA TRAPS Portal has more recently
Although Painkiller is among the repopularized puzzles in the form
few recent commercial games to of intricate navigation.
exploit this design strategy, games
276
DISGUISED LINEAR mechanisms. The workaround to
When the player is stringed from
avoid this problem is to take a
one location to the next, but they
Mega Man boss weapon
feel like it’s their idea each time,
approach, so that although the
then the level design is Disguised
order of action is up to the player,
Linear. Done right, this describes a
there’s an ideal order that the
map that plays linear but doesn’t
expert player will take to optimize
feel linear. Max Payne and Half-
level performance. For these types
Life are the best-selling games
of unenforced Creatively Linear
with this structure. It can
level designs to work, the player
significantly detract from
must be given clear clues or signs
replayability, and can also raise
of what is to be found in different
some issues of the designer
directions – perhaps by imposing
having more fun than the player; if
architecture, detailed red warning
the player doesn’t get to decide
patterns on the floor, or puddles of
where he/she will go next, and
damaging green goo.
instead the level designer does,
HYBRID
who’s really playing? On the plus
Most commercial games don’t
side, it typically means the player
follow any one formula. The most
won’t get lost, and the emphasis
interesting level design
of the gameplay is on action or
philosophies are those that
platform/key puzzles rather than
manage to take the elements that
exploration.
work from a variety of design
A non-linear level structure (like angles. Don’t be afraid to
one with a centralized hub and experiment, but when you do so,
many hallways) can quickly be you’ll probably want to test it in a
turned linear by use of keys, smaller map before you build it in
remote door switches, and other as a crucial point of a larger map.
order-of-play constraining

277
Invent some terms, like those used be tempted to do in most level
here, and categorize your creation environments.
thoughts into discrete concepts –
Disadvantage: Leaves a LOT of
it makes it easier to re-use the
unanswered questions about the
ones that turn out well, easier to
level’s theme, and the layout of
avoid re-using the ones that turn
rooms. This prototyping definitely
out poorly, and easier to mix new
should be used only in conjunction
combinations of what worked well
with another method, such as
to generate more intricate levels
Pipelining or Area Sketching.
for later parts of the same game.
DIVISION OF SPACE
Rapid Prototyping Methods The builder’s approach. Begin on
NODE NETWORK a piece of paper with a rectangle,
The scientist’s approach. Begin by pentagon, or a more interesting
drawing a few circles on a blank shape, like a giant hand (Doom,
page to represent major rooms, map E3M2 did this), and then
areas, hubs or hallway recursively divide that space into
intersections. Draw a few lines rooms.
between these nodes, until
Advantage: Can create a more
everything is connected in at least
realistic building space (no wasted
1 way. Next, put your mind to
area between rooms or halls).
thinking about how you’ll run the
Doing it freehand on paper then
player through these loops – item
transforming it into your game’s
lure? Strictly ordered key puzzles?
level format reduces the tendency
Advantage: Fast way to sketch out to work strictly orthogonal or on-
how your level can have complex grid.
interconnectedness, without
Disadvantage: Leads to a map that
holding yourself back to
is potentially too visually cluttered.
conventional orthogonal hallways
If the overriding shape is not
or linear path cutting as you might
278
broken carefully, it can also yield a you’ve been in, attach them to
map that feels too contrived. movie sets you’ve admired, and
PIPELINING connect them altogether with an
The mechanic’s approach. This order of events that worked in
can be done equally well in most your favorite game. As long as
level building tools as it can on you’re mixing multiple sources,
graph paper, if you’re sufficiently you can result in some fairly
comfortable with its environment decent levels while learning from
and tools. Basically, form the level the pros along the way.
out of hallways, placing important
Advantage: Creates much better
items and keys in intersections or
content than you could have on
corners. Go back and bloat certain
your own.
areas of the pipe into room-sized
combat areas, add a little Disadvantage: Makes you feel dirty
decoration based on a given and guilty inside. Do it if you’re
theme, and call it done. looking for a way to learn as you
go, but try to wean yourself of it as
Advantage: As fast, if not faster,
soon as possible.
than any other method, without
BLUEPRINT
creating trivially simple maps.
The architect’s approach. This
Disadvantage: Often results in an actually involves sketching out the
unrealistic environment, and it area as if it really existed – where
takes some practice and patience do pipes go? Electrical wires?
to identify which areas of the How and why are different areas
pipeline should be bloated. (locker rooms, restrooms, offices,
MIMICKING closets) placed where they are in
The beginner’s approach. relation to everything else?
Basically, steal from anything and
Advantage: This method leads to
everything you can. Copy areas
the most believable environments.
and layouts out of buildings
279
Disadvantage: Slow, slow, slow. Disadvantage: Requires a little art
Maybe try it out for some early talent, and some random
maps, but in the end, most of the inspiration. Do this when you can,
money, energy, and time should be but don’t expect it to work for
spent tending to the content that every room of every level.
the player directly sees and MIXTURE
experiences. Strive to see if you This is the game designer’s
can figure out some patterns or approach. Unfortunately, it’s also a
rules to follow to simulate the lot less formulaic in how to
same effect without putting so perform it properly. Knowing some
much invisible work into it. of the other prototyping methods
AREA SKETCHING are there to work from, and how to
The artist’s approach. This articulate the different aspects to
technique is very popular in the team members, is essential to
industry, and often shows up in succeeding in hybrid level
collector edition released concept prototyping. As design schemes
art. Make 3D sketches of areas can be mixed, so too design
you’d like to fight in – from the prototyping methods can be
player’s perspective, or from a mixed.
“security camera” ¾ angled
perspective from a room’s corner
against the ceiling. How do
obstacles fit together? From
where will the enemies come at
the player?
Advantage: Creates memorable
areas, vastly more so than any
other means of design.

280
SE C TI ON 3

Level Design Process

In some ways extending the


previous section, here’s a
deeper step-by-step way to
think about level design in
layers to maximize output
while limiting wasted work.
These can apply to non-
spatial stage designs, too.
Level Creation

Knowing how to use a paint brush wasting less content. Without a


is different than knowing what to sound process, it’s all too easy for
do with it. Likewise, learning how a team to work themselves into a
to operate a level design tool is a corner, having to decide whether
necessary first step, but different or not to throw out completed
from the more substantive task of programming or art work because
figuring out what to do with it once the level they were made for stinks
learned. Let’s dig into the latter. or to have a designer floundering
in poorly defined and inconsistent
The Process
conceptual space from having not
Although every game’s level or made the right choices prior to
scenario design is unique, there is fiddling with the level editor.
a common series of steps that,
when followed, are likely to I used these steps to make
produce better results while overhead 3D levels in Shotgun
Debugger, I adapted a version of
281
this process when developing but still used today, has been to
levels on the Boom Blox team, start the level with the end
and it’s the same approach that I objective on-screen but somehow
applied to levels for Vision by unreachable until later.
Proxy: Second Edition (played 4) ROUGH PLAYABLE FORM
more than 7 million times!). Here something is finally built in-
engine, then played. It can be ugly,
11 Stages of Level Design
parts of it may not work yet, but
1) CONCEPT
What’s this level about? What the goal is to get enough together
purpose is it intended to serve? that it’s clear how the game’s
mobility and interactions will affect
2) ARC/EVENTS
Make a short list of major the development and
inflection points. When in the level implementation of the intended
is there a change to the player’s ideas.
goal (next win condition), 5) LIST OF ADDITIONAL ASSETS

knowledge (story or motivation), or What does not yet exist that will
capabilities (mechanics and need to be made in order for this
powers)? level to work? Early in a game’s
development, this can be fairly
3) LAYOUT SKETCH
This step is done on paper, or in a extensive, and help define the
text file, and is still less about building blocks; later in
details than big picture. development, this list should
generally be kept short, in favor of
Where are those arc or event reusing and recombining what has
points in relation to one another? already been built.
What order are they seen in, and
what order are they likely to be The level may require additional
taken on? An example of a classic programming (jet pack?), it will
non-linear pattern, which has been often require additional art (soda
around since the days of Pitfall 2 machines to decorate a break
282
room), and occasionally will pose question whether the level is good
other types of skill demands enough to finish.
(dialog writing, puzzle planning,
A lot more work is about to go into
sound creation, etc.). Whatever
making the stage presentable.
will need to be done for the level
However, if this particular attempt
to work, however minor or
isn’t working out so far, the types
unrealistic (in part because that
of work that follow are not going
difference may be hard to know at
to be able to make up for that. A
the time), this should be
few steps backward may be
acknowledged before going
enough, but this step occasionally
forward.
leads all the way back to the
6) PRUNING drawing board, resetting to Step
Taking into account the
One. Sometimes, that’s for the
development complexity of its
best.
parts, balanced by considering the
8) FULL IMPLEMENTATION
bang-for-the-buck given to the
Whatever additional programming,
overall benefit of having those
art, and audio are left in the level’s
components, what can be
requirements, here is the time to
trimmed from the level’s design?
get to work on them.
If something can be taken out
This far into the level’s
without major complications, that
development, it’s clear that the list
increases focus on what is
to be implemented will be
important, to both the developer(s)
supporting a level which has at
and the players.
least passed critical feedback and
7) FEEDBACK / ITERATION personal reflection. The place in
If you are working on a team, this
the game for this work is known,
is a good point to pitch the level to
rather than simply creating a pile
others for critique. If you’re
of functionality or imagery then
working alone, now is the time to
hoping for their effective use.
283
9) POLISH often precariously blind to this sort
If there is a timer or goal score, it’s
of issue, but it’s helpful to at least
time to tune them. If there are
attempt to correct this before…
enemies and items hand placed in
11) TESTING
the level, it’s time to experiment
…putting the game into a new
with adjusting their locations and
person’s hands. Someone that has
quantities for maximum effect.
not played the game, or has only
10) AFFORDANCE PASS played the game up to this point
Affordance is a word from design,
(levels 1-4 before testing level 5)
used to refer to, among other
can be a lifesaver in identifying the
things, the signals and queues on
misunderstanding or confusion
interfaces that let us know what
that may arise from failure to
can be clicked on, what can be
properly communicate
dragged, and what sort of door
affordances.
handle should be turned or
pushed or pulled. Testing can also be a helpful
check on a game’s difficulty, since
As applied to level design,
for the same reason that the
affordance means making sure
level’s designer is blind to
that there are adequate clues for
affordance issues, the level
where to go next, how to
designer is probably unaware of
progress, and so on. If the player
how hard the level is now that it’s
gets stuck from being unsure how
tuned for someone that has
to advance, but could trivially
practiced it hundreds of times.
move forward if informed of what
to do, the failure is in affordance. ♦

Having seen the level develop at Done! Name it (if applicable),


every phase, and imagined its finalize the writing for it (if
event flow before it even existed applicable), then fit it into the flow
as a list, the level’s designer is of other finished levels. It may

284
need to be revisited later for specific decorations to recreate
consistency with other levels, or them, can capture some of their
tweaked after additional testing of quirks and uniqueness.
the full game, but all that can be DISTINGUISH AREAS BY COLORS
done for a single level has been Going from a predominantly blue
done. set of areas to a predominantly red
set of areas feels like progress. It
Assuming the game is not a single
ties together levels that belong
level project, this next section may
together, and alerts the player to
help.
tune in for the other differences
Strategies for a Level Set between the levels that don’t.
Most games come with a Color changes are a cheap
sequence of levels. Here are some solution, in terms of time required,
approaches to create a series of and whether it’s literally a tint or a
levels that work together without careful shift in an area’s entire
blurring together: palette, it can be surprisingly
ASSIGN A FICTIONAL FUNCTION
effective.
Give levels fictional purpose, and Color changing is how progress
they’ll take on unique feels. was shown in Tetris. In BioShock
One might take place in the palace it’s why the color of the loading
dining rooms, where bombs are screen changed based on what
stored in underground caves, save the area was made in, and in
inside of an oil rig, and so on. Alice in Bomberland it’s how I
Putting levels in those settings differentiated later levels. In Doom
shouldn’t just be a matter of the levels changed from grays and
window dressing, and sometimes greens to reds and yellows; in
building levels inspired by the Quake the episodes differed by
constraints and features of types palette from browns to blues.
of locations, even without the
285
DISTINGUISH AREAS BY MAIN MECHANIC ONE-OFF SPECIAL CASES
These sort of high level concept The pacing of a game can be
differences at an early stage of improved considerably if one or
level planning can lead to more areas of the game receives
drastically different level designs special attention. If only one area
and experiences. needs a time bomb count down,
collapsing ceilings, and pulsating
One zone might focus on
red alarm lights, then it’s still
destruction, another might focus
probably worth doing, since the
on cooperation or collection. Is
scene can have such a dramatic
this area mostly vertical? Or
impact on the overall experience
perhaps this area leans heavily on
(Metroid, although we borrowed it
a particular item in the user’s
for Shotgun Debugger, and Cave
inventory, or is built around how a
Story does something like it, too).
particular bad guy moves?
When Earthworm Jim introduced
ELEMENTAL OR BIOME SETTINGS
stages that had glass submarines,
Lava, swamp, ice, wind, castles,
or escorting a puppy, it helped
ghosts, underwater, desert, moon
break up the monotony of combat
– settings like this are cliché, but
platforming. Call of Duty games
they work, and in addition to major
have featured this sort of
visual differences they tend to
distinction in the form of waiting-
inspire unique enemy types or
for-reinforcements, tank driving,
player abilities.
firing from helicopters, and pure-
Star Wars provides an example of sniping areas.
applying this technique in a way
PROVIDE PROGRESS CLUES
that feels much less cartoony than Like color changes, this is
we generally see it applied to primarily an art effect, but this can
videogames. help the overall sequence feel like
the order matters. Something
appears far off in the background,
286
and gradually the player sees it absent when everything started is
become closer and closer as expected to be used. If the
progress is made. For a series of second level in this batch doesn’t
levels in Quake 2, there was a fit in with the others, but seems
huge artillery gun in the skybox. In like an idea worth keeping, it may
one level it was very far away, in inspire a other set to be produced
the next it was closer, and then pruned.
eventually a boss fight takes place
This approach leaves level order a
right next to it. That spatial marker
bit more up in the air, which
helped provide a clear sense of
sometimes can only be known
progress between stages, even
after the levels are playable in-
when some of the stages played
engine. If the third or fifth level
very similarly. Ico employs a
made in a given batch seems
similar effect in how it portrays the
easier than the first, or seem to
rest of the castle during outdoor
better introduce concepts
scenes.
assumed by the second, it’s not
OVERPRODUCTION too late to rearrange them then
Make 25-40% more levels than
account for that (in terms of
are needed – stopping just short
polish, ordering of art or enemy
of the Full Implementation work –
types, etc.) when moving into the
then throw out the worst 25-40%
later stages of implementation.
before going any further on them.
This allows a filter of editorial
judgment, makes it possible to
stumble upon interesting ideas
without misusing the
implementation time of others,
and encourages a degree of
exploratory risk taking that’s

287
SE C TI ON 4

Level Design Q & A

Here I provide more details


and explanation for some of
the ideas just mentioned in
Level Design Process. It also
emphasizes that developing
levels often begins with an
exploratory building phase
for practice and research.
Level Creation

Hi Chris. As part of my studies, I’m attempt as different as possible


required to undertake a research project. I from my other attempts, so rather
chose level design for my topic. I recently
than iterating rigorously trying to
read your article on Level Design Process
achieve a predetermined concept,
and found many of the steps and strategies
quite helpful. I was wondering if you
with each attempt I’m switching
could be so kind as to spend a few minutes up my methods, priorities,
to answer some other questions. emphasis, and so on.
1) DO YOU START WITH THE END IN MIND, OR When something in my exploratory
SPEND TIME BRAINSTORMING AND PLANNING
THE LEVEL? building seems to be working out
I don’t do either, at first. I begin by better than the other attempts, say
doing plenty of tinkering and for example it’s the best out of
exploratory building, to ensure four or six attempts that I’ve
that I’m working with the engine to roughed out, I’ll try to figure out
do what it does best. Exploratory what’s working well about it then
building involves making each extend it to amplify why it’s
288
working. The reason might be If it’s one of the first levels I’m
conceptual, or emotional, like making for the game, the tools are
playing up a sense of power or often still being figured out.
panic, but often it’s something There’s not much to go on besides
more concrete like how a specific a personal matter of taste. Taste
enemy, weapon, item, or feature isn’t always a good guide, and
plays well in some circumstance. there’s a reasonable chance these
This can also arise from will later either get cut or updated.
discovering implementation
The main idea driving early
quirks; if there’s a special gimmick
building is to learn more about the
I’ve discovered in the game’s
game that you’re working on.
engine and level format that’s not
Which items, weapons, or
too buried and not obviously just a
enemies need to be used
bug needing to be fixed, I may
sparingly, versus which can I get
make a level around introducing
away with using quite frequently?
and exploiting that.
Are there patterns I’m discovering
Sometimes that’s just enough that can be tucked away mentally
material for one level, but in other to apply elsewhere, such as for
cases it can become a source for example some puzzle-like
a number of levels, each arrangement or particular type of
presenting some angle or variation ambush set up? I evaluate those
on whatever worked. levels based on a variety of
criteria, like how unique they are,
You might wonder, how do I
how fair they seem, how they look
identify what’s “working”? There’s
visually, and so on, then work out
no science to it, but roughly
some simple way to rank them
speaking I do it one of three ways:
based on those scores and try to
The first way is through learn from that. In this way, I
exploration and reflection. ground my work in the nuances of

289
how the engine and The third way is just by filling in
implementation interplay with the gaps, and fixing maps.
player.
When the game is nearing
The second way is applying what completion, I’m on the lookout for
I’ve learned. ways to fill in information
unaccounted for in the existing
With a base of existing levels to
levels. This can be a bit less
then consider, at this point I may
exploratory, since here I’m trying
do some rough sketching of map
to identify and address specific
shapes. This is closer to the
issues. Are more easy stages
beginning with the end in mind,
needed, to better introduce some
though I still largely let the level
of the elements that other stages
design itself a bit during iteration. I
use more abusively? Is there an
won’t scrutinize over the details on
appropriately hard and rewarding
paper, which I’ll instead sort out
stage to bring together skills and
while working in the editor and
knowledge that the player has
format (in other words: expect to
gained, for later in the game?
be making changes during
translation to playable level), but If there’s something that seems to
beginning on paper makes it lose the player by coming out of
easier to explore different overall nowhere while playing an existing
shapes, structures, and set ups level, I might try to refactor that
than what I would produce just part just before it, so that it can
fiddling around in the editor come out more smoothly in the
environment. Since the first phase transition to that idea. If I can’t
was partly just about fooling seem to get that right, rather than
around in the level environment, if forcing it, I might just cut
I kept doing that for this second whatever’s causing the problem.
phase I’d quickly start repeating
myself.
290
I typically build the later levels with different types of tools and
(middle to end) of the game before processes, and designing levels
working on the early levels that for different genres of games.
build up to them. This way, I have Vision by Proxy Second Edition,
a clearer idea of specifically what TriChromic, Swarm, Battleship 88,
the player needs to be prepared Shotgun Debugger, Boom Blox,
for in order to be ready for the Topple, Zylatov Sisters, Exxak,
main levels, based on what Freezing Solid, Crystal Ball, and
worked for those fleshed out Vectorverse all have completely
challenges. Otherwise starting different level formats, gameplay
with the game’s initial levels would styles, and tools.
have to provide an unfocused
I will qualify however that
introduction and practice to ideas
designing first-person shooter
that may or may not be relevant to
levels, or for that matter third-
what works well for later stages.
person adventure game levels, on
Within the development of each account of their architectural
level, I tend to work in iterative complexity and sheer volume of
passes, with a different goal at detailed artwork, have their own
each step of the process. That specific practices different than
process is outlined in the level the ones I’m describing here. The
design entry you already read types of levels that I do most of
though, so I’ll avoid repeating it my design for have either
here. comparatively simple architecture–
2) HOW DID YOU COME TO LEARN THE SKILLS in some cases no physical
YOU NEED TO BE ABLE TO CREATE EFFECTIVE structure–which means I can
LEVELS?
Whatever I know about level generate new maps very quickly.
design comes primarily through Although I didn’t do any level
practice, in particular working on design that wound up in Medal of
different kinds of levels, working Honor Airborne, in part because I

291
was finishing school during that isn’t working out) that aren’t
stage of development, earlier in shaping up as well.
that project I had an opportunity to 4) WHAT ADVICE WOULD YOU GIVE AN
work on prototype levels with AMATEUR LEVEL DESIGNER WISHING TO
PURSUE A CAREER IN THIS FIELD?
members of the team, and the Make levels! Make levels for a
process overhead is much higher variety of types of games, for a
for spaces that large and complex variety of different purposes, and
that need many people with don’t feel stuck to using the tools
different skills to always be on the that you already know (be willing
same page. to learn new software, techniques,
3) HOW DO YOU GO ABOUT PLANNING THE processes, etc.). Ideally, not as a
OBJECT PLACEMENT AND INCLUSION IN THE
LEVELS? short-term goal but as a target, try
I start by coming up with vague to create something that strangers
conceptual plans for areas that will go out of their way to play and
seem appropriate for their then tell other strangers about.
placement and structure (deciding That may seem obvious, but with
for example which area I might so many options out there for
want crowded, safe, a climax, videogames at this point, it can be
etc.), which I then translate into a surprisingly challenging to earn a
playable form by scattering about stranger’s time and attention, and
an initial arrangement of enemies certainly their recommendation.
and items, puzzle elements, That’s a good test though of
whatever. After that it’s largely a whether what you’re doing makes
process of iteration to improve sense without you present to
what’s there, combined with explain and promote it. Because
cutting away any sections or ideas at some point, your content needs
(say, the worst 25-60%, or to explain and promote itself.
sometimes a whole level if it just

292
SE C TI ON 5

Non-Essential Level Art is


Essential
A level is not just a matter
for game design – it
overlaps substantially with
art considerations too. The
layout has to be pleasing. It
has to not be too sparse nor
crowded. As part of that, it
also needs to be decorated!
Level Creation

One of the differences that can might include level pieces that
cause a student or novice project actually do handle collision but are
to stand out in a bad way, looking outside the playable area (though
and feeling unfinished, is the lack be careful to not confuse the
of level art that’s non-essential to player into thinking non-reachable
gameplay. I’m referring of course areas are somehow reachable).
to art other than the main This provides visual interest, and
background, only because I’m can be more flexible for
assuming that main background landmarking areas because the
art’s already accounted for. density and useable
configurations of collidable level
Such non-gameplay art can be
pieces is limited by their
divided into three categories:
consequences on player
VISUAL-ONLY
navigation and action.
This kind of art has no collision
data and is pure decoration. This
293
COLLISION-BUT-DECORATIVE “I’ve made it underground to the
This includes minor obstacle,
caves,” or “I’m finally outside the
potentially adding a bit of variation
castle walls” is just a tile swap, but
to enemy movement and line of
without that tile swap, it’s merely
sight, but mostly just something to
walking between rooms that are
navigate around, or something to
otherwise pretty indistinguishable.
jump over. This provides a reason
to pay attention to the player’s There doesn’t need to be a ton of
character and input while walking non-essential art to make a major
from point A to point B, instead of improvement in a player’s
simply holding a button down for perception of the game. You can
screens at at time. get a lot of mileage out of even a
handful of relatively easily created
ALTERNATIVE-MAIN-COLLISION
If an overhead level’s shape is assets. Having a little bit of non-
defined by placement of trees, essential art, especially if used in
add boulders into the mix. If all three of the areas outlined
there’s water – even if it isn’t above, can improve the first
traversable – have two shades to impression, likelihood of returning
distinguish shallow versus deep. If to the game, and memory about
a side view level’s main the game later.
platforming tiles are metal, also Although I’m calling it non-
have a set of wood; or if you’re essential, I mean only that, strictly
feeling lazy, tint that same metal speaking, it’s non-essential for
blueish for steel or brownish for gameplay, i.e. that the game can
rusty metal. In addition to adding a be feature complete and fully
bit of visual interest, changing functional without it. But make no
usage ratios or switching between mistake: this kind of art is
sets of these helps convey a essential for the game to not feel
sense of meaningful progress barren, for the game’s levels to not
between noticeably distinct areas.
294
all feel the same, and for the game These types of art assets are the
to look done. icing on the cake.
There’s really no excuse to avoid And a cake without icing isn’t
doing it. By design, player ready to show anyone.
attention isn’t focused directly on
these uses of art, so repetition is
pretty easily forgiven. Nor is it
especially time consuming
compared to most other types of
game art, since it’s rarely (or only
very slightly) animated. And, again,
players don’t typically look directly
at it, so quality control and
iteration isn’t really as important as
it is with art for power-ups,
enemies, or player sprites.
For games with more involved
level design, placing these
decorative elements into stages
can often be put off until later in
development. This way stage
blocking and navigation can be
figured out with basic walls. This is
helpful since we’ll often
completely discard some layouts
that aren’t working out as well
before we invest additional time
decorating something that doesn’t
belong in the final version anyhow.
295
SE C TI ON 6

Visual Language in Super Mario


Bros Level Endings
Classic games, especially
those that helped shape the
industry and create a place
now held by digital worlds
in mainstream culture, are
often rich with design
insights just waiting to be
mined and put to new uses.
Level Creation

Every level of Super Mario Bros that, awarding only 100 for
(1985) on the Nintendo crossing at the very bottom. To
Entertainment System ended with help the player reach the top,
either a tall flagpole or a battle nearly all levels end with a stair
with Bowser over a bridge. step structure. Additionally, these
structures (with only a couple of
Super Mario Bros has 32 levels – 8
exceptions) are built to disallow
worlds, each with 4 areas. The 4th
second chances. The areas were
area is always a castle that ends
shaped to prevent Mario from
by getting past Bowser.
climbing back up after a failed
FLAGPOLE SCORING
jump. If air control is used to back
On all flag levels, the player gets
away from the flag mid-jump, in
more points for touching the pole
these cases the best the player
higher when crossing. 5,000
can do is 800 points (running
points are awarded for the very
jump), while a standing jump will
top, 2,000 for even a little below
296
Level endings: the top left is Level 1-1, the top right is Level 1-4, the bottom left is Level 8-1, and the bottom right is
Level 8-4. Note that all water and dungeon levels end above ground, in a common section.

only earn 400, since Mario jumps the top (Super Mario Bros does
higher when running at full speed. not scroll vertically), it’s a hint from
VISUAL LANGUAGE AND EXPECTATIONS the level designer that the end of
The function of these stairs, in the stage is near.
connection to the flagpole scoring,
By establishing this visual
creates a visual language that the
language, the player can also be
player learns to interpret. When
teased a bit. When the level
the player sees steps coming on
includes a partial stair pattern
screen, rising from the ground to
mid-level, that implies the the
297
stage may almost be over. Taking on a second day chapter in a row
just a few more steps exposes a without the night to follow.
pit or some other violation of the
Nothing in the game reveals the
pattern, letting hopes back down,
player’s overall progress toward
but as shown in Levels 5-1, 5-2,
completion, either as a percentage
and 5-3, those inconsistencies
or by exposing the total number of
become mixed into the end steps,
worlds in the game. Unlike a book,
complicating the player’s ability to
it’s impossible to size up how
rely on knowledge of the end
much of the game’s content
pattern. That complication
remains, and unlike a film or TV
translates to more false positives
show there was (and still is) no
and false negatives in the
convention for a videogame’s
remainder of the game.
length. This suggested that no
This pattern also instills an matter which area the player loses
expectation of safety. Since most in, practicing to make it a tiny bit
end stairs have no enemies, it’s further might complete the game.
even more dangerous when that
This deliberate uncertainty creates
pattern is broken by enemies
more excitement about reaching a
placed in the final step area.
new castle – due to thinking it
Notice too the misleading clues might really be the last one – and
during play about which castle will added genuine surprise to seeing
be the real, final one. Level 6-3 Toad each time in place of
has a uniquely colored castle, Princess Toadstool. Until, of
presented at the end of the course, the player finally finds
second night world… after which Princess Toadstool, by which time
still another daytime level is the player has been conditioned to
presented. The game then breaks expect to see Toad – making the
the 2-day, 1-night pattern, ending reward for finishing one final
surprise.
298
7 Being able to work alone has its
advantages. No one to answer
to. No one to compromise with!
However learning to work with
others is a skill. Once mastered,
it opens up new opportunities to
collaborate with others, making
it possible to involve those skills
that others devote their lives to.

Team Projects

299
SE C TI ON 1

Videogame Project Management


for Hobbyists and Students
All managing is difficult. But
managing without having an
official role with authority
brings added challenges!
Here are some practical tips
to simplify matters a little,
enabling your team to focus
all attention on the game.
Team Projects

Joe L. wrote to me: automatic. Project management is


“I’m confident with my ability in
a fundamentally different skill to be
programming and art. One area I’m less studied and practiced.
confident in is my ability to mentally
When working on our own, the
visualize a process from start to finish. The
stakes are lower. The risk of
act of mapping out a project can be very
daunting to me. Any advice you can offer
wasting time by being overly
on good game project management would ambitious puts no one’s time at
be extremely helpful. Tips on avoiding stake but our own. Uncertainty
quicksand would be great.” about what’s happening next isn’t
blocking someone else’s work.
As he’s rightly pointed out,
Communication of our constantly
videogame development skills like
changing ideas is a non-issue.
programming, design, and art
don’t transfer clearly to project As soon as the time, talent, and
management, nor is it natural or future prospects of others are

300
involved, the stakes go way up. others, I picked up that these
Even at a student or hobbyist challenges or methods were by no
level, not knowing what you’re means unique to my own
doing at the helm switches from particular background or style.
exploratory wandering (when done Here are some things that I wish I
alone) to high pressure had known sooner.
responsibility (when done with the MOCK-UP SCREENSHOT AS DESIGN DOC
time of others). Photoshopping a “screenshot” (i.e.
not really a screenshot) before the
Even though a lot of these points
game exists goes a long way. A
may also relate to solo project
per-pixel representation of what a
planning, my focus here is on
moment of the finished game
team projects, since that’s when
might look like – with
this sort of work becomes
consideration given to the sort of
particularly important. Even
graphics work and programming
though I suspect some of these
that can fit into the time available –
relate to project management in
concisely communicates
general, including how it may be
dimensions, layout, and user
relevant to larger commercial
interface elements. The
production, my experience in
programming focus becomes an
those areas is overshadowed by
exercise in bringing that
my time on student and hobbyist
screenshot to life, which prioritizes
projects, and so I’ll leave any such
gameplay first (as opposed to
extrapolations up to reader
menus/etc.), and offers clear
discretion.
reminders of what’s missing
While leading my first project (health bar serves as a reminder
teams, I hit a number of these that health and game over need to
discoveries through trial-and-error. be hooked up, etc.). It doesn’t
When I began helping with more
team projects that were run by
301
need to be final art quality, but it project, and for the rest focus on
should be presentable. execution rather than the high
level questions. It’s okay for the
In the process you’ll give artists a
health to be a percentage bar or a
unified sense of scale and
row of hearts. It’s okay to collect
dimensions, level designers an
items to earn extra lives. Leonardo
idea of the structures involved,
da Vinci didn’t reinvent paint, and
and dozens of questions that no
he didn’t invent the woman, either;
one would have thought to ask
he changed the way that billions of
explicitly are answered simply by
people have seen the world since
putting the picture together.
by simply having done a better job
ONE SIDE OF ONE PAGE DESIGN DOCUMENT
of painting a woman.
In terms of design document, if
there is one, don’t let writing or TAPPING OTHER GAME REFERENCES
Referencing games that others
maintaining the document take
know on the team can be a
over or cut into development time.
powerful shortcut. If a platformer
If it can all be on one side of one is being worked on, there’s a
page, briefly explaining what broad history of existing
happens and what’s involved, that platformers that could be
will have more utility than a 10-20 referenced to clarify what sort of
page document that no one reads jumping, attacking, or movement
and has too many interconnected is planned. Particularly with the
assumptions to be easily updated. explosion of free-to-play, work-on-
FOCUS ON ONE OR TWO INNOVATIONS any-computer Flash games,
Unless the project’s purpose is to there’s almost always a few handy
be an experimental art game: references that can be linked to for
don’t be afraid of applying some general gameplay or interaction
control, interface, and design demonstration. It’s good to not
conventions. Experiment with, at rely entirely on such references,
most, one or two aspects per
302
though, since inevitably some interested in a compatible
otherwise interested people won’t direction.
know the games mentioned, and
If nothing exists that can be
need to get the gist before they’ll
pointed to and clearly described
investigate examples.
as, “like that,” then the prototype
If there’s no example out there fills the role of making that
demonstrating what you have in communication possible. Even if
mind, you need to make one first an outside example already exists
(see next point). (Mega Man? Space Invaders?
King’s Quest?), putting together
Note that the clarity that comes
the core gameplay before bringing
from this sort of communication
others onboard is proof that you’re
can be a double-edged sword:
capable of putting a project
suggesting the game with a five
together. “I know how to program
month development window is
it” doesn’t win much credibility;
going to be “like Halo,” or even
“player movement and platforms
better “like World of Warcraft”,
work already, we’re ready to focus
reveals how little a would-be
on animations, sound, power-ups,
producer understands about game
enemy movement, and level
development, which will keep
design” shows that the project is
serious developers from joining
ready for that kind of work.
the march over the cliff.
BUILD A PROTOTYPE IN ADVANCE This is about addressing a
If it’s possible to get a playable potential time black hole before
prototype (the core of the game, it’s too late. The less has been
ready to be expanded upon) figured out when reaching out to
working prior to bringing others others, the more disparity there
onboard, this can help can be in expectations – some
tremendously in ensuring people people coming onboard imagine it
are on the same page, and as a 3/4 overhead action game,
303
some imagine it as a first person those respective duties. If roles are
adventure, some imagine it as an ill defined, it’s likely to run into a
RPG – and that mismatch in variety of stepping on each other’s
interests can dovetail the project toes and diffusion of responsibility,
throughout as members pull it in both of which cause time to be
different directions to be more like lost to thrown away assets and
what they want to work on. “It hopeless confusion.
could be about sci-fi, wild west, TRACKING ISN’T THE SAME AS LEADING
modern day, or abstract visuals” Facilitate, motivate, and make
may attract people with 4 different sure everyone has as much to do
types of interests, many of whom as they’d like to be doing – it isn’t
may either be saddened by the sufficient to track what people do,
direction it takes, choose to leave any more than it’s a football
when they don’t get their way, or coach’s duty to simply record
thrash until the last week of what happened after each play, or
production trying to wrestle back a general’s to jot down how things
to what they joined for. unfolded after the war. Being
aware of what everyone has done
By contrast, if the core of the
in the past week is important, but
gameplay and concept is stood up
it’s equally important to be aware
beforehand, so that everyone can
of what everyone is doing the
see and try it, people that have
following week.
interests aligning with the direction
it’s moving it are more likely to People like clarity. People like the
self-select. confidence of direction. People
CLEAR FUNCTIONAL ROLES like to feel like they’re a part of a
Clearly define roles to make coordinated effort.
accountability clear. One person
A word of caution: note that this is
can of course wear multiple hats,
not about giving orders, bossing
provided that they keep up with
others, or stamping out ideas.
304
Rather, it’s about having a plan. just feel more comfortable
That plan can (and often should) bringing things up face-to-face,
be tentative and up for discussion, and sometimes preparing for the
but having one helps ensure that if meeting is the only hour that week
everyone just chugs forward someone spends reflecting on
roughly following the shared their involvement with the project.
schedule, the work will all come
Have a plan for meetings. A half
together in a meaningful and
page list of bullet points is fine –
worthwhile way.
the agenda need not serve as a
WELL-RUN MEETINGS AREN’T USELESS standalone form of notes. This
People complain about useless
makes it more clear when various
meetings. They should. Useless
topics are coming up, increases
meetings are infuriating. Useful
the chance of the meeting having
meetings, by comparison, are
value, and generally is part of
terrific. Meetings aren’t the
respecting the time of peer
problem – poorly run meetings are
developers. Are there decisions
the problem.
that need to be made? How does
Run correctly, meetings are the latest version of everyone’s
efficient, get everyone on the combined efforts look, play, and
same page, clarify objectives for sound? What is there to look
the week, reassure those involved, forward to coming together over
and result in some discoveries or the next week?
action items that would have
Table one-on-one discussions
otherwise gone unnoticed.
about particular aspects to be
There are things that come up in resumed at another time or
person which absolutely won’t setting, even if only after the group
come up by e-mail or text chat. meeting adjourns. If the sprite
Sometimes it’s in the tone artist and the audio person need
someone uses, sometimes people to discuss their work to make sure
305
the appearances fit the sound Better answers are along the lines
effects being made, there’s no of “By Friday, we’ll have the level
reason for the programmer or level format saving and loading,” or “By
designer to be there unless they Friday, we’ll have the second half
want to be. of our sound effects hooked up
with placeholder files.” The weekly
Let the team members have input
plan can be adjusted, if the
on project design and direction
schedule begins to fall behind, but
(both of which are good), but don’t
it’s better to do that as soon as
confuse that with counting on the
reality is starting to take its toll,
team to run the meetings (which is
and not on the tail end of a project
bad). Several people trying to do
after other roles drove forward
the work of one is inefficient and
under the assumption that certain
ineffective – keeping order in a
things (3D animations, boss fights,
meeting is a one person job.
whatever) would be ready.
CLEAR WEEKLY GOALS
With accountability roles well Who will be doing what each
defined, a rough weekly schedule week? What is one tangible result
can be drawn up – each week, that each team member can
what is being done for audio? independently take on during that
Functionality? Level content? time? Are there things the
programmer or designer can do in
“What are you doing this week”
a different order to unblock
should never be answered with,
another’s animations, audio, or
“More programming.” The goal is
other work showing up in-game
not to spend a certain amount of
sooner?
time every week in front of a
computer typing – it’s to get more SCHEDULE BACKWARD FROM COMPLETION
Creating each week’s goals one
things working, or to fix things that
week at a time is the equivalent of
are broken.
driving around the highways until
306
we run out of gas, hoping that development, to see what’s falling
when the car stops, we’re happy behind and needs to be re-
with where we are. That’s insane, evaluated. If any developer’s
but it’s also a surprisingly common objectives start to fall two weeks
way for first-time project leads to or more behind, and strategizing
manage a team (regardless of how with that team member doesn’t
much game development they’ve seem like it’s going to put things
done on their own). back on track, find a way to
design around the loss of that
An excel spreadsheet can be a
work, having less of what that
lifesaver for this – early on, make
developer projected, or picking up
each column a Friday date, make
the slack (either yourself or via
each row a developer’s role, then
another reliable team member).
do your best to figure out how to
fill in those remaining cells for who TIME ESTIMATING: MIN/MAX/AVG
Figuring out how long something
might be able to realistically get
will take to do is a notoriously
what done each week. Work
difficult thing to do, especially if it
backward from the end result, or if
isn’t something that you’ve done
you’ve already started some
before. If it’s not your skill area, be
aspects of production, work in
sure to speak with someone that
from both sides and meet in the
does it when working out the initial
middle. Work with team members
schedule. Even then, people can
to figure out if they see their
have a hard time, since there’s
involvement as different, expect
inevitably some flexibility in how
that they’ll have more or less time
much time gets poured into each
to offer, or have suggestions on
thing. One simple technique
how to more effectively use the
around this is to ask for how fast it
time available.
could possibly be done
That spreadsheet is also a handy (minimum), how long it might take
tool for peeking at weekly during
307
in the worst case (maximum), and composition, manual writing, or
then base estimates on roughly menu design may only be relevant
the average, tending toward the for a couple of weeks in the
maximum end. project, depending upon how
someone prefers to work, and
There’s a tendency to think in best
what else has to be done before
cases only when scheduling,
they can start (it’s often hard to
which runs into disaster when at
put together a cohesive manual
least half the time conditions are
PDF or readme until the game is
far from best case.
almost done). In those cases it’s of
1-2 NIGHTS PER WEEK PER DEVELOPER
course unnecessary to expect that
For students and hobbyists there’s
they hang around doing
coursework or rent-paying work to
something weekly.
contend with, and so estimating
for 1-2 focused nights of effort per There’s generally no reason to
week per developer tends to be have people track their hours, or
fairly realistic. If someone can fit in to be Draconian about someone
more than that, great (though I missing one week due to a perfect
would advise against expecting it storm of exams/deadlines/
to be consistent, as competing personal. The 1-2 night estimate is
deadlines or life issues inevitably simply a rough guideline for
crop up). If someone can’t fit in modelers, animators, level
1-2 focused nights of effort per designers, etc. to put a meaningful
week, then they aren’t able to put dent in the project week by week.
enough time in to make a tangible Not 5-7 days per week
difference on the project anyhow, (unrealistic), and not 0-3 hours per
and may as well not be with the week (not useful). The important
project. thing is that the developer’s
objectives are getting done, within
There are, of course, exceptions.
a week or so of when estimated,
Certain specializations, like music
308
and adjusting plans if necessary if between rework or bizarre
it turns out that the original inconsistencies.
schedule estimates were overly
If there’s one member solely
optimistic.
responsible for the audio, it’s less
DIVIDING WORK REQUIRES MORE WORK likely to have dramatic variation in
Involving multiple programmers
volume and duration. Music
takes a substantially different type
composition, of course, separates
of programming expertise to
nicely from sound effect
structure shared code properly (or
production, and voice recording (if
else a very clear cut separation).
present) may also be split out if
Having 5 programmers doesn’t get
necessary.
the code done 5X faster, it adds a
substantial overhead of In general: if it can be done well by
communication, one person, don’t have it spread
misunderstanding, necessity for between two.
internal documentation, and FOCUS DESIGN TO FIT TIME AVAILABLE

disagreement about abstract A lot of developers do this


details that (mostly) won’t affect backwards, extending their
the outcome. schedule arbitrarily to keep up
with expanding design ideas.
If art is split, it should be carved
Those projects, even the ones with
into distinct compartments that
millions of dollars, a full staff of
won’t result in inconsistent visuals
experienced professionals, and
serving in parallel roles (ex. one
years of development time tend to
does background art, one does
Duke Nukem Forever into the
characters, one does power-ups).
abyss of unfinished games.
This also minimizes
communication overhead, and the If people join the team with the
likelihood of running into a choice expectation that the project will
take 5 months of commitment, as

309
the producer, you are the guardian SCOPE CONTROL
About 3/4 through the project’s
to ensure that promise is kept, and
allocated time, make a list of what
that there’s something complete to
must be done for the game to be
show at the end of that time
presentably finished – not
period. If others want to stick
necessarily complete to the
around after that initial release and
original vision, but first-and-
work on an expansion pack or
foremost done. Only allow that list
sequel together, more power to
to get shorter, ideally by cutting
them, but don’t let others in the
anything on that list if it turns out
group be held hostage by a poorly
to not be essential.
managed schedule dragging on
indefinitely before they can share Rather than seeing great disparity
the fruits of their labor. between what was originally in
mind vs what’s in the game, try to
(Note that, fairly reliably, the
think in terms of starting on
project’s production will tend to
something “new” with a
slip a little beyond the time
substantial head start. Imagine
window, as a matter of tying up
you’re given a pile of assets
and fixing things leading to more
(conveniently, the art, sounds,
tying up and fixing things. That’s
levels, and functionality currently
true even if that inevitability is
yielded by development to date),
accounted for in planning - i.e.
with the challenge to weave it
Hofstadter’s Law: “It always takes longer
than you expect, even when you take into
together coherently into a finished
account Hofstadter's Law.” Don’t be videogame, which may or may not
surprised when it happens, try to be aligned with what was originally
not to use it as an excuse, and envisioned.
tough it out.) When features and requests come
up mid-development that seem
tempting, but would either take
310
the project in a wildly different Instead, feel good about
direction or add significantly to the defending the time and work of
game’s development needs (say, the four other people involved.
adding RPG-like character dialog That’s a different game, to be
to what was previously a side- taken on a different time, and if
scrolling action or overhead they wish to assemble a team to
strategy game), table the build that vision, nothing prevents
suggestion for a sequel. If the core them from doing so separately. (Of
game initially released turns out course, if the idea is lobbied
great, those team members effectively to others, with half the
passionate about those additional team sold on it, that’s another
ideas have a strong foundation to situation entirely. The best course
build upon. The initial release may of action in this situation is
even be helpful in pulling significantly more blurry.)
additional talent onto the project GOOD ONES NEED YOU TO ‘FIRE’ BAD ONES
more relevant to new types of If someone is having more of a
challenges, filling in gaps created negative impact on the project
by others that choose to move on than a positive one, or even if
to something different. they’re simply having no impact,
PROTECT THE TEAM MEMBER’S TIME let them go. It’s not necessary to
If there are five people involved in be a jerk about it, it should never
a game, all of whom came be done in front of other people,
onboard agreeing to an initial and it’s good to try to discuss and
vision, and then one of them attempt other options first (would
suggests a change that will take they be better able to help the
the project in an entirely different project in a different role?), but on
direction and grossly expand the occasion it’s necessary for the
time required, don’t feel bad about good of the team and the good of
being resistant to that request. the project.

311
Someone should not wind up in 4. Some people have it so
the credits simply because they ingrained into their worldview that
came around, offered to do quitting is a bad thing that they
something, then were hard to get may be hoping you’ll let them go,
a hold of or never contributed but lack the courage or conviction
anything. That’s unfair to the to quit on their own. Set them free.
people building the videogame. It may be a relief.
Healthy perspectives on this 5. Do it to defend the efforts and
difficult matter: integrity of others on the team,
because as the producer or
1. The person being let go usually
project lead, you’re the only
isn’t surprised – they know better
person in a position to do it.
than anyone how much they have
Nobody wants to organize a group
or haven’t been contributing.
“vote off the island” of a stray
2. As a student or hobbyist, you individual, because it’s necessarily
aren’t disrupting their income, indicative of group condemnation
throwing off their rent payments, and conspiring behind someone’s
or turning their life upside down. If back. Take responsibility. If three
they weren’t constructively other team members are annoyed
involved anyway, they have by the fourth team member
nothing to lose but the idea that seriously in need to be let go,
this was filling a slot in their life they’ll be as frustrated by your
that would be better filled by ineffectualness or lack of
something that’s a better fit. awareness as team lead as they
3. If they weren’t using the time to are about the team member
work on this project, then they needing to be let go. It’s rare, it’s
have plenty of opportunity to be important, but as project lead,
using that time on something else people are counting on you to
instead.
312
know when and how to make that feedback can be observed in the
call. context of the work that was done.
PREPARE FOR DISASTER: MAKE BACKUPS I hear “almost done” about a lot of
Nightly, or at the very least weekly,
hobby videogame projects. This is
make regular backups of source
as distressing as it is inexcusable.
code, asset files, documentation,
If it’s “almost” done, then do the
anything that the team would be
last 6 hours already and make it
devastated to lose. SVN
done. Nobody wants to drive a car
everything to a remote server,
that’s “almost complete,” or sleep
upload a zip to your student web
under a roof that’s “almost
space, use an external hard drive
repaired.” Even if the game isn’t a
– whatever method works for your
high profile project likely to get a
budget and comfort. If a hard drive
lot of publicity, it’s likely to get
fails, whether it’s yours or anyone
orders of magnitude more players
else’s on the team, that should not
if it’s done than if it’s almost done.
be the end of the project. The
producer and lead is accountable If the project needs to end earlier
for seeing to the completion of the than anticipated, due to a team
project, and any potential risk that split, a dramatic schedule
could lead to non-completion is disruption (core people moving
up to that position to mitigate. away usually falls into this
category), or other factors, triage
FINISH IT
Less is learned from an unfinished it. At least stitch back up the
project. The thoughts are never openings, however far it may be
completed, the scope is never fully from the ideal or original vision, so
understood, the project is never that it’s able to stand on its own.
presentably put before others in a We get better at what we practice.
way that their reactions or Practicing doing unfinished work

313
will only make someone better at appealing excuse to slip past an
doing unfinished work. end-of-semester deadline.
LAUNCH PLAN
After the game is done, don’t
release it immediately. If you can’t
wait, it’s not the end of the world
to make it available as soon as it’s
presentable. However, an extra
couple of weeks to put together
some public facing material –
compelling screenshots, short
description text, simple web site
(ideally on its own domain), and a
marketing video highlighting key
features and qualities can go a
long way in getting more people
playing.
I’d suggest not including that
launch plan in the original
schedule. Keep a marketing
timeline (if any) separate from the
development schedule, or it’s
likely – as the QA and testing time
at the end often does – to become
subsumed as the project goes
past its deadline. “Well, we were
counting on not releasing until July
anyway…” is a dangerously

314
SE C TI ON 2

Communication is a Game
Development Skill, Part 1
Many people that invest
their time in mastering
their craft - programming,
design, art, or otherwise -
find difficulty in working
with others. Let’s look at
why this is worth fixing, and
two main patterns of issues.
Team Projects

This subject is an incredibly concepts to master, and practice


important one that gets a lot less to be done before someone’s
attention than it should. Most prepared to bring communication
videogame development guides as a valuable skill to a team.
and tutorials fail to acknowledge
Game Developers Especially
that communication is a game
development skill. Surely, everyone in the world
needs to communicate, and could
Knowing how to speak and write benefit from doing it better. Why
effectively is right up there pick out game developers in
alongside knowing how to particular?
program, use Photoshop, follow
design process, build levels, I don’t meant to claim that only
compose music, or prepare game developers have
sounds. As with any of those skills communications issues. But after
there are techniques to learn, spending much of the past ten
315
years around hundreds of is there a communication role in
computer science students, indie the same way?
developers, and professional
There absolutely is. There are
software engineers, I can say that
several, even.
there are particular patterns to the
THE PRODUCER
types of communication issues
Even though on small hobby or
most common among the game
student teams this is often
developers that I’ve met. This is
wrapped into one of the other
also an issue of particular interest
roles, the producer focuses on
to us because it’s not just a matter
communication between team
of making the day go smoother;
members, and between team
our ability to communicate well
members and the outside world.
has a real impact on the level of
Sometimes this work gets
work that we’re able to
misunderstood as just scheduling,
accomplish, collaboratively and
but for that schedule to get
even independently. Game
planned and adjusted sensibly
developers often get excited
requires a great deal of
about our work, for good reason,
conversations and emails,
but whether a handful of desirable
followed by ongoing
features don’t make it in because
communications to keep everyone
of technical limitations or because
on the same page and on track.
of communication limitations,
THE DESIGNER(S)
either way the game suffers for it
One way to think about the
the same.
designer’s role in game
Whose Job is It? development is to communicate
If programmers program, with the player through the game.
designers design, artists make art, Indicating what’s the goal, what
and audio specialists make audio, will cause harm or benefit, where
the player should or shouldn’t try
316
to go next, expressing the right table. Those people aren’t
amount of internal state necessary the lead on account of
information – these are matters of being the best programmer,
a game’s design more so than its designer, or artist – though of
programming. Depending on a course they do need to be skilled.
game team’s skill makeup, in They’re in that position because
some cases the designer’s only they can also lead others
direct work with the game is in effectively, which involves a ton of
level layouts or value tuning, communication in all directions: to
making it even more critical that the people they lead, from the
within the team a designer can people they lead, even mediating
communicate well with communications between people
programmers, artists, and others they lead or the people they lead
on the team when and where the and others.
work intersects. On a small team
Some of the most talented
when the person mostly
programmers, designers, artists
responsible for the design is also
and composers that I’ve met have
filling one or more other roles
been quiet people. This isn’t an
(often the programming)
arbitrary personality difference
communication then becomes
though. In practice it limits their
integral to keeping others involved
work – when they don’t speak up
in how the game takes shape.
with their input it can cost their
THE LEADS game, team, or company.
On a team large enough to have
THE WRITER
leads, which is common for a
Not every game genre involves a
professional team, the Lead
writer, but for those that do,
Programmer, Lead Designer, or
communication becomes even
Lead Artist also have to bring top
more important. Similar to the
notch communication skills to the
designer that isn’t also helping as
317
a programmer, a team’s writer (public relations) people and HR
typically isn’t directly creating (Human Resources) employees. If
much of the content or you’re a hobby, student, solo, or
functionality, aside perhaps from indie developer, you’ve got to
actual dialog or other in-game and wear all of these hats, too!
interstitial text. It’s not enough to
There are two main varieties of
write some things down and call it
communication issues that we
a day – the writer and content
tend to encounter. Although they
creators need to be in frequent
may seem like polar opposites, in
communication to ensure that
reality they’re a lot closer than
satisfactory compromises can be
they appear. In certain
found between implementation
circumstances one can even
realities and the world as ideally
evolve from the other.
envisioned.
NON-DEVELOPMENT ROLES
Challenge 1: Shyness
And all that’s only thinking about The first of these issues is that
the internal communications on a some of us can be a little too shy.
team during development. As I mentioned, Some of the most
Learning how to communicate talented programmers, designers,
better with testers, players, or if artists and composers that I’ve
you’ve got a commercial project, met have been quiet people. In
with your customers and potential practice it limits their work.
new hires (even ignoring investors
It’s very easy to rationalize
and finance professionals), is a
shyness. After all, maybe the
whole other world of challenges
reason a talented, quiet person
that at a large enough scale get
was able to develop their talent is
dealt with by separate HCI
because they’ve made an effort to
(Human-Computer Interaction)
stay out of what they perceive as
specialists, marketing experts, PR
bickering. Unfortunately this line of
318
thinking is unproductive in helping interests, and backgrounds are
them and the team benefit more different.
from what they know.
Challenge 2: Abrasiveness
Conversation between team
members serves a real function in Sometimes shyness seems to
the game’s development, and if it’s evolve as an overcompensation
going to affect what gets made for unsuccessful past interactions.
and how it can’t be dismissed as Someone tried to speak up, to
just banter. Sometimes work share their idea or input, just to
needs to get done in 3D Studio add to someone else’s point and
Max, and sometimes it needs to yet it somehow wound up with
get done around a table. hurt feelings and no difference in
results. Entering into the
Another factor I’ve found discussion got people riled up,
underlying shyness is that a one too many times, so after one
person’s awareness of what’s last time throwing hands into the
great in their field can leave their air out of frustration, a developer
self-confidence with a ding, since decides to just stop trying. Maybe
they can always see how much they feel that their input wasn’t
improvement their work still needs properly received, or even if it was
just to meet their own high it simply wasn’t worth the trouble
expectations. involved.
It doesn’t matter though where an As one of my mentors in my
individual stands in the whole undergraduate years pointed out
world of people within their to me, “Sometimes when people
discipline, all that matters is that are fighting against your point,
developers on the project know they’re not really disagreeing with
different things than one another. what you said. They’re disagreeing
That’s inevitably always the case with how you said it! If you made
since everyone’s strengths,
319
the same point differently they their engaging with the group is
might get behind it.” the cause of the trouble. This is in
turn followed by backing off,
He was absolutely right. Once I
toning down their level of personal
heard that idea, in addition to
investment in the dialog, and
catching myself doing it, I began
(often bitterly) following orders
to notice it everywhere from others
from the action items that remain
as well. It causes tension in
after others get done with the
meetings, collaborative classroom
discussion.
projects, even just everyday
conversations between people. IN PART 2: PRACTICAL STRATEGIES
In either case – shyness or
Well-meaning folks with no
abrasiveness – and in any role on
intention of being combative,
a team, nobody gains from having
indeed in total overall agreement
one less voice of experience, skill,
about both goals and general
and genuine concern involved.
means, often wind up in
Simply tuning out isn’t doing that
counterproductive, circular
person, their team, the game, or
scuffles arising from an escalation
the players any real benefit. The
of unintended hostility.
issue isn’t the person or their
There are causes and patterns of ideas; the issue is just how the
behavior that lead to this problem. communication is performed, and
After 10 years of working on it, I’ve just as with any other skill a
gotten better about this, but it still person can improve how they
happens on occasion, and it’s still communicate.
something that I have to actively
Failing to figure out a way to
keep ahead of.
overcome these communications
It’s understandable how someone challenges can cause the team
could run through this pattern only and developer much more trouble
so many times before feeling like later, since not dealing with a few
320
small problems early on when
they’re still small can cause them
to grow and erupt later beyond all
proportion.
In the next section, we’ll go over
some practical strategies, more
considerations, and outside
resources that I’ve found helpful in
making continual progress toward
become a better communicator,
and by extension, a happier and
more productive videogame
developer. My hope is that some
of these will speak to some of the
challenges that you or your peer
developers are up against, too.

321
SE C TI ON 3

Communication is a Game
Development Skill, Part 2
In this next part we’ll look
through a mixed bag of
tools that we can consider
and utilize when trying to
improve our communication
with collaborators. We owe
it to our teams (and friends)
to polish our rough edges!
Team Projects

In the previous section, I identified reasonably – then the scale and


a couple of common points of types of projects that it’s possible
trouble that arise for videogame for you to work on expands
developers. Communication tremendously, because being a
matters! If communication skills good communicator is essential to
are in bad enough shape, no winding up as a meaningful part of
matter what other technical or (or even starting and leading) any
artistic skills have developed, it’ll team of other developers who are
be hard to get others to bringing their own respective
collaborate, and hard to get skills, experience, and inspiration
players and reviewers to hear into the picture.
about the work. On the other end LISTENING AND TAKING TO HEART
of the spectrum, if you You’ve heard this all your life.
communicate masterfully enough You’ll no doubt hear it again.
– persuasively, clearly, fairly and Hopefully every time
322
communication comes up this positive way that people can feel
gets mentioned too, first or good about being involved with.
prominently. DON’T CARE WHO WINS, EVERYONE WINS
There’s no winner in a
Listening well, meaning not just
conversation.
hearing what they have to say or
giving them an outlet but trying to This one also probably sounds
work with them to get at obvious, but it’s an important one
underlying meaning or concerns that enough people run into that it
and adapting accordingly, is way isn’t pointed out nearly enough.
harder than it sounds, or at least Development discussion doesn’t
more unnatural than we’d like to need to be a debate. Even to the
think. You can benefit from extent that creative tension will
practicing better listening. I can inevitably present certain
say that without knowing anything situations in which incompatible
about you, because everyone – ideas are vying for limited
presidents and interns, parents development attention on a
and kids, students and teachers – schedule, debate isn’t the right
can always listen better. way to approach the matter.
There’s a tendency, even though In one model for how a dialog
we rationally know it’s out of touch exchange proceeds, two people
with reality, to think of oneself as with different ideas enter, and at
the protagonist, and others like the end of the exchange, one
NPCs. Part of listening is person won, one person lost. I
consciously working to get past don’t think that anyone
that. The goal isn’t to get others to consciously thinks about dialog
adopt your ideas, but rather it’s to this way, but rather it may emerge
figure out a way forward that gains as a default from the kinds of
from the multiple backgrounds exchanges we hear on television
and perspectives available, in a from political talking heads, movie
323
portrayals of exchanges to with a negative, hostile feeling or
establish relative status between person.
characters, or even just our
Be friendly about it. Worry first
instinctive fight or flight sense of
about understanding the merits
turf.
and considerations of their point,
Rather than thinking in terms of then about your own perspective
who the spectators or an impartial being understood for
judge might declare a winner, consideration. Notice that neither
consider which positions the two of those is about “convincing”
people involved would likely take them, or showing them the “right”
in separate future arguments. way. It’s about trying to
Avoid spectators when possible, understand one another because
as it can often pollute an without that the rest of discussion
otherwise civil exchange with just amounts to barking and
defensive, ego-protecting battling over imagined differences.
posturing. YOU MIGHT JUST BE WRONG
Speaking of understanding one
If all of your prior references have
another, don’t ever be afraid to
led you to believe strongly about a
back down from a point after
particular direction, you only do
figuring out what’s going on, and
that rhetorical position, as well as
realizing that there’s another
your team and project, a
approach that’ll work just as well
disservice by creating opponents
or better. There’s a misplaced
of it. Whenever we come across
macho sense of identity attached
as unlikeable, especially in matters
to sticking to our guns over
like design, art, or business where
standing up for our ideas –
a number of directions may be
especially when the ideas aren’t
equally viable, then it doesn’t
necessarily thoroughly developed
matter what theoretical support an
option has if people associate it
324
and aren’t exactly noble or golden listened to, acknowledged, and
anyhow. like there’s a better chance you’re
considering not just your own
A smart person is open to
initial thoughts but theirs too.
changing their mind when new
When a point gets settled,
information or considerations
whichever way things go, let the
come to light. You’re not playing
difference go instead of forming
on Red team competing against
an impression of who’s with or
Blue team. You’re all on the same
against you. Such feelings have a
team, trying to get the ball to go
way of being self-fulfilling. In
the same direction, and maybe
practice, reasonable people are for
your teammate has a good point
or against particular points that
about which direction the actual
come up, not for or against
goal is in.
people.
The other side of this is to give the
When an idea inevitably gets
other person a way out.
compromised or thrown out, being
Presenting new information or
a skilled communicator means not
concerns may make it easier for
getting bitter or caught up in that.
them to change their mind, even if
Don’t take it personally. It’s in the
that particular information or
best interests of the team, and
concern isn’t actually why they
therefore the team’s members
change their mind, simply because
(yourself included), that not every
it can feel more appropriate to
idea raised makes it into
respond to new information then
implementation or remains in the
to appear to have been uncertain
final game.
in the first place. Acknowledging
the advantages in the position BENEFIT OF THE DOUBT, ASSUME THE BEST
A straw man argument is when we
they’re holding doesn’t make your
disagree with or attempt to
position seem weaker by
disprove a simplified opposition
comparison, it makes them feel
325
position. In informal, heated further understand. Alternatively,
arguments over differences in even help them further develop
politics, religious, or cultural their idea by looking for additional
beliefs, these are frequently found merit to identify in it beyond what
in the form of disagreeing with the they might have originally had in
most extreme, irrational, or mind – maybe from where you’re
obviously troubled members of the coming from it has possible
group, rather than dealing with the benefits that they didn’t realize
more moderate, rational, and mattered to you.
competent justifications of their
If the idea you may be holding is
most thoughtful adherents. This
different than what someone else
leads to deadlock, since both
is proposing, welcome your idea
sides feel as though they’re
really being put to the test by
advancing an argument against
measuring it against as well put-
the other, yet neither side feels as
together an alternative as the two
though their own points have been
of you can conceive. If it gets
addressed.
replaced by a better proposal that
When the goal is to make a more you arrived at through real
successful collaboration, rather discussion and consideration, or
than to just make ourselves working together to identify a path
temporarily feel good, the right that seems more likely to pan out
thing to do is often the opposite of well for both of you, all the better.
setting up a straw man argument. YOUR FRUSTRATION IS WITH YOURSELF
Assume that the other person is This is one of those little life
coming from a rational, informed, lessons that I learned from my
well-intentioned place with their wrestling coach which has stayed
position, and if that’s not what with me well after I finished
you’re seeing from what has been participating in athletic
communicated so far, then seek to competitions. Most of the time
326
when people are upset or clear. Frustrated with someone
frustrated or disappointed, they’re that doesn’t understand
upset or frustrated or something that you find obvious?
disappointed mostly with Your frustration well may lie in your
themselves, and directing that at feeling of present inability to
somebody else through blame coherently and productively
isn’t ever going to diffuse it. articulate to that person exactly
what it is you think they’re not
Even if this isn’t 100% completely
understanding.
and totally true in every situation –
sure, sometimes people can be If your point isn’t well understood
very inconsiderate, selfish, or or received but you believe it has
irresponsible and there may be value that isn’t being rightly
good reason to be upset with considered, rather than assuming
them – I find that it’s an incredibly the other person is incapable of
useful way to frame thinking about understanding it, put the onus on
our emotional state because it yourself to make a clearer case for
takes it from being something the it. Maybe they don’t follow your
outside world has control over and reference, or could better get what
changes to focus to what we can you’re trying to say if you captured
do about it. it in a simple visual like a diagram
or flow chart. Maybe they
Disappointed with someone
understand what you’re saying but
violating our trust? Our
don’t see why you think it needs
disappointment may be with our
to be said, or they get what you
failing to recognize we should not
mean but don’t see the
have trusted them. Upset with
connection you have in mind for
someone for doing something
what changes you think it should
wrong? We may be upset with
lead to.
ourselves for not making the
directions or expectations more
327
Clarify. Edit it down to summary cemented those decisions tend to
highlights (people often have become.
trouble absorbing details of an
There are two types of
argument until they first already
miscommunication that can come
understand the high level). Explain
from this sort of
it another way to triangulate.
misunderstanding: mistaking your
Provide a demonstration case or
own tentative ideas for being
example. If there’s a point you
definitive, or mistaking someone
already made which you think was
else’s tentative ideas for being
important to understanding it but
definitive. During development,
that point didn’t seem to stick, find
and as more people get involved,
a way to revisit it in a new way that
projects can change and evolve a
leads with it instead of burying it
bit to reflect what’s working or
among other phrases that were
what isn’t, or to take better
perhaps too disorganized at the
advantage of the strengths and
time to properly set up or support
interests of team members.
it.
If there was an idea you pushed
MISTAKING TENTATIVE FOR DEFINITIVE
Decisions can change. When for earlier in a project and people
they’re in rough draft or first-pass, seemed onboard with it then, it’s
they’re likely to – that’s why we do possible that discoveries during
them in rough form first! It’s easier development or compromises
to fix and change things when being made for time and resource
they’re just a plan, an idea, or a constraints have caused it to
prototype, and the more they get appear in a modified or reduced
built out into detail or stick around form. It might even be cut entirely,
such that later decisions get made if not explicitly then maybe just
based on them, then the more lost in the shuffle. Before raising a
case for it, it’s worth rethinking
how the project may have
328
changed since the time the idea they are necessarily tentative. This
was initially formed, to determine happens perhaps because of how
whether it would need to be far off the idea relates to the
updated to still make sense for the future, and how much will be
direction the team and game has discovered or answered between
gone in. now and then that is unknown at
the time of the initial conception
Sometimes the value of ideas
and discussion. If a project
during development is to give us
recruits people with the intention
focus and direction, and whether
of supporting a dozen types of
the idea survives in its originally
cars, but during development
intended form is secondary to
reality sinks in and only three
whether the team and players are
different vehicles make sense in
happy with the software that
favor of putting that energy into
results. It may turn out to be worth
other development necessity,
revisiting and bringing back up,
those things happen. People get
possibly in a slightly updated
optimistic, people make planning
form, as maybe last time was at a
mistakes, and people cannot
phase in development when it
predict the future – but it’s
wasn’t as applicable as it might be
important to not confuse those
now. Or it may be worth letting go
perfectly human imperfections
as having been useful at the time,
with knowingly lying or failing to
but perhaps not as useful now, a
keep a promise. If early in a
stepping stone to other ideas and
project someone is trying to spell
realizations the team has made in
out a vision for what the project
the time that has passed.
may look like later, don’t take that
The other side to this is to make too literally or think of it as a
the same mistake in thinking contract, look at it as a direction
about someone else’s ideas: they see things headed in.
thinking they are definitive when
329
Implementation realities have a difference between tying the team
way of requiring compromise in a knot or opening up valuable
along the way. discussion about different
SOFTEN THAT CERTAINTY AWAY viewpoints.
A common source of fighting on CONSULTANT’S FRUSTRATION
teams is from a misplaced sense School surrounds people with
of certainty in an observation or other people that think and work
statement which reflects value in similar patterns, with similar
priorities that someone else on the values, often of the same
team doesn’t necessarily share, or generation. That isn’t typically how
especially when the confidently things work outside the
made statement steamrolls value classroom, whether collaborating
priorities of someone else on on a hobby game project, joining a
team. company, or doing basically
anything else in the world besides
Acknowledge with some humility
taking Your Field 101. Often if your
that you only have visibility on part
skills are in visual art, you have to
of all that’s going on, and that the
work with people that don’t know
best you can offer is a clarification
as much about visual art as you. If
of how things look for where
your skills are in design, you’ll
you’re coming from or the angle
have to work with a lot of non-
you have on things. Leave wiggle
designers. If you have technical
room for disagreement. Little
talents, you will be dealing with a
opening phrases like “As best as I
lot of non-technical people.
can tell…” or “It looks to me
like…” or “I of course can’t speak That is why you are there.
for everyone, but at least based on Because you know things they
the games that I’ve played in this don’t know. You can spot
genre…” may just seem like filler, concerns that they can’t spot. You
but in practice they can be the understand what’s necessary to
330
do things that they don’t know bridge it, not to look down on
how to do. If someone else on the them for it. Meanwhile, they’re
team or company completely doing plenty of things right the
understood everything that you specialist likely doesn’t see or fully
understand and in the same way, understand, because that’s not the
they wouldn’t really need you to discipline or problem type that
be involved. Your objective in this they’re trained and experienced in
position is to help them being able to spot, assess, or
understand, not to think poorly of repair.
them for knowing different things
When you see something that
than you do. Help them see what
concerns you, share that with the
you see. Teach a little bit.
team. That is part of how you add
I refer to this as the consultant’s value. You may see things that
frustration because that’s a case others on the team do not.
that draws particular emphasis to VALUES ARE DIFFERENT PER ROLE
it: a company with no The other side to the above-
understanding of sales calls in a mentioned point is appreciating
sales (or design, or IT, or whatever) that other factors and issues less
consultant, because they have no visible to your own vantage point
understanding of that and that’s may have to be balanced against
why they made the call. A naive, this point, or in some cases may
inexperienced, unprepared even override it.
consultant’s reaction to these
Frustration can arise from an
situations is one of horror and
exaggerated form of the
frustration – how on Earth are
consultant’s frustration: a
these people so unaware of the
programmer may instinctively
basic things that they need to
think of other roles on the team as
know? The consultant is there to
second-rate programmers, or the
spot that gap and help them
designer may perceive everyone
331
else on the team as second-rate In the intersection of these
designers, etc. This is not a concerns, compromises inevitably
productive way to think, because have to get made. The artist may
it’s not just that they are less-well be annoyed by a certain anomaly
suited to doing your position, but in how the graphics render, but the
you’re also less-well suited to engineer may have a solid case for
doing theirs. A position goes why that’s the best the team’s
beyond what skills someone going to get out for the given style
brings to move a project forward; of the technology they have
it also brings with them an identity available. The musician or sound
and responsibility on the team to designer may feel that certain
uphold certain aspects of the advanced scoring and dynamic
project, a trained eye to keep adjustment methods could benefit
watch for certain kinds of issues. the game’s sounds cape, but the
The programmer may not be gameplay and/or level designer
worried about the color scheme, may have complications they’re
the artist may not be worried close to about user experience,
about how the code is organized, stage length, or input scheme that
the designer may not care about place some tricky limits on the
either as long as the gameplay applicability of those approaches.
works.
One of the reasons why producers
That’s one of the benefits of (on very small student, hobby, or
having multiple people filling indie teams this is often also either
specialized roles, even if it’s the lead programmer or lead
people that are individually designer) get a bad rap
capable of wearing multiple hats sometimes, as the “manager” that
or doing solo projects if they had just doesn’t get it, is because their
to. particular accountability is to
ensure that the game makes

332
forward progress until it’s done While it’s true that the person
and released in a timely manner. drawing the visual art is likely to
So the compromise justification have final say on how the art
that they often have to counter needs to be done (not only as a
with is, “…but we have to keep matter of aesthetic preference, but
this game on schedule” which is a as a side effect of working within
short-term version of “…but this their own capabilities, strengths,
game has to get done.” If and limitations), that does not
someone isn’t fighting that fight mean that others from the team
for the project, it doesn’t get done. shouldn’t be able to offer some
feedback or input in terms of what
Be glad that other people on a
style they feel better about
team, when you have the privilege
working with, what best plays to
of working with a good and well-
their own strengths and limitations
balanced team, are looking out for
(ex. just because an artist can
where you have blind spots. Push
generate a certain visual style
yourself to be a better
doesn’t mean the programmer’s
communicator so that you can
going to be able to support it in
help do the same for them.
real-time), and what they like just
TOO MUCH EMPHASIS ON ROLE
as fellow fans of games and
After that whole section on roles, I
media.
feel the need to clarify that
especially for small team Does one team member know
development (i.e. I can total more about animation than others
understand military-like hierarchy on the project? Then for goodness
and clarity for 200+ person sake, of course that person needs
companies) roles shouldn’t to be involved in discussions
pigeonhole someone’s ability to be affecting the implementation or
involved in discussions and scheduling of animation. But even
considerations. if you’re not an animator, if you’ve

333
accumulated a different set of designer feeling like the boss of
media examples to draw upon, other people who are supposed to
and have an idea for how that do what they say, it can be healthy
work may intersect with technical, and constructive for them to
design, or other complications, approach the development as
there’s still often value in being a another collaborator on the team,
part of that discussion. Though of just with particular responsibilities
course you should still leave much to look out for and different types
of the decision with whoever it of experience to draw from.
affects most, and whoever has the They’re having to balance their
most related experience. own ideas with facilitating those of
others to grow a shared vision.
It’s unhelpful to hide behind your
They’re trying to keep the team
role, thinking either “Well, I’m not
happy and on track, and that’s
the artist so that isn’t my problem”
their version of the compiler or
or “Well, I’m the designer, so this
Photoshop.
isn’t your problem to worry about.”
The quality of the game affects HANDLING CRITIQUE PRODUCTIVELY
When critique comes up – whether
everyone who got involved with
of your game after it’s done or of a
making it. You make a point of
small subpoint in a disagreement –
surrounding yourself with capable
separate yourself personally from
people that are coming from
the point discussed. When people
different backgrounds and have
give feedback on work you’re
different points of view to offer.
doing, whether it’s on your
Find ways to make the most of
programming, art, audio, or
that.
otherwise, the feedback is about
A related distinction to these notes the work you’re doing, it’s not
about roles is the concept of feedback about you (even if, and
servant-leadership. Rather than a let’s be fair here, we could all
producer, director, or lead
334
honestly benefit from a little more have their concerns and thoughts
feedback about ourselves as a heard. People need to be in semi-
work-in-progress, too!). regular contact with the people
who they might need to raise their
Feedback is almost always in the
concerns with, before there is a
interest of making the work better,
concern to be raised, so that
to point out perceived issues
there’s some history of trust and
within a smaller setting before it’s
prior interaction to build upon and
too late to fix the work in time for
it doesn’t seem like a weirdly
affecting more people, or before
hostile exception just to bring up
getting too far into the project to
something small.
easily backtrack on it. Sometimes
the feedback comes too late to fix In one of the game development
them in this case, in which case groups I’ve been involved with
rather than disagree with it, accept recently, we were trying to narrow
that’s the case and keep it in mind down possible directions for going
to improve future efforts . After all, forward from an early stage when
this isn’t the last game or idea little had been set into action yet.
you’re ever going to work on, From just an open discussion,
right? three of the dozen or so ideas on
the whiteboard got boxed as
Defensiveness is often
seeming to be in the lead. When
counterproductive, or at least a
we paused to get a show of hands
waste of limited time and energy.
to see how many people were
SYSTEMS AND REGULAR CHANNELS
interested in each of the ideas on
Forms and routine one-on-one
the board, we discovered that one
check-in meetings can feel like a
of the boxed items had only a few
bureaucratic chore, but in proper
supporters – those few just
balance and moderation, they can
happened to be some of the more
serve an important function.
vocal people in the room. Even
People need to have an outlet to
335
introducing just a tiny bit of update, volunteer to be the one
structure can be important in presenting that update.
giving more of an outlet to the less
Communication is a game
outspoken people involved with a
development skill. As with any
project, who have ideas and
other game development skill,
considerations that are likely just
you’ll find the biggest gains in
as good and, as mentioned earlier,
ability through continued and
probably weighing different sets of
consistent practice.
concerns and priorities.
RECOMMENDED READING
PRACTICE, MAKE MISTAKES TO LEARN FROM • How to Win Friends and
Seek out opportunities to get more
Influence People by Dale Carnegie
practice communicating in all roles
(1936)
and at all scales, as part of a
crowd or in front of a crowd, in • The 7 Habits of Highly Effective
both formal and informal settings, People: Powerful Lessons in
and with a few people or a lot of Personal Change by Stephen R.
people. Covey (1989)

Look for (or create) situations • To Sell Is Human: The Surprising


where you can comfortably Truth About Moving Others by
exercise your communication Daniel Pink (2013)
abilities. Whatever form that may
take for you.
Given a choice to work alone or
work with a group, welcome the
opportunity to deal with the
challenges of working with a
group. Attend a meetup. Find
some clubs to participate in. When
your team needs to present an
336
SE C TI ON 4

Establishing a Videogame
Development Club
Having a community of
people with skills and goals
can significantly lower the
barriers to larger, higher
quality games. I established
two game clubs, and I really
want you to establish one,
too. Here’s how I did it.
Team Projects

Carnegie Mellon’s Game at Georgia Tech to establish


Creation Society VGDev.
While in school, I helped get a Although that game development
game development club off the club was started at a university
ground, structuring its processes, setting, many lessons learned
setting the standards, and from it are equally applicable to
ensuring projects began in a way kicking off and growing a
for their teams to finish. That club community of game developers,
is the Game Creation Society at whether locally or online, whether
Carnegie Mellon, and you can find as a high school club or among
the videogames from it at people long finished with school.
GameCreation.org.
This is What Worked for Us
I have since followed this same
Every year, many videogame
general pattern and structure
development clubs start. Many of
years later as a graduate student
337
them initiate a handful of large the founder and CEO behind
projects, struggle with teams ZipZapPlay, Curt founded the
falling apart as member retention organization, writing its charter,
suffers, and after a couple years of posting flyers, building members,
sliding schedules, either close and running weekly meetings
down or transform into a game before he found any of us on
playing or culture club instead of campus that helped the group
game development club. take off. He didn’t kick off the
organization with all of the people
Of course, what worked for us
and resources that he needed – he
certainly isn’t the only way to do
kicked it off partly as a way to find
things. There are surely other
them.
organizations out there that have
succeeded, doing things very KEEPING PROJECT SCOPE WITHIN ONE
SEMESTER
differently and following different Each semester, everyone’s time
rules of thumb. All I can say for commitments changed. The
sure is that my rules of thumb longer a project took, the greater
worked well for us during the first amount of uncertainty was
few years. I’m hopeful that others involved between starting and
with drastically different finishing. For these reasons, we
experiences will help share attempted to schedule every
learnings from their organizations, project to fit within the project it
as well. was started in. Doing a more
Lessons Learned complicated project was only
IF YOU DON’T BUILD IT, THEY WON’T COME
possible by working faster,
Although I developed the process devoting more hours to the
for the group, and led the Game project, and being clever about
Creation Society for two years, I avoiding unnecessary or wasted
did not start it. Curt Bererton, then effort. For the especially ambitious
a Robotics PhD student and now projects, we occasionally would
338
let experienced developers plan outlining what the name of the
for a full release at the end of one game was, how long it was
semester, then a second release anticipated to take (again:
with additional features and maximum one semester), what it
content the next semester. was about in a nutshell, and how
EMPHASIZE COMPLETING ALL GAMES many people of each position the
Finishing every project started is project would be expected to
terribly important. This is true even need. We then met one-on-one for
if it means encouraging less an hour or so, chatting about the
ambitious project scopes, shorter project’s goals and schedule. This
timelines for greater predictability, wasn’t a very strict or demanding
and turning down some filter, but it was an added layer of
enthusiastic “I want to make the protection to help minimize the
next big MMO” types. Nothing is chances of otherwise motivated
worse for new member members being brought onto
recruitment than having a spotty dead-end projects started by well-
track record of incomplete intentioned but unprepared project
projects, and nothing is worse for leaders.
member retention than having art, IT’S OKAY TO LOSE PEOPLE THAT WON’T
audio, and levels made but thrown WORK
Making videogames involves a lot
away. New members are attracted
of time, energy, work, and
by the prospect of working with a
additional learning. Each year, we
reliable team, using a known
brought in as many members as
process, in high confidence that
we possibly could during the
their work will result in a finished
Spring Activities Fair – with as
game.
many as 100-150 people showing
VET PROJECT LEADERS
up at our following meeting – by
Each project leader had to fill out a
focusing on the importance of
simple one-sheet proposal,
having all kinds of people (artists,
339
writers, programmers, modelers, collect enough members within 2
musicians, testers…) involved in weeks of being pitched, or didn’t
making videogames. In the first adjust its plans to reflect the
meeting or two, we explained the members that did join, then it
process, and some people would wouldn’t become an active
leave when they understood that project. When people aren’t being
this would involve more time each paid, and aren’t receiving credit,
week than just attending the 1-2 its important that they’re able to
hour meetings, and wasn’t the work on something that appeals to
same as simply playing them.
videogames. This was a good SCHOOL CREDIT THREATENS AGILITY
thing, not a problem. One of the advantages of being a
LEADERS PITCH, MEMBERS VOLUNTEER non-class and non-workplace
The project pitch was just a 15 organization is that people who
minute powerpoint (showing mock are disinterested can just leave,
up screenshot, spelling out the instead of being locked in by their
project concept or similar games, need for the salary, school credit,
etc.) and speech about the project etc. At first we began to
leader’s initial vision for the investigate the opportunity for
project. The last part of the active students to get course
project’s pitch was the leader’s credit or some other type of
name, e-mail address, and a list of academic recognition for their
the minimal roles they need for the work in the organization, but after
project to be made: two 2D artists, a few semesters we were thankful
one sound person, etc. Anyone for the agility that came with
interested in those roles would members self-selecting based
then talk to the project lead after purely on their interest in making
the meeting, or contact them by videogames.
email. If the project leader didn’t

340
REACH OUT TO GUEST SPEAKERS PROVIDE OPTIONAL TEAM RESOURCES
There are a collection of people in We gave every active project team
the organization that are eager to a folder on an FTP server with a
hear about videogame industry custom login and password, for
topics, ranging from recruitment members on the team to share
talks to more experienced files, as well as a section on a
developers sharing their insights. message board to keep a history
Meanwhile, companies have of each project’s discussion.
people who devote their full These were provided as free
attention to finding an audience to secondary user accounts on a
recruit from, and experienced low-cost StartLogic.com account,
developers are often happy to using ezBoard then phpBB for the
have a chance to share their bulletin board system. These
stories. Establish email contact minimal resources helped facilitate
with anyone and everyone that working around asynchronous
you think might make the trip – schedules for student teams.
more people will say no than yes,
Between Google Docs, Dropbox,
but even one yes a year can
Assembla, and GitHib, and other
translate to happier members, new
services already out there, it may
members (guest speakers are
not be as useful anymore for the
prime events to invite non-
club to provide things like
members to drop in on), and
dedicated FTP space.]
improved networking
GIVE CONTENT CREATORS LATITUDE
opportunities for all. It can even
People want to show off, and get
lead to internships and jobs for
practice in, whatever style or
organization members, which
subject they know how to do best.
translates into lasting alumni
Projects that can accommodate
industry connections.
this will come out better, yielding

341
not just better games but happier biting off more than they can
members. chew. The game either doesn’t get
WEEKLY GOALS FOR EVERYONE finished, or it doesn’t get finished
Busy work isn’t a good thing, but well.
people get involved in hobby
Instead, I’ve encouraged club
projects out of an interest to
members to think historically for
contribute, gain experience, and
reference points, as a way to
have something to show off
tackle less complex (but fully
proudly when it’s done. If
complete) games before moving
someone on the project team has
on to more involved ones. The
a three week period with nothing
best way that I’ve found to get this
to do, they may fade away from
across is to frame it in terms of
feeling like there’s no use for them
decades or half-decades.
on the team.
Encourage developers that have
ALLOW PROVEN MEMBERS TO TAKE ON MORE never made a game before to start
This partly addresses the above or join teams making games of
problem – while one project’s need 1970s complexity (granted, they
for an artist or audio contributor may look and sound more modern
slows down, another project’s – this is only about how involved
needs may swell. This also creates the code and design become, and
a greater variety of experience in the game’s overall scale or scope).
the same amount of time, and After they’ve led or been involved
helps project completion. with a team of 1970s, move on up
ENCOURAGE HISTORICAL PROGRESSION to 1980s or early-1980s
Although everyone’s temptation is complexity, then up toward 1990s,
to jump right into the deep end, and so on. This gives clear
making games that resemble the reference frames for what’s
ones they’ve been playing lately, appropriate and mountains of
that frequently leads to people enjoyable examples to draw from.

342
More projects get finished. More their dedication to game playing.
projects get finished well. Most Let those students find such
importantly, more developers get outlets elsewhere. There’s no
the foundational skills and shortage of opportunities to play
production experience that they videogames with other people in
need to later see through some of college.
their more ambitious ideas
If any game playing goes on under
together.
the organization’s name, it ought
DON’T BECOME A GAME PLAYING CLUB to be playing games completed by
We had members and non-
the club, either to help new
members alike ask our
members see the types of projects
organization to host tournaments,
that can be done in the timeframe
game nights, game release
given, or to help recruit outsiders
parties, retro game nights, game
at a public demo by showing that
movie nights, and every such
the club is serious about creating
variation. There’s nothing wrong
finished, playable games.
with those types of events, but as
ACTIVELY RECRUIT A VARIETY OF PEOPLE
mentioned at the start of this
A room full of people that are
entry, one of the common causes
experts in the same area will all
for organizations of this sort losing
overlook the same problems and
focus and getting nothing done is
weaknesses. Every type of expert
on account of becoming a game
can help fill in for different
playing and culture club instead of
oversights by others.
a game development club.
Even if it’s a room full of computer
The videogames developed will be
science people that know how to
worse, and more likely to wind up
program (this was our core group
unfinished, if a bunch of people
with the Game Creation Society), it
are hanging around not for their
helps to find programmers with a
dedication to game making but for
variety of side interests in music
343
composition, sprite animation, teach themselves new things is
interface design, etc. what their class time is for.
Active recruitment is also an MINIMIZE CONTENT BOTTLENECKS
Role-playing games and
important aspect of this. Flyers are
adventure games are scary. No
important, but evangelizing for the
matter how simple they look, they
cause goes a long way, as does
require (at a minimum) dozens of
being outspoken at fairs and other
pieces of enemy art, level layouts
recruitment opportunities.
for dozens of cities, outdoor areas,
BE TECHNOLOGY AND TOOL AGNOSTIC
and dungeons, balanced stats,
Some 3D artists prefer Maya to 3D
prices, and art for a wide variety of
Studio, or vice versa, while some
items, several emotionally intense
others are most productive in
songs, and countless pages of
Blender (or they may not have
strangely paginated written dialog
$3,500 laying around to spend on
for dozens of characters. It
their hobby). Some programmers
probably needs at least a minimal
swear by C#, some prefer
in-game scripting engine, too.
ActionScript 3, while others are
After I had been making
content to script in Unity or Game
videogames for seven years, I was
Maker.
able to lead a small team to make
Whatever tools and technology a really weak, limited RPG. That
platforms that people know best, isn’t offered as encouragement,
welcome them to use those but as a warning.
platforms to their fullest extent. At
Side-scrolling beat-em up games
the end of the day happy
and platforming games also
members and well-developed
involve a huge amount of
content will go further. Giving
animated art. Variety in bad guys,
people freedom to teach
bosses, and backgrounds are
themselves new things is
awesome – but forcing them to
344
what compel people to keep very important that the club
playing them. maintains a reputation for finishing
its games. Internally, this means
Some types of videogames scale
it’s very important to the club that
much better, and don’t require
project leaders ensure that the
mountains of different art –
game they start gets finished. This
especially puzzle or action games
requires that project leaders have
that take place in non-scrolling/
at least minimal fluency in digital
one-screen levels. When
art, programming, and making
beginning teams present their first
audio for use in the game, such
projects, it’s best to favor games
that if everyone else left the team,
that will be able to efficiently reuse
it could be finished, even though it
content in different combinations,
may not look or sound as good as
and get away with minimal
was intended. This accountability
content. Not only does it improve
further motivates project leaders
the chances of that particular
to keep their project members
project succeeding, but it prevents
content, and to seek replacements
any one overly ambitious, epic
any time project members leave
project from gobbling up all of the
the team, since work they can’t
club’s content creators into a
get someone else to do is work
black hole that (likely) won’t turn
that becomes theirs.
into a finished game.
THE DEMO IS THE GAME
PROJECT LEADERS MUST BE ABLE TO FINISH
ALONE As a scheme for scope reduction,
People will leave the organization. one thing we did to help reel in
People will leave teams. No matter project scope during pre-pitch
what people intend, and no matter meetings was to ask the project
how nicely everyone is treated, leader what is the minimal amount
things will change, and priorities of functionality and content they
will shift. To the outside world, it’s

345
would need to create a demo for characters, no one takes a pitch
the game. like that seriously.
Since it’s a portfolio and FOCUS ON VIDEOGAMES, NOT GAMES
A club that tries to be for
experience piece for the team’s
everybody is a club that works for
project members, this demo size
no one. A board game, dice game,
is about as much content as most
tabletop game, D&D game, casino
outsiders will digest. Making a
game, sports game, game show,
larger version of the game would
game theory, or Conway’s game of
have diminishing returns on
life club is not a videogame
learning, in addition to increasing
development club. Even if those
the odds of the game never being
are things that may appeal to
completed. And a videogame that
some categories of videogame
isn’t completed isn’t a videogame
designer, they’re less likely to
to the outside world.
appeal to 3D artists, software
In consideration of this, we engineers, dialog writers,
adjusted plans, content, team playtesters, animators, music
size, and story for the “demo” composers, sound effects
sized version to be the finished specialists, and the whole host of
game, before the project was ever other skills that go into hobby and
pitched or started. professional team videogame
This has the unintended side development.
effect of increasing believability Welcome members that have an
and buy-in from members to the interest in those things, just as
project pitch. When someone tries much as members are welcome
to entice members to join their that have interests in programming
project that is planned to have 20 operating systems, animating
worlds, 30 weapons, and 16 main feature-length films, and writing
novels. But keeping it clear that
346
the organization is not there for
pitching, producing, and
networking games other than
videogames, just as much as it
isn’t for film making or novel
writing, helps keep the core
strong.
BE READY TO ADAPT
Depending on who the
organization’s leaders are, what
the project leaders want to make,
the rules of thumb will need to be
different. How established the club
is will also lead to huge changes in
organizational needs – a young
club is battling aggressively for
growth, credibility, and clarity,
whereas a more established club
does well to focus on retention,
visibility, and stability.

347
8 Many people making their own
videogames consider going the
professional route. Here I’ll share
some stories and realizations
from my professional years
about considerations and
tradeoffs to navigate. Every
person’s path is different.

Industry

348
SE C TI ON 1

A Frank Look at Making


Videogames Professionally
Many people that want to
make videogames. This
desire often begins from an
interest in making their own
game ideas. Over time, that
interest tends to quietly
morph into an interest in
getting a job making games.
Industry

Why Even Discuss This I’ve seen some smart people


As the speaker Bill Gove used to spend years getting into the
say, “You’ve got to tell people the industry, to then soon wind up
truth. That’s the only way to give frustrated and disillusioned,
people a fighting chance.” changing career paths after
spending less time doing it than
My aim here is not to tell anyone they did moving toward it. I think
what to do or not to do, but only this often happens at least in part
to provide some additional because of the misunderstanding
information to consider about the that I’m going to examine here.
way things often fit together –
acknowledging too that partial The Main Point
exceptions, while rare, surely People that do an otherwise fun
exist. activity at an expert, competitive
level have to engage with it in a

349
very different way than others who business taxes, pursuing funding
are not counting on it as their (if applicable), contracts,
primary income. This is true for engagement with fans and press,
athletes, singers, hot dog eating and so on.
champions, painters, eSports
With a larger company, those
players, and dancers.
other positions outside of
It’s true for making videogames, development tend to be filled by
too. separate specialists. At a smaller
company, those obligations often
Some Implications
tie up a surprisingly large fraction
1. COMMERCIAL GAME DEVELOPMENT
INVOLVES A BUNCH OF WORK THAT ISN’T of the time, attention, and energy
DIRECTLY MAKING THE GAME.
of someone that’s also trying to
When we think about what people
juggle one or more of those
or skills are needed to make a
developer roles.
game, at minimum, we often split
2. MANY PEOPLE THAT WORK AT LARGE GAME
up our thinking into roles like STUDIOS ARE UNABLE TO (OR NEVER HAVE)
code, design, art, and audio. MADE A FULL GAME OF THEIR OWN.

Someone may be wearing multiple I found this mind boggling when I


of those hats, and there may be first realized it.
need for a separate producer if the A large professional team, unlike a
team has more than a few people small non-commercial or typical
total. However as long as those indie team, is largely filled with
areas are covered a small game specialists. Those specialists may
can get made. be world-class experts at what
For the game to exist properly as a they do, but what they do is often
commercial product, there are a comparatively small piece of
other business, legal, and everything that comes together
marketing responsibilities that from dozens of other specialists:
enter the picture: incorporation, model rigging, scene lighting,

350
network backend, dialog writing, project may be difficult to pinpoint.
implementing someone else’s It couldn’t have happened without
design spec, texture artist, them – or someone with a similar
outsourcing coordination, skillset filling in for them – but their
management layers, and so on. work seamlessly blends into the
whole.
This is not at all to discredit,
disrespect, nor devalue what That leads naturally to our next
professional videogame point.
developers do. Altogether the 3. LARGE COMMERCIAL GAMES OFTEN DIVIDE
coordination of specialists is WORK AMONG MULTIPLE SPECIALISTS,
YIELDING LESS CLEAR ARTISTIC OR
essential to making some truly AUTHORIAL OWNERSHIP.
amazing end products possible, On a small team, one person
which many players enjoy. Clearly, might think up how an enemy
a simple capitalist argument can should look, then do the concept
be made that they are art for it, 3D model it, texture it, rig
demonstrably among the very best it, and animate it – maybe even
people at what they do. They are code its behavior in-game, too.
all, as a part of the total team, That’s a lot of creative freedom,
professional videogame makers. and in some ways amounts to
being ones own boss since work
Yet surprisingly few of them have
earlier in the process affects what
ever worked on something that
the work is like further ahead. In
was truly their own personal
small enough projects the same
game, their own original idea, or
person may even be doing that for
their own direction. They may
every enemy, item, and
have worked on dozens of
environment piece in the game.
commercially successful games
that you’ve heard of, however on By contrast, on a large team, the
each game their individual input or person or people best at each
exact contributions to the overall step of the art process (say,
351
texturing), and/or for a particular very specific aspect of a far
kind of art asset (environmental, grander and longer term project.
character, UI, etc.), may be That transition can be a
working only on that slice of the comfortable, healthy, desirable
process, forming a digital one for some people that prefer to
assembly line of sorts. The end specialize, especially if they see it
result may be more impressive, as coming and understand the
though the output of someone implications. It can be a very
incredibly talented, well trained, difficult and unexpected change
and inhumanly consistent in every for others.
step of the process. It requires 4. CREATIVITY WITHIN LARGE COMMERCIAL
more sophisticated collaboration PROJECTS REQUIRES GOOD PROCESS, NOT
FOLLOWING WHIMS.
and scheduling. However this also With so many people’s work
shifts the nature of personal interconnected, the misuse or
ownership from “I created these misdirection of time by one person
whole things within the game” to can have a ripple effect on dozens
“I helped fill in aspects of many of others on the team. This can
different things in the game.” make it terribly expensive to
When students come fresh out of simply mess around, or to pursue
schools that have game our pet ideas within the project.
development classes and join Running a business often involves
large studios they are often going a lot of processes, quality control,
from a background in which they and office politics. Together these
enjoyed substantial ownership serve to filter, refine, and
over a large fraction (often all) of sometimes dilute individual
one or more smallish personal contributions. This means
projects, into a new position conducting market research,
where they’re being paid to having rigorous approval and
concern themselves only with one testing processes, ruthless editing
352
for quality, and on large teams, When the outcome affects the
many team members having salaried jobs of many people,
relatively little leeway or input having that filter process built in
outside of their specific area(s) of makes a lot better sense than just
expertise. making whatever exploratory stuff
comes to mind.
While potentially frustrating from
the inside, to the outside world 5. BUSINESS PRESSURES HAVE TO AFFECT
COMMERCIAL GAME DESIGN.
this can ultimately yield a product When making games
more likely to fare better in the professionally there’s potential for
marketplace. A game that’s a frustration and conflict all along
mishmash with dozens of people’s the way between what you
divergent interests and personal personally feel like creating and
ideas about matters beyond their what you (or your managers, or
main skillset is likely to lack focus, backers) think is most likely to be
coherence, and the level of fidelity the profitable decision.
that comes from specialists
sticking to their specialties. If entertainment business worked
on a linear scale, and was more
When people occasionally write predictable, there might be more
war stories about their time in room for someone to simply opt to
industry, with regard to burning make some conscious trade offs
out or finding it exhausting, between making a little less
beyond the total number of weekly money in exchange for some
hours worked I think it’s often also personal creative calls. However
because of how this process it’s not a simple slider. If dealing
tends to grind up, pulverize, and only with profits from internally
over time wear down creative designed projects, as opposed to
impulses. An environment must be buffering it with outside contract
fostered in which only the fittest work, the decision doesn’t fall
ideas survive to reach customers.
353
between “do it our desired way This isn’t just about small detailed
and maybe earn a little less” but decisions, either. Some people get
instead it comes down to “do into making games because they
what we think will be profitable, to are drawn to a certain gameplay
hopefully stay in business longer” genre to only later realize that by
versus “ignore what we think will the time they’re making games
be profitable, and risk going out of professionally that entire genre
business.” may be over saturated, widely
deemed outdated, dominated by
The videogames business, like
entrenched companies that had a
many professional entertainment
massive head start, or otherwise
domains, tends to be hit-driven,
has become a very unwise domain
and public taste is a rapidly
in which to focus a business.
moving, unpredictable target. A
very small percentage of Or, as a matter affecting many
participants do exceptionally well, people currently in industry: some
meanwhile a much larger developers were drawn to the
percentage scrape by, or even types of games designed around
work at a loss, just for a shot at an older payment model. Then
joining that small percentage at when the ways that people
the top. primarily pay for their games
subsequently changes which
In that kind of environment, a
types of games do well in the
creative call outweighing business
marketplace, many find it hard and
pressures is so rare it’s deemed
unnatural to rethink the design
newsworthy. In practice, even then
ideals that they grew up with in a
it’s at least partly a calculated,
different way which is, for
justifiable gamble to stand out, or
example, compatible with free-to-
to generate discussion, like the
play, ads, in-app purchases, social
“No Russian” mission in Modern
Warfare 2.
354
network integration, crowd- scale, faces the same profit
funding strategy, etc. pressures and visibility challenges
as any garage band or beginning
I’ll never forget something that I
novelist, but that’s mostly a topic
learned from the first professional
for another day). It has to be, in
Lead Game Designer that I met:
order to consistently cover the
when he gave talks to students
overhead of the workspace and
about making videogames
people’s salaries.
professionally, he challenged them
to think about how they’d go It certainly still takes talent and
about the game design for Jar-Jar hard work, and often involves
Binks Racing. He picked that case working with excellent coworkers.
to illustrate that even as the Lead It challenges people’s skills,
Game Designer, at a large creativity, and interpersonal
company there are often business maturity. It’s a very hard thing to
people higher in the chain do at that scale. It’s just of a
deciding what can get made at a fundamentally different nature at
profit, and your task is to make the that scale, perhaps like how
best version of that you can. preparing for and playing soccer in
the World Cup likely involves a
It’s Still a Perfectly Fine Job
lifestyle and stress level quite
I think it’s important to point out unlike playing a pickup game at
that most of the above is probably the park with friends or neighbors.
true about essentially any office
career. I am not trying to talk anyone out
of doing it. There are people who
My point here is to remind people deeply love the work in those
that working on videogames as a environments. For someone that
career, especially at medium or desires deep specialization,
large companies, is also an office instead of being involved with all
job (or at a solo and small team
355
parts and details, it may be just and does so often, we don’t think
what they want to do. he’s failing at it if it isn’t his career.

It Doesn’t Have to Be a Job If you bowl, you’re a bowler. If


You’re not a failure or wannabe if you run, you’re a runner. If you
(or while) you do it non- develop videogames, you’re a
commercially. videogame developer.

There’s sometimes a presumption As long as you’re able to find ways


with videogames that if you aren’t to create games in your spare
doing it full-time to make your time, using resources that are free
living, you’re somehow or priced for everyday people, you
illegitimate. I’ve heard the term can make anything you want.
“hobbyist” used derisively in Want to make a game with a
developer communities, as in, dragon that flies through space?
saying someone is “just a Want to make a fast paced puzzle
hobbyist” to devalue what they game with mechanics you’ve
make and do. That discussion never seen before? Want to invent
wasn’t about me or my work, but entirely new vehicles and let
my repulsion over hearing the people test drive them?
word used that way was actually a You don’t need an industry job to
big part of what inspired me to do that. In fact, getting an industry
name this blog and my Twitter job may not even lead to the
handle HobbyGameDev. opportunity to see your vision
If someone bowls on weekends, through, much as the hundreds of
we don’t demean the activity by crew people that work on Steven
saying she is merely “trying” to Spielberg’s films are unlikely to
bowl, or is “just a hobbyist ever become the next Steven
bowler.” If someone likes to run Spielberg – doing what they’re

356
getting paid to do is generally not importantly: you do not need
preparing them to replace him. anyone’s permission to start
There are, granted, some people making it, or to begin looking up
like him who are in positions in the and practicing the missing skills
entertainment industry where they you’ll need to pick up in order to
can lead armies of others to do so.
realize their creative visions. Those Maybe some people will fall in love
positions are comparatively few with what you’re making. Maybe
(total, in the entire known universe) people will urge you to take it to
and many, many times harder to another level, finding ways to
wind up in or hold than the already make a living from working on
fiercely competitive entry level improvements to it. Or maybe they
positions. That’s true though only won’t, in which case here’s the
if you are doing it as a career. In worst-case scenario: you’ll just be
contrast, if you’re open to working left with the game that you
on it as a hobby, you can start personally wanted to create. Along
working on bringing your own the way you also got practice at
creative vision to life literally right development skills that you can
now, with the very same time and then apply to make your next
computer that you’re instead using projects better.
to read this article on the internet.
That’s not a bad outcome.
The result might not look or sound
In this section, I mostly distinguish
like a Next Gen title, pushing the
stable careers within medium-large
limits of the latest tools and
companies, in contrast to non-
hardware. It probably will not get
commercial small teams. Small
shown at E3. You may have to get
teams making commercial projects
clever about finding ways to pull it
operate in every form along the
off with your capabilities and
gradient between).
collaborators. But most
357
SE C TI ON 2

Indie Game Development as a


Career
I stayed afloat as an indie
game developer for several
years, completing numerous
projects and picking up a
variety of experiences
along the way. It was a very
different experience than
my brief time in AAA games.
Industry

Matt D., as part of an assignment, had to send but also within the same indie
questions to someone in a career he finds from one project to another.
interesting. He chose independent game
developer as the career, and I’m the someone he I don’t see myself as having one
reached out to. Here were my replies, as of 2012. primary mission, so much as
1. WHAT IS THE PRIMARY MISSION OF THIS
having an evolving skill set that I’m
ORGANIZATION OR PROFESSION? continually looking for new
One of our key advantages as challenges I can adapt it against:
indie developers is our agility – we research projects, art projects,
can change our reasons or commercial projects, hobby
approaches on a moment’s notice projects, etc. each of which
without needing to retrain a comes with its own mission
hundred person workforce or get particulars.
buy in from outside third parties,
so the primary mission not only Sometimes an independent game
changes from one indie to another, developer’s mission is to make

358
money, sometimes to change how Likewise, to a lesser degree, when
people see or think about I worked with publishers (ngMoco
videogames, sometimes to for Topple, Sonic Boom for Alice in
express ourselves artistically, and Bomberland and iZombie: Death
sometimes to simply entertain March), certain responsibilities
folks by making something fun. I were taken on by or at least
could give a very specific answer shared with the publisher, such as
to my primary mission on any creating marketing materials,
given project that I’ve worked on, managing QA testing, completing
but on the whole across all localization for other languages,
projects I don’t believe there’s a etc. However unlike when I
truly common thread. worked within a department at a
2. WHAT ARE THE RESPONSIBILITIES OF YOUR large company, when my role was
DEPARTMENT? that of an outside contractor, I had
When I have done technical game the added responsibilities of
design for larger companies scheduling work, vetting and
(Electronic Arts, ZipZapPlay, Will signing subcontractors to
Wright’s Stupid Fun Club) within a collaborate with, handling my
department, my responsibilities share of the budget, and
were much more narrowly defined managing relations with the
than they are in my role as an publisher as an outside party.
independent game developer. In
those cases I was responsible for However as an independent
digital prototyping, as well as developer, I don’t have a
proposing and documenting department to work within, I’m just
gameplay systems, laying out level a person making things. In this
content, and authoring gameplay context, my response to question
elements. 3 is really the answer that fits here,
too, so let’s move on to that one:

359
3. WHAT ARE YOUR RESPONSIBILITIES? • Hiring contractors (when
I’m responsible for:
applicable; no budget = no hiring)
• Director work: deciding platform, 4. HOW DOES YOUR JOB RELATE TO THE
business model, genre, etc. OVERALL ORGANIZATION?
Since, in a way, in the case of
• Production work: scheduling how being an independent videogame
long I have, what has to happen developer my job is the overall
by when organization, to provide a more
• Designing: figuring out the interesting response to this
details of what I’m trying to do question I’ll instead address how
my job relates to the overall
• Engineering: making the
ecosystem/industry of games.
implementation work
Publishers look to people like me
• Content authoring: creating
to execute on an idea, within a
images, sounds, and levels
certain budget (I have lower
• Managing: when I have a team, overhead than a full game studio)
for example I find someone better and within a certain timeframe (I
at animation or music composition work extremely quickly), or as
to help create those assets. It’s up someone to place a bet on (they
to me to ensure they’re help fund a project, giving me
productive, on schedule, and more budget and feedback to
satisfied with their involvement work with than I’d have on my
own, in exchange for a share of
• Promotion: recording and editing
revenue and credit).
promotional videos, making icons,
writing descriptions, and Players (by no means all, but
otherwise trying to call awareness certainly some!) value people like
to the game me as a source of game types that
they’re not likely to see come out
• Budgeting (when applicable; I
of a big studio. I’m able to
make many projects for $0)
360
experiment constantly and 5. WHAT OTHER PEOPLE DO YOU WORK MOST
CLOSELY WITH AND WHAT DO THEY DO?
severely, without needing to Although some of my projects are
explain much to anyone until it’s created alone, when I do work
done, at which point the end result with others, I tend to work with
is available for all to see, play, and completely different collaborators
sometimes borrow ideas from to on nearly every project. The most
build upon in other projects. common roles I’ve hired others for
Indies also look to one another for have been artwork (animated
advice, feedback, and success sprites, character illustrations,
stories, with countless varied background paintings), audio
definitions of what success means (professional-quality sound
(making money, getting noticed, effects, and in a few cases original
creating something new that gets soundtracks), and on non-
cloned, reaching a different commercial projects I tend to
audience, getting a game out on a open up design roles to peers to
particular device or distribution help them get experience.
channel, even just finishing and When I’ve worked with publishers
releasing a complete game I’ve typically had one to three main
project). contacts at the company that I’ve
I’ve accepted as one of my spoken with regularly about
personal objectives getting more progress, questions, feedback,
people into videogame making, and so on. See response 2 for a
which I do with my business, the more complete explanation of
student game development clubs I what they do.
established (at Carnegie Mellon Lastly, in a very real but more
and Georgia Tech), and fielding indirect way, I work the players
developer questions by email as that try my games. That happens
much as time allows. by keeping metrics of how many

361
people each project reaches, communication between team
googling to find out what players members, documentation,
are saying about it, reading all financial/scheduling work, and
feedback I receive after it has pretty much every aspect of the
been completed, and so on. All process. In the end, the
they have to do is try the game, videogames are of course also
and if it leads them to say played on computers.
something about it to either me or 7. WHAT TYPE OF EDUCATION OR TRAINING
the communities in which they DOES THIS JOB NEED?

play, then they’ve done their part. Because there’s no hiring manager
This in turn helps give me a more to impress when working
complete picture of what sort of independently, in theory all that
an effect the game is having matters is that someone has or
(maybe it’s played by many can partner up to account for all
people, maybe it’s only reaching a the technical and creative abilities
smaller crowd but they seem to needed to pull a complete
really enjoy it, or maybe it flat out videogame together. However in
missed the mark and no one practice, a good computer
seems to like it but me!), and also science degree is often helpful for
helps inform me of how different videogame programmers to learn
player communities on the web many useful ways to think about
respond to different types of programming and solve novel
videogames. problems, whereas proper training
in creating digital art, editing
6. ARE COMPUTERS USED ON THE JOB? IF
YES, IN WHAT CAPACITY? audio, or other content production
Yes, computers are absolutely areas can be beneficial to
used on the job. They’re used for preparing a videogame artist or
programming, level design, image audio person to create top-tier
creation, audio editing, music work.
composition, video editing,
362
Those traditional paths also offer my professional independent
the benefits of a potentially videogame development.
stronger network of peers to
My various work experience at/for
collaborate with while learning,
other companies in many ways
additional opportunities to learn or
factors in as additional education
first gain outside work experience
and training for the type of work
through the institution’s reputation
that I do.
and visibility, and of course a solid
backup plan in case being an Otherwise I’ve been making
independent videogame developer videogames in my spare time
doesn’t work out full-time. since the late 1990s, completing
an average of four games every
Although a very small circle of
year since.
independent videogame
9. HOW DID YOU DECIDE ON THIS TYPE OF
developers have made a WORK?
tremendous amount of money, for I was comfortable with
many it doesn’t pan out financially, programming when I started
or works decently enough for a college, so I assumed I would do
while but doesn’t turn out to be that for a living, and went into
sustainable as a primary source of Computer Science. On the side I
income for a family. helped launch a student
8. WHAT TYPE OF EDUCATION OR TRAINING videogame development club, and
HAVE YOU HAD? some of the industry guest
I completed an undergraduate
speakers that we brought in
Computer Science degree from
accepted resumes. I got a call
Carnegie Mellon in 2007, with a
from one, which led to an
minor in Business Administration.
internship, and I’ve been doing
I completed a Masters in Digital videogame work commercially in
Media at Georgia Tech in Spring varying capacities since.
2012, though that happened after
363
My transition from corporate to existed semi-briefly for PC games
independent game developer in the early 1980s before studios
happened in a number of steps, largely crowded that space, then
beginning with corporate studio mostly disappeared for awhile as
work out of university, followed by console manufacturers and PC
getting involved with a videogame retail also favored studios over
startup, over to doing videogame individuals, but has re-emerged in
development on contract on the the past 5-10 years or so for web
side, then to videogame games, smartphone games, digital
development for a publisher, and distribution like Steam, social
lastly doing videogame games, and comparatively “indie”
development completely console channels like XBLA, PSN,
independently. Each transition and WiiWare.
occurred due to feeling like I was
There is also a growing crowd of
ready to entrust myself with taking
capable, passionate videogame
on a larger chunk of the
developers on the rise, eagerly
responsibility than I was able to do
looking for opportunities to create
in my current (soon previous)
videogames for a living. Granted,
position.
pretty much any creative and
10. WHAT DO YOU SEE AS THE DEMAND FOR skilled job in the world is and has
JOBS LIKE YOURS IN THE FUTURE?
It’s really anyone’s guess. The long been highly competitive,
economics driving videogame whether we’re talking about novel
development have changed writing, acting, being a
dramatically every 5-10 years professional athlete, composing
since the industry started, and it music, etc. However as in those
seems very likely to continue fields, there will probably always
changing, possibly even faster. be a place for people dedicated to
This is doubly true for independent being really amazing at it that find
videogame developers, which a way to set themselves apart

364
from the crowd – someone’s going outcome of many projects by
to be doing it, and that someone is developers that have had success
almost without exception with other titles!)
someone that has committed 13. WHAT ARE THE SALARY RANGES, E.G.
substantial time and energy into TYPICAL STARTING SALARY AND TYPICAL TOP
SALARY?
preparing for it. The amount earned by
11. WHAT DO YOU LIKE MOST ABOUT YOUR independent videogame
JOB?
developers varies wildly, as has
It’s constantly changing. This
my own income from it over the
keeps it exciting!
years. There really is no such thing
Likewise, the outcome of every in this case as typical, starting, or
project is pretty much solely up to top, since it depends on the
what I create and how I present it. success of an individual’s projects
With any given commercial project in the marketplace.
that I do independently, it might be
14. DO YOU HAVE ANY ADVICE FOR ME AS I
hugely successful. (…but generally CONSIDER MY CAREER OPTIONS?
this is not what happens!) While I certainly encourage
12. WHAT DO YOU LIKE LEAST ABOUT YOUR
training yourself to develop
JOB? videogames independently, I
It’s constantly changing. This would advise thinking of that in the
keeps it stressful! near term as a hobby and/or as
And again, the outcome of every practice for some other type of
project is pretty much solely up to primary/fallback traditional career
what I create and how I present it. option (software engineer, project
With any given commercial project manager, user experience
that I do independently, it might be designer, animator, etc.). Properly
a total flop. (…this happens very prepared for, those jobs often pay
frequently to independent better on average, and certainly
developers, and is also the pay more reliably, than going
independent. Those positions also
365
create the possibility of getting what my writing is about. Besides
additional experience and being a fun and different way to
connections at an established express ourselves, it’s a context to
company, hopefully saving up work with skilled people that think
some money in the bank or very differently, reach strangers
helping to pay off student loans, around the globe with our creative
all while building your credibility as output, and of course to learn and
a professional. practice technical skills of all sorts
that have a myriad of other
(Consider that when people find
applications in modern life.
out I did technical game design
work on console games at EA, Should any given person try to
even though only for 11 months become a professional painter,
and only on two different projects, guitar player, movie producer,
potential collaborators or business poet, or swimmer? It depends very
partners can instantly “get” what much on the person, and it’s very
that means with much less effort likely to be a bumpy and very
than it takes to contextualize the challenging path, involving a
many years I spent before then decent amount of luck on top of
independently making dozens of ability and qualifications, with
videogames they’ve never heard significant risks along the way but
of.) potentially significant rewards.
15. ANYTHING ELSE YOU WOULD LIKE TO TELL Many people can paint, but that
ME ABOUT THIS PROFESSION? doesn’t mean someone can
Whether or not it works out as a automatically make a living from it;
primary career path, I’m a big being able to simply make a
believer in there being many other videogame (or multiple
valid reasons to make videogames videogames) independently does
personally, at the very least on the not automatically mean that said
side as a hobby. That’s much of game(s) will earn enough money

366
to be someone’s main source of network, and self-knowledge in
income. However, apart from relation to becoming a
these beings done professionally, I professional independent
think that the world is better off videogame developer, helping the
with more people painting, playing chances that the path into it will
guitar, making movies, writing become a somewhat more
poetry, and swimming. realistic and viable option.
Likewise, it’d be irresponsible for
me to tell anyone I don’t know
extremely well that they should put
all their eggs in one basket and
aim straight for something as
unpredictable as independent
videogame development as their
main career plan – maybe it’ll work
out, and it’ll be terrific if it does,
but the odds are rough and it
takes a particular type of person
to thrive in the uncertainty and
types of challenges that come with
it. However I don’t think that the
difficulties of doing it as a sole
source of income should get in
anyone’s way of making
videogames. And in the meantime,
that experience making
videogames as a hobby can
increase someone’s core skills,
community reputation, peer

367
SE C TI ON 3

Influence of Business Models


on Game Design
When the way that games
get paid for changes, the
types of games that get
made change in response.
Business models create play
contexts in which certain
game genres often emerge
as a most profitable fit.
Industry

This is pretty common position to Open disclosure: I personally don’t


hear from designers talking about play social games, games with
the question of microtransactions: microtransactions, or free-to-play.
> I don’t have an ethical problem with But I’ve certainly played, and
microtransactions, except where a game is enjoyed, plenty of videogames
designed to manipulate people into spending
over the past two or three
extra money.
decades that “manipulated”
This angle imagines that money is people into spending extra money.
somehow a new factor in Because I grew up playing arcade
videogame design. It isn’t. I feel games, as well as ports of arcade
like we’re not giving past game games for NES and SNES. And
design a very realistic or fair view, games that were available to rent
and that some additional context if it didn’t last long enough to buy.
here might help for the sake of And shareware that I wouldn’t buy
perspective. the full version of if I could get
368
enough of the gameplay out of the defined into predictable channels
trial version. And games that had by how they fit into the market.
commercial expansion packs…
Games that were two-player co-
Today’s game designers, since we op, for example Marble Madness
grew up playing those kinds of (and this is something Mark Cerny
games, idolize and admire that era said outright at GDC a few years
of games. It might not seem to be ago) were specifically made 2-
so now, relative to the kinds of player simultaneous so that the
commercial games made now, but game could chew through twice
for starters: arcade games were as many coins at the same time –
undeniably designed to and the 4-player TMNT, Simpsons,
manipulate people into spending and X-Men games clearly thrived
extra money. The ports were often for (and were likely developed for)
one step removed from the the same reason. Coin-driven
context in which they were games are also where our beloved
designed to extract quarters from “Nintendo-hard” came from – the
us, but even then part of the hard Nintendo games were
appeal and positioning of ports typically ports of games that had
was that here was a way to have been designed for arcades (or at
an arcade game with unlimited least by arcade game designers),
quarters, a desire instilled in us by intended to kill off the player within
the way the games were designed a few minutes (in the tradition of
in the first place. Just thinking of Donkey Kong, Asteroids,
the game as “good” isn’t sufficient Centipede, Defender, Joust,
in the realm of design – there are Q*Bert, Pac-Man, Missile
many different ways for something Command, Tempest…).
to be good, to different audiences,
in different contexts, and those
audiences and contexts were

369
version gave us an edge from
being able to practice without
burning through change. That’s
what got me excited about it being
a pretty faithful recreation of the
arcade game when I was a kid –
otherwise I certainly didn’t care
nearly as much then as I do now
Ninja Gaiden and the Final Fight games showed our
heroes about to get buzz-sawed or blown up if we about accuracy of emulation/ports
didn’t continue. for its own sake.
Street Fighter II made the defeated
fighter look beat up and shamed
after the match, even with built-in
(textual) trash talk.
This effect was of course amplified
considerably between human
players. To challenge someone
else to earn back your pride in Like many of the other features designed for
Street Fighter II then cost another optimization of revenue in an arcade context, these
screens were kept around for the console ports, too.
coin. To practice and become
become skilled enough to win In the even earlier console market
when challenging someone else on a separate design trajectory
was going to cost even more than the arcades, Atari Adventure
coins. I think part of the game’s and Pitfall hit on the point that for
success even as a console game home games a longer play session
came because when it hit SNES might be desirable, and that’s the
and Genesis arcades were still direction that Zelda and Dragon
socially active (read: relevant to Warrior / Final Fantasy later
business) places, and the home popularized even further. While it’s
370
not nearly as common anymore that played Snood, but no one
due to the ability to download that paid a penny for it, it was like
online demos (though I hear it the WinRAR of downloadable
technically still happens in places, games at the time.
and via a few mail services that I
don’t know anyone actually using),
recall that people used to rent the
full games for a couple of days at
a time from Blockbuster, or
Liberty, or Hollywood Video or
whatever. That reinforced that
games of a certain length were
destined to be rented instead of
bought, dictating a certain genre Briefly, expansion packs were a
and length of content in order to common way companies tried to
translate to sales. diffuse the massive costs of
developing new engines and IPs,
When games shifted to a
without going to the full length of
shareware/episodic model in the
generating expensive sequels with
early 1990s with id Software’s
higher expectations. We’ve seen a
Wolf3D and Doom popularizing
shift away from that toward more
that as a sales channel, that
granular DLC, but the same kinds
favored certain lengths and genres
of design and production
to be able to upsell people
discussions are still happening,
effectively to buy the full versions.
just about, “What kind of game
Designers trying to use that model
can we make for which DLC will
that didn’t heed certain design
work well” instead of about genres
patterns may have still gotten
that players would buy an
downloads but not sales – I
expansion pack for.
personally know a ton of people

371
Steven Kent, in The Ultimate capitalize on a channels
History of Video Games [sic], affordances become the highest
explained that Pokemon – an IP grossing in their category, making
that a whole generation adores – them the most recognized brands
was an idea executed by Nintendo and the designs most copied by
because it would get Game Boy peer companies in an effort to split
players to buy and use Gamelink that pie.
cables. (I.e. in case the theme
When I first heard anything about
being “Gotta catch’em all” didn’t
microtransactions in the United
make it sufficiently clear, the
States, before the iPhones or
Pokemon franchise was explicitly
Facebook apps, it was from a (at
designed to manipulate people
the time fellow) AAA developer
into spending extra money.)
telling me that someone had finally
The goal of MMO’s is to keep found a way to get China to pay
people tied up enough in money for software. The Chinese
continually added content and players would pirate full games,
their social obligations that they there was simply no way to sell
won’t cancel their subscriptions. them $60 USD retail, that’s not
The goal of addictive little mobile how that part of the world works/
games is to get people to keep worked. However they would
pulling up the game frequently willingly throw down a few pennies
enough when standing in line or here, a nickel there, even a dime
waiting for the bus or before class to get temporary boosts and
to get others around them to benefits in their games. Bam, just
notice them playing and ask about like that, a billion more potential
it (I’m looking at you, Angry Birds). customers just fell within the
industry’s sights. Not long after
The method of a game recouping
that, developers discovered that
its costs dictates certain priorities
character customization
in its design. Games that
372
microtransactions were often more old arcade game level of difficulty
palatable to Western gamers that – I turn to pinball machines to feed
were typically more obsessed with my antiquated tastes (as much
meritocracy and expression of designed to manipulate people out
individuality. of their quarters if anything was) –
and I realize that doesn’t suit
When we get into games as
everyone’s tastes.
players, we don’t necessarily think
about the connection between the I acknowledge though that the
game’s design and how that games I grew up playing were
connects to its method of often designed with the economic
payment. We just play the games models of their time in mind, and
we like. When the dominant that the same is true now, only the
economic models that games get methods and timing and nature of
paid for change, then the design payments have just changed. The
principles that are successful types of games designed to seek
within those markets change, and profits in these new and different
we may find that our tastes were conditions and payment schemes
left behind or become niche, while haven’t necessarily been my cup
products we don’t care for of tea, but they clearly appeal to a
suddenly become the primary lot of other people.
interest of new companies making
It seems almost as though the
the next wave of games.
metaquestion actually being
I know some people that really, handled in these types of
truly, genuinely enjoy playing discussions is something more
social games on Facebook, that along the lines of: what are players
feel like microtransactions are a who got into games for how they
perfectly acceptable and normal used to be designed (as a function
part of play. They don’t like the of formerly dominant payment
kind of games I like. I prefer the
373
schemes) ok with in games that
rely on microtransactions?
To the extent that many players of
microtransaction games – I even
suspect most players playing
those games – weren’t and aren’t
actually players of “core gaming”
releases on HD consoles, arcades,
or top-of-the-line PC rigs, but
were instead maybe the sort of
player who liked Peggle and Diner
Dash and WiiSports or computer
MahJongg, it seems like this line
of discussion risks skewing our
priorities as designers even further
toward satisfying our own
interests based on the types of
games that we grew up playing.
We’re probably not a particularly
representative sample of the
players that microtransaction
games seem to genuinely appeal
to.

374
SE C TI ON 4

What’s Japan Doing


Differently?
Though Atari, a US company,
helped grow the industry,
after 1983’s crash Nintendo
resuscitated the industry to
the form I saw as a kid. I’ve
long wondered how Japan’s
game making might differ.
In 2006 I got a few glimpses.
Industry

In 2006, I had the opportunity to current views. Projections and


sit down for lunch with Takayoshi theories presented here may or
Sato, the CGI Director of Konami’s may not be representative the
Silent Hill (1 and 2). I approached Japanese videogame market
him with an interest in learning today. As a point of reference: the
more about how videogame Wii, PS3, and iPhone had not yet
business and design happens in come out, and World of Warcraft
Japan, which has historically was only 2 years old – this
produced dramatically different industry can change a lot in a few
work than we have seen from the years!
American process.
Though I did not record the
I wish to emphasize: this informal interview verbatim, I did take
exchange took place many years detailed notes. Although I
ago. It may or may not be considered reformatting the notes
representative of Takayoshi Sato’s into a more conventional interview
375
format, ultimately it would have • The core of project planning
included the same information, but begins around, and encircles
it could have also invited the risk throughout all development: player
of quotes appearing “from” control, player movement, and
Takayoshi Sato in my words. The camera behavior. Gameplay
notes here are my notes, in my mechanics, enemy/level design,
wording, from the conversation. artwork, and programming mostly
Although my goal in this surround and support those
transcription has been to convey systems.
this developer’s message, my
• Mark Cerny (Marble Madness,
efforts to flesh out my notes into a
Sonic 2, Crash Bandicoot, Jak and
full sentences has pulled in a few
Daxter, Spyro the Dragon, Ratchet
details from what feels like clear
and Clank) started in the US with
memory, and my notes at the time
Atari, but spent years as a
also likely included a measure of
developer in Japan, and so is an
interpretation or deduction.
example of someone who has
My notes from the informal experience and knowledge from
interview both sides of the Pacific. His most
influential contribution to industry
• American developers engage in
practice was popularizing the
internal sales pitches, flashy demo
“Cerny Method”, in which a
projects, detailed proofs of
project doesn’t “go wide” into
concept, early visual renders and
making all characters and levels
such to battle for budget
until one representative level is
increases. In his experience, this
fully playable, through several
didn’t happen in Japan. Teams are
design iterations, and decided to
assigned realistic and practical
warrant investment into full
budgets for their projects, and
production.
then the teams stay within those
budgets.
376
• A lot of videogame during a given phase – but it’s
development in Japan currently understood and respected by their
seems to be shifting to mobile, but peers that those people have
there’s no telling what the market given more of themselves in some
will look like in the future. other projects, and will likely find
their way back into future project
• Japan tends to hire people right
involvement when the time is right.
out of college. Although
This is in stark contrast to the
something with a business or
frequent turnover in American
software engineering focus may
videogame development
be sought for certain types of
companies, where employees
positions within the company,
often get restless or employers
there are not yet videogame-
often change direction sharply
specific degrees forming any
every couple of years.
considerable part of the Japanese
videogame industry. • There are few, if any, significant
books or courses on videogame
• Japanese companies tend to
development in Japan yet. They’re
keep employees for most of their
likely to appear in the not-so-
working life. This is done partly as
distant future, but due to the
a means of preserving company
secrecy of business in Japanese
secrets, partly as a protection of
companies they’re unlikely to
valuable employee relationships,
reflect industry practices.
and partly because the culture
regards leaving employees as • Nintendo is a particularly big
betrayers. question mark to everyone.
Virtually no one that works first
• In Japanese companies, there
party there ever leaves. Nintendo
may be many workers at any given
is known for paying notably high
time sitting around not
salaries than many other studios.
contributing on a given project or

377
• Japanese videogame studios are the videogame’s art needs are
often merging, and mostly filled, while waiting for the game to
shrinking. ship. Rather than being a process
step – except in the case of very
• Capcom and several other
rough sketches for personal
Japanese studios (possibly
planning – this sort of art gets
including Namco?) closed their
done late in the process
American studios. Nintendo is one
separately, explicitly for use in
of the few with a foot still firmly in
marketing materials.
the US.
• Creative people in the
• There are virtually no studios in
development process in American
Japan with positions for “game
studios sometimes become
designers” in a non-technical
embittered over feeling lack of
sense. The director, programmer/
control in the work they do, losing
designer roles, and artist/designer
a sense of ownership. Partly from
roles work together to cover the
the culture in Japan being one that
job function sometimes relegated
emphasizes duty and mutual
to “game designers” in some US
respect, creative people in
studios.
Japanese companies seem to be
• Japanese videogame artists better able to take direction while
work almost exclusively in the still feeling an immense amount of
resolution, format, and fidelity ownership in their work.
required by the game, concerned
• Everyone on a Japanese
almost exclusively with how their
videogame development team
art looks during play. Concept art,
generally understands or sees
and the sort of high detail
most of the big picture. There is
imaginative sketching that
not an intensely specialized
appears on packaging and
attitude of just being with the
manuals, is often produced after
company to work on an isolated
378
part, and everyone shares interest that anyone can be certain it’ll still
in how the work and final product be around 5-10 years from now.
will come together. History is full of surprising upsets
that shook up huge companies
• The culture of duty and mutual
and industries practically
respect also results in games
overnight.
which have a much more focused
creative vision. Although most
people on the team have visibility
on and interest in the big picture,
they work toward their common
goals without the need to force
their own ideas into it. This may
also be a side effect of the
tendency for much lower job
turnover – in the US, everyone
feels like the features and visible
pieces they work on are critical to
landing them their next job or role
in another company; in Japan,
most developers aren’t
desperately trying to prove their
individual ability because they’re
at home with their employer, and
feel the most pride from having
been a part of the team that
worked together to realize a
successful vision.
• No company, on either side of
the ocean, is so big or so powerful
379
SE C TI ON 5

Intellectual Property and


Hobby Game Development
On the one hand, I.P. law is
an intimidating and complex
field, in many ways best left
to lawyers. On the other,
any time we make anything
I.P.’s automatically involved!
Here’s a starting point for
what to look into further.
Industry

Q: I was thinking about making a game as a I Am Not a Lawyer


hobby based on a licensed property. If I were to
Necessary disclaimer: this is not
release it, I would not charge for it and it would
be free to anyone who wants it. Would that still intended to serve as nor be a
be an issue if I don’t secure the rights to use the substitute for real legal advice.
property? (BTW, the series is… pretty old at this The responsible and best thing to
point, so I’m not sure that even if I didn’t have do to stay out of trouble is to
the rights to do so, if the owner would even consult a lawyer with specific
pursue any action.) questions before acting on such
A: Hello! As always, I want to matters. If you do decide to act
thank you for taking the time to without a lawyer’s guidance on
write. It’s always helpful to receive these kinds of matters, that would
questions, since whatever the purely be your risk to bear, not
question is, as with in a classroom mine, because as mentioned, this
you’re never the only person really is not intended to serve as
wondering about it.
380
legal advice or substitute for that TL;DR Short Answer
kind of thing. But first of all, to get to the short
(Void where prohibited. Some answer…
assembly required. Not available If I had the venture a guess of the
in all areas.) technical answer: it can still
But I Am a Game Developer absolutely be an issue, and
therefore no, you really should not
I’m just another non-lawyer trying
do it.
to offer another perspective from
my own experience making games But life is a lot more colorful than
and wondering about, reading technical answers tend to reveal.
about, and maybe even At least from a practical
sometimes coming a little standpoint, there may be some
uncomfortably close as a gray area here, or at the very least,
practicing videogame developer to some sliders along a continuum to
crossing those same kinds of lines consider when thinking about
in terms of IP. what you’re comfortable with and
what remains true enough to the
This is going to be a little overly
purposes you have in mind.
thorough, since I’m adapting this
to be a more general entry for Main Terms: 4.5 Kinds of IP
more than just the reader who We’ll being with a primer on what’s
wrote the question. So I’m going a short take* on “4.5″ main
to begin by giving sort of a high categories of IP. This won’t seem
level review of some of the main super short, but as a reminder:
areas of intellectual property, as shelves can be filled with
they might affect our videogame countless thick volumes on details
development. and particular cases about any
one of these, there’s people who
specialize in these topics and
381
devote years of their lives just to every level from executives down
work with it. This really is the short to entry-level line workers. Some
version. of people coming from Zynga, or
1-TRADE SECRETS so some reports seemed to
Company processes or recipes indicate on the web, were
that aren’t public knowledge, potentially taking with them
which help give a company a documents about Zynga’s game
competitive edge based on what development and monetization
they know that they take processes, which is of course no
measures to prevent competitors good. That’s fundamentally an
from becoming aware of. I have intellectual property issue, though
the least familiarity with this one, about trade secrets, which really
but loosely speaking I believe the isn’t closely tied to the question
gist is that if someone finds out you’ve posed.
exactly how Coca-Cola is made, 2-PATENTS
and then sells that information to a Patents give inventor’s rights to
competitor, it could have a control who can manufacture and
negative financial impact on Coca- sell their inventions, in exchange
Cola, the competitor could get in for the details of that invention
trouble for using it, and that going on public record and
someone could be in even bigger becoming public property after
trouble for his or her role in the some period of time.
exchange.
Patents most often are associated
For a videogames example of this: with physical inventions, like a
a few years ago when social more efficient and reliable
games were still massively on the mechanism to pull a roller coaster
rise, new competitors entering the up rails, but sometimes intersect
space against Zynga were hiring videogames when they relate to
away employees from Zynga, at proprietary hardware (I believe
382
Nintendo has patents on how their believe just this sort of thing
classic D-Pad works, which is part exploded in the case of iOS and
of why many competing D-Pads Android devices, but not really our
felt/feel flimsy or inferior), complex topic here. Note too that a patent
methods/algorithms (John can be filed but then turn out to
Carmack figured out a self- not hold up in court, just because
shadow algorithm for Doom 3′s it exists doesn’t necessarily mean
lighting engine he wasn’t able to it’s valid, which is confusing and
keep in the game because some weird and slightly terrifying, and
other company had a patent on it why lawyers get paid a lot of
already), or occasionally even money to sort that mess out.
weird gameplay features like
Patents in software are a lot less
Namco’s patents on playing
common than trademark or
minigames during load screens or
copyright considerations though
ways of handling fighting move
so we’ll shift that direction. I
tutorials in-game. Patents are
wanted to acknowledge those as
crazy expensive, but can
categories though, to distinguish it
sometimes be worth money when
from these other two, which are
a company gets acquired, which is
more closely related, without
part of why people invest in them,
misrepresenting these next two as
and also get justified as a form of
the whole of what IP seems to be
corporate mutually assured
about:
destruction, i.e. if your company
3-TRADEMARK
comes after our company over
Trademark is a word/phrase,
complaints about your patents
stylized logo, or even a fictional
we’ll come after you with ours,
character/mascot. If your game
and so they both want to have an
has “Star Wars” in the title, if you
arsenal built up of their own and
use the PS3 logo without
from acquired companies. I
permission, or want to include a
383
depiction of the Geico Gecko on that cuts corners on parts and
your game, those could fall under processes shouldn’t be able to
trademark infringement rather than slap Sony on their alarm clock to
copyright infringement. These get sell more clocks. They’d be
protection for a different reason benefitting from Sony’s value by
than patents, here it’s because a misleading consumers about what
company or individual invests they’re buying and from whom.
money into creating brand value, 4-COPYRIGHT
recognition, and associations with Copyright is (loosely) protection
their label, which then has sellable over a specific implementation of
worth, and if others go use it an idea, and is focused largely on
without permission it could dilute creative, artistic artifacts. Whereas
its value by, for example, Marvel patents can be extremely
gradually losing authority over the expensive and complicated to file,
public representation of their X- and trademarks can be fairly
Men superheros, or in another expensive but comparatively
direction devaluing people’s simpler in relation to, say, patents,
perception of Marvel as a brand with copyright thanks to the
by associating it junk people put widely-accepted Berne
that label on. Convention you basically have
automatic copyright on every
This is also to protect consumers
version of everything creative you
from deliberate brand confusion,
do at the moment you do it. (Note
rewarding companies that take
that if certain work is being
responsibility for both quality and
created for pay, part of the
mishaps. So if Sony invests a ton
agreement signed may explicitly
of money into establishing its
transfer the copyright or other
reputation as a manufacturer of
types of IP for that specific work
reliable consumer electronics, then
to the paying company.)
some crummy knockoff company

384
Everything you write, paint, draw, 4.5-PERSONALITY RIGHTS
The last 0.5 of the 4.5:
play on piano, etc. you have a
“Personality rights” relates to the
copyright over, and that
rights to use a famous person’s
encompasses a set of rights, any
likeness, name, or possibly real
one of which could be sold or
voice in association with a
granted independently of one
product. I’m not sure whether they
another, such as your right to be
are more related to trademark,
credited for its reuse, whether
copyright, or something else
someone’s allowed to reuse it at
entirely, but they’re absolutely a
all, whether someone is allowed to
real thing. Sometimes a game
make variations of it, whether
based on a movie has a generic
someone can sell it or a variation
hero face or generic voice actor
of it…
instead of the real Hollywood star
Also note that even though not for lack of a good reference
copyright is automatic, if it comes photo or capability to extract
down to a court case paperwork usable vocal audio from the
and some modest filing fee that movie, but because celebrity
needs to take place for that to likeness rights can be expensive
proceed. If that registration on top of and separate from the
paperwork fully existed well before actual show or movie license.
the complaint began I suspect
(again, not a lawyer!) it probably Breakdown
makes for a stronger case. It’s also So far sake of example, at least as
suggested to have a clearly visible I understand it:
copyright notice (“Copyright 2014 If you put the show’s logo on your
by Chris DeLeon” or “© 2014 title screen, or the name of the
Chris DeLeon”), to be able to later show in your game’s title:
make clear that you’ve claimed trademark issue.
the copyright.

385
If you took the show’s theme song might go as far as hosting
and played it in your game, or a conferences, embracing/
clip of video from it, or even a highlighting the best of it, maybe
model/texture/sound from some even offering some official
other company’s game: copyright involvement (like a company hiring
violation. a modder to join the real
development team). But that is by
If you wanted to show a depiction
no means universal and should
of the main actor or actress:
never be assumed.
personality rights concern.
What I’d Consider
Fan Works
Now, for real, back to the actual
Fan fiction and related areas of
question, with a focus on the
fandom by the way is a terribly
practical considerations I’d be
complicated legal territory, and I
weighing:
suspect with a lot of case-by-case
variation between company NOT CHARGING DOES NOT MEAN FAIR-USE
1. People on the internet often spread the
attitudes, and a great deal of
impression that as long as you’re not selling it, it’s
consciously looking the other way. legal and fair to do. At least as I understand it,
Back when it started as a cultural that’s simply not actually true. Practically
speaking, it probably does paint a much bigger
phenomenon, huge companies
target on your back if you make millions of
seemed to have a scorched earth
dollars misusing someone else’s IP, and that
policy about shutting it down company might chase after you for its cut and/or
everywhere it cropped up, in order to shut you down for doing that. Practically
to maintain total control over their speaking, even though huge companies have
IP. But in the past several decades entire departments full of lawyers, they’re pretty
some IP owners have opted to busy with a lot of real business to worry about,
embrace fandom and fan culture and whatever someone’s doing without making
any money and especially if it’s not drawing any
and fan fiction as a part of a
real attention is probably a lot less likely to get
healthy fan community. They
them to make time to come after you.
386
But it also happens sometimes down by an intimidating letter than
that some teenager somewhere is fined an exorbitant amount or
just making a mod about their thrown in jail. I’m sure there’s
favorite childhood IP, then a lawyer exceptions to that, but that seems
sends them a generic/form, a to be at least in the handful of
Cease & Desists letter, that says cases I’m familiar with, what often
either shut that down immediately goes on.
or face further legal action. The
Unless of course you’re messing
C&D letter takes them no longer to
with the record industry, as their
create than it does to type an
policy seems to be to “make an
address for an envelope and add
example of” people by randomly
postage, and with the receiving
selecting targets who once had 3
party knowingly on empty legal
mp3 files on their computer then
ground for what they’re doing
putting them into debt for
(having gotten no permission, no
decades. But record industry isn’t
licensing, plus usually no real
really what we’re talking about
financial or legal resources to fight
here.
their seemingly defenseless
position in court anyhow), this Many people think that what
generally means instant death of they’re doing is “fair-use” when
that project, which is always a real it absolutely isn’t.There are
risk when toying with IP that isn’t certain limited uses for the
theirs. Note by the way that as a purposes of art, education,
general rule of thumb (again: not a commentary, criticism, parody,
lawyer, not a lawyer, not a lawyer, I news – but there are a ton of
might be totally wrong about this!) details about those particulars
provided you’re not making real written up on the web by actual
money off it seems like a lot of the lawyers if you’re curious. It doesn’t
time you’re more likely to get shut actually matter if it’s “pretty old”
unless it’s so extremely old that
387
falls into public domain. It doesn’t exactly what some of these things
actually matter if the original and their ramifications are, either!
owner is no longer making money Sorting out what’s right in any
from it, or even still in business, given case is part of why we have
because the rights to decide a debate-like court system. What
when/how/whether to begin your lawyer thought can turn out
generating revenue from those to be wrong.
properties again get passed
Even in the event that you’re right
around and sold as business
about something though, proving
assets for long after their initial
that’s the case in court can be
use.
time consuming, costly, and a ton
Don’t trust my word on it or on of hassle, so unless you’ve got a
web forums, before deciding that really important artistic or critical
what you’re doing is Fair Use. statement worth raising a ruckus
Really, you should be digging for over, or the strength of solid
the explanation of Fair Use by representation (in which case I
someone who has really have to imagine you wouldn’t be
committed the time and education e-mailing a game designer a law
to learn the ins and outs of it. Of question) it’s probably preferable
course even if it’s a website or to just stay out of their sights of
article unmistakably written by a these kind of people and not risk
lawyer it’s still just a starting point, drawing any more attention than
and a real conversation with a you have to.
lawyer could be instrumental in WHO WILL SEE IT?
staying out of trouble from a 2. Who will see it? If it’s you and your
misunderstanding. roommates, you can probably get away with
virtually anything. Although even if it’s you and
Plus, an unsettling secret I’ve run a classroom, that’s still probably true, but what
into from working with lawyers: if one of them records it with their phone and
not all lawyers see eye to eye on posts it to YouTube, and then what if it blows up
388
getting a ton of views, shows up on the front on widespread interest in space
page of Reddit, and the company gets wind of it from the moon landing.
that way? Now, it’s unlikely, but it’s possible,
and if it’s not something you’d be comfortable Around the time that Fast and the
with, that’s something to consider. Furious and Gone in 60 Seconds
were big from theaters,Need for
Now I’ve admittedly made some
Speed Underground appeared
small throwaway noncommercial
with options to upgrade neon
videogame projects designed
under lighting and custom mufflers
specifically to reach tiny
on street racing cars. The same
audiences, measuring in the
year District 9 came out in
hundreds at the most, that I
theaters a game about battling
probably came closer to using IP
space aliens came out called
in in ways that I absolutely would
Sektion 8. The old Contra games
never do in one of my “real”
heroes and enemy characters
games, either commercial or even
were blatantly inspired by movies
purely as a hobby, that had
like Aliens and Predator. The
potential for significant reach and
pinball machine F-14 Tomcat
visibility.
came out shortly after the movie
SIMILAR, OR INSPIRED BY, NOT LICENSED
Top Gun prominently popularized
3. Is there a way that you can be safer or more
clever about it by speaking to the same audience, that model of fighter jet. After The
even appealing to some of the same themes or Matrix popularized bullet time Max
ideas, without going so far as to incorporate any Payne capitalized on it with time-
of the original characters, music, title/logo, etc.? slowing pills. The spiral effect on
Space Invaders wasn’t originally the rail gun in Quake 2 was based
going to be about space conflict, on the effect for the rail gun from
but it changed in development the movie Eraser, and the see-
when the developer saw a Star through-walls effect of the
Wars ad. A ton of films and games Farsight in Perfect Dark was
around that time were capitalizing based on the functionality of that

389
same gun from Eraser (the seem to have gotten away with
MagSec in Perfect Dark also doing for decades now, is to
closely resembles the sound and borrow or build upon the basic
appearance of RoboCop‘s pistol). idea, as long as you riff on it, find
I imagine it goes without saying a way to really make it your own,
that after Twilight became huge, and don’t try to imply any
we were seeing werewolves and association official or otherwise
teenage vampires everywhere, and with the property in question.
that Harry Potter brought in its
Probably ok: a game about teens
wake a ton of other kids books
that slay vampires.
about little witches, little warlocks,
and little wizards. Probably not ok: a game called
Buffy the Vampire Slayer, featuring
StarCraft, depending who you talk
Buffy the Vampire Slayer.
to, seems to be very blatantly an
appeal to fans of (or arguably a rip Somewhere fuzzy in-between, and
off of) Aliens, Predators, and/or exists on a sliding continuum from
WarHammer 40k. cowardly to really playing with fire:
a game about teens that slay
So can you make a game based
vampires that has clear allusions
on a licensed property without
to or similarities to Buffy the
securing the rights? No. Not really,
Vampire Slayer but doesn’t
not technically. I mean you’re
specifically call itself that or
probably capable of doing so,
otherwise make the association
however the better your game
explicit.
does, even if it’s free, the more risk
you’ve put yourself in for trouble. Anyhow, that’s the best of what
But what you are far more likely to I’ve got to offer on the question at
be fine doing, at least based on the moment. Hopefully it’s at least
observations of what so many a little bit helpful in providing some
other high visibility companies additional things to consider.
390
Whatever you decide to do, good
luck!

Talk to an Actual Lawyer


And again, it’s really important to
stay out of trouble in these kinds
of things. If you’ve got the
resources I really recommend
talking to a lawyer about any
questions you might have. Or, at
least, find another source that’s
not just another game designer
trying to talk as best he or she can
from his or her own limited
experiences and reading.

391
SE C TI ON 6

Should I Release a Game as


Soon as It’s Done?
Many developers learn the
hard way - a few times over
- that if your goal is to get
people playing your game,
just finishing the creation of
it is only one small part of
many to that objective.
You’ll want a launch plan!
Industry

The question sounds pretty something that has potential to be


obvious. Of course, right? I mean of interest to strangers (a good
c’mon, it’s done! litmus test, since strangers won’t
just play it to be nice to us), there
But the answer is no.
are at least two more small steps
Releasing a game just as soon as to take after completion before
it’s done is kind of a bad idea. releasing it.
When someone is new to game
First, if you haven’t already done
development, and they’re mostly
so earlier in development with a
just making projects as way to
build that looked finished, it may
figuring out how things work, it’s
be useful to promote the game a
not really a big deal. Once
bit and create some decent
someone has a bit of experience
promotional materials to point
though, and they’ve invested
people to. A short and simple
themselves into crafting
YouTube video will do, but make it
392
entertaining instead of descriptive. players get started quickly instead
Also, take a bunch of screenshots of fumbling around trying to figure
to pick out the few best to out what’s going on.
represent the game on the web.
People are busy and there are a
Maybe even gather a few player
ton of exciting, free, easy-to-reach
testimonials from private testing.
things competing for everyone’s
Lots of people either don’t play limited free time. Watching a
games or don’t have the time or sweet video may be just the thing
set up to play your game right this needed to bridge the gap and
minute. That includes classmates convince someone to try it. If they
and family members on Facebook, decide it isn’t for them, no big
friends without the particular deal, but at least then they can
platform or specs you develop for base that decision on information
– even recruiters at game other than the game’s title.
development companies (you’d be
Retail commercial games come in
shocked by how many people
a packaging that allows undecided
working at game companies don’t
players to get a quick sense of the
play videogames). Having a
game by the cover art and
decent video can help these
information+screenshots on the
people quickly learn about the
back. Think of the video,
game, and even share it with
screenshots, and (if relevant)
others that may be able to play it.
testimonials as your version of
Meanwhile for people that do have packaging. And just like it would
the time and system specs to play not be acceptable for a game
your game, watching even a half company to just sell their retail
minute of the developer showing games as unpackaged DVDs
one way to play the game the way laying on the shelf, even otherwise
that it was intended (even if not happy players will pass on your
the only way to play!) can help
393
game if you don’t show enough clarify, coach, or point something
interest to package it decently. out to them when they sit down to
play the game, multiply that
The second thing, and this of
problem by a thousand players
course comes before packaging
and realize that you won’t get an
but it’s equally important, is to
opportunity to talk to any of them.
really user test the ‘final’ game
with people that have never seen Take whatever it is that you find
you play it or had you explain it. yourself desperately wanting to tell
This isn’t really about fixing bugs, your playtesters and either embed
so it doesn’t matter how thorough that information blatantly into the
of a programmer you are, it’s game at a relevant time. Or, even
about identifying accidental better, if at all possible find some
design slips that you would likely clever way to remove the need to
apologize over if you saw provide that clarification. You will
someone struggling with it. Yes, always, always catch something
it’s necessary to write a game that surprisingly important by doing
doesn’t crash, and it’s necessary this for each game. Not doing it
to ensure that it installs and/or would be like shipping code
runs decently on a variety of without even first trying to compile
machines, but I’m assuming that it to see if any errors come up.
you’ve solved those problems Madness!
already.
Testing the would-be-final version
This is about having one last with a few people can make a big
chance to smooth over, fix, or difference. It’s well worth putting a
improve the places that new few extra days into, at least. If you
players get stuck or confused by don’t feel like you can even bother
when sat in front of the game a few of your personal
without help. If someone needs connections to try it, are you really
you as the developer to explain,
394
sure that you’re ready to bother a
few thousand strangers with it?
By comparison to how long is
needed to take a game from
concept to release, we’re really
only talking here about a tiny
percentage of total development
time – maybe a few percent for
some immediate gains, or a bit
more if you’re really wanting to
polish it, say, for commercial
release.
That little bit of extra work at the
end, even though the game is
technically functional enough and
feature complete so it could be
released, can greatly amplify the
size and satisfaction of your
audience. While there’s obviously
more to being happy with a game
project than simply hitting bigger
numbers, these two practices can
also help your game wind up in
front of the sort of players that it’s
intended for, and increase the
probability of them seeing all or
more of the content that you (and
your team, if applicable) worked
so hard to create for them.
395
SE C TI ON 7

How to Get the Most Out of


Your First GDC
The GDC - Game Developers
Conference - is one of the
largest conferences in the
world for developers. For
people interested in the
possibility of transitioning
from hobby to professional,
it’s well worth looking into.
Industry

WHAT IS THE GDC? there to visit while they’re still in


The question at hand today is:
school, shortly after graduation,
how do you get the most out of
maybe even a year or two out as
your first Game Developers
part of their job search and
Conference?
professional development. It’s part
First, for readers less familiar, a bit of how they’re trying to build their
of background: the GDC happens professional and peer network.
every year, almost always in San
I’ve been to all but two of the
Francisco. It used to be in San
GDCs since 2005, so I’ve seen
Jose sometimes, now it’s pretty
more than a handful of these. On
exclusively in the middle of SF in
most of those visits I’ve got other
the Mascone Center. People come
people coming for their first time
from all over to attend. It’s a
who were in one of my game
developer-focused event.
development clubs, back when I
Oftentimes students will go out
was at Carnegie or now that I’m at
396
Georgia Tech. So I’ve got some company or list that school on
practice at trying to help those your personalized card, but you
people get the most that they can should also make sure you
out of that time. I’m going to pass mention whatever differentiates
on to you some of the advice that I you and your work and your
think has helped reap some strengths and your interests. It’s a
rewards for those folks, including chance to highlight what’ll
myself (these are things I still do separate you from the other 500
every time I go). people that they talk to that day.
BRING BUSINESS CARDS And also, if they’re trying to find
At the top of that list is to make you in the shuffle after-the-fact to
sure you make some up-to-date contact you for something, they
business cards. Make sure it’s got need to have some sort of hooks
your name, e-mail, cell, a website on your card to whatever it was
for your portfolio or games, and a you were talking about to get you
few words describing what you back in touch with the right
do. If applicable, a few highlights person. Because one of the nice
from your background. I like to things about doing this is that
think of mine as a mini-resume, it’ll people can build new connections
help people remember me and this way. I encourage keeping the
what I do. I don’t care actually if backside blank – it’s cheaper, and
you already have a professional also makes it easier to jot down
looking card leftover from the last notes on the back (you should
company you worked for, or the carry a couple of pens!).
school you’re attending, people Sometimes the person you’re
probably aren’t asking you about talking to, they’re out of business
the past company you worked for cards, they want to give you their
or your school, they’re asking you info, but they’re out of cards. That
about you. You shoud list that happens at GDC because they’re

397
giving so many away. If you bring even for free on the internet. But
pens and you’ve got blank backs what I like to do instead is to make
on your cards – this happens to a simple design in Adobe
me all the time – they can jot their Illustrator (make sure they’ll be
info on the back of one of your standard card size when printed,
cards, and you’ve still got their whatever that is, I think it’s roughly
info. 2×3 inches but double check that),
USE YOUR PASS LANYARD lay out 4×2 (or 5×2, whatever fits
Keep a small stack of those cards on a page) edge-to-edge for a full
stashed in the backside of the page layout. You’ll get 8 or 10 per
lanyard that holds your conference page, go to a Kinko’s, print them
pass. There’s actually kind of a out on white card stock – the right
pocket hidden for them right there. kind of card stock for business
That way they’re on quickdraw so cards – then use the paper cutter
you’re not rooting around in your there to separate them all yourself.
pockets or digging around your I do my own. It’s a lot cheaper, you
bag trying to get bent cards out. can make a ton of them this way,
and it only takes about half an
While we’re at it, the lanyard
hour of simple repetitive labor of
usually hangs too long, and
chopping some pages. If you bring
people really don’t want to look at
your own design there, print it out
your crotch to figure out your
on their printer, on the nice card
name. Tie a little knot behind your
stock paper, you’ll get a higher
neck to shorten it so it hangs at a
quality than if you tried to do it at
more reasonable height in front of
home, without all their insane
you, and more people will use
costs that they would charge for
your name when talking to you.
designing the card or cutting the
MAKING CUSTOM BUSINESS CARDS CHEAPLY
card etc.
Now there are a million ways to
order business cards cheap, or
398
BRING A LOT OF BUSINESS CARDS Everyone’s there to network, and
And by bring some business
they get that. When you give them
cards, I mean make and bring
a card you’re speaking their
hundreds of business cards.
language.
200-300, upper bound 500
AND UPDATED RESUMES
wouldn’t kill you. Give them to
Likewise, print and bring enough
almost everyone that you talk to.
resumes that you won’t find
Typically they’ll give you one back.
yourself being stingy with them.
Don’t be stingy with business
Dozens, which is probably ample,
cards. They aren’t just there for
but err in favor of not needing as
recruiters, they’re for the people
many as you print, it’s good to
you run into, because maybe
have more than you need.
they’ll run into someone that
Contexts for handing over
they’d like to put you in touch
resumes are much less frequent
with, and to do that they’ll need
than business cards, but if you
your information. It’s an easy and
find yourself ever not handing
appropriate way to segue a
someone a resume because you
friendly but not very professional
want to make sure you have
conversation toward the direction
enough later in case you run into a
of, “oh what are you working on,”
better connection, you’re losing
“what do you do” conversations
opportunities, giving up
just by giving someone your card.
opportunities, and for the stupid
It’s also a really easy ice breaker at
reason of having not carried
conferences to swap cards,
enough sheets of paper. Don’t let
because there in each other’s
that happen to you.
hands you’ve got something to
PRESENT YOURSELF PROFESSIONALLY
talk about already, even if
Speaking of which, I assume this
otherwise you’re not very natural
should go without saying, but
at spinning up a conversation with
since it is advice for the first-time
a stranger.
399
GDC goer: update your resume, adult enough to operate in a
pay attention not just to the workplace with professionals of
information on it but also to how it different disciplines, backgrounds,
looks aesthetically when you print and varying levels of seniority. It’s
it out. Print it out, put it in front of a signal to them, so don’t signal to
a friend, get their feedback. Often them that you’re careless,
another set of eyes can spot unaware, or unprepared by having
issues you thought were fine, it resumes that are clearly in first
doesn’t take any special training. draft state or that are printed on
Then you can fix those things and standard paper.
put it in front of another friend, and
Likewise, and this is probably a
keep doing that until they stop
given for most folks but there’s
giving you corrections to make to
always a few people I wish
it. Print it out on decent resume-
someone had said something to:
quality paper, not on ordinary
while a tie would be out of place –
lightweight printer paper.
unless you’re shooting for a
I know that can sound silly, to not business position – do your best
just focus on the information to clean up a bit. Get a haircut
printed on the page, because it before going, and wear some
should be the skills that count, or reasonably nice-ish clothes rather
your education, or something else. than something silly that will stand
But HR people and business out in an unprofessional way.
people, the ones that are in You’ll see these people there. It’s
positions to make hiring decisions, unfortunate. If you or anyone you
typically have a business know was going to be those
background, and people with a people, please reconsider, it’s
business background look for little really not doing anyone any favors
signs that the person they’re in terms of landing jobs or making
talking to is socially aware and real connections with other

400
professionals, to dress all goofy. that up during the day for it to
It’s not Comic*Con, it’s a work.
professional conference for
Try not to eat alone if you can
developers who are networking for
avoid it. That includes lunch.
professional reasons.
Round up some people nearby or
FIND OR SET UP LUNCH, EVENING MEET UPS find a group nearby and ask if you
Make it your goal during the day
can join them. It’s a professional
to find something to do after
conference, they get what you’re
sessions close for the night.
doing, and if they say no, who
Identify a group to tag along with
cares, you may never see those
or meet up with at the end of the
people anyway. Go ask someone
day, or at least find a party that
else. Ask them about what they
you can get into, or make a friend
do, what they’re hoping to get out
that you’ll know well enough to
of attending the conference this
recognize if you run into them the
year, and introduce yourself too of
next day. Be there first and
course. Worst-case scenario, even
foremost for the people, not for
if they say no they’ll remember
the booths or talks (except to the
you as that kid who unknowingly
extent that specific people are at
had the guts to ask a bunch of
the booths and talks). That’s
famous developers you didn’t
where the good things happen,
even recognize if you could join
that’s where jobs happen, or
them for lunch.
where life-altering introductions
take place, or great idea sharing And sometimes that can totally go
will happen – it’s the people, not the other way. True story: at my
the booths or the talks. The best first GDC I got to eat lunch with
networking during GDC really David Perry – the guy who
happens outside of GDC in the invented Earthworm Jim and MDK
evenings, but you’ve got to set – because it didn’t even occur to
me that maybe as a sophomore in
401
college I shouldn’t have asked him their connections and their
if I could hang out with him over careers. Oftentimes people return
lunch. But I did. He said fine. I got the favor. This is a surprisingly
to chat with him about Earthworm easy to do, with the number of
Jim. That was pretty sweet. people that you’ll be running into,
LISTEN TO PEOPLE, HELP CONNECT THEM many of whom are really doing
One of the questions that came up cool stuff. This is of course
was, “How should someone especially easy if you came
looking to get a job in the industry prepared to card swap with pretty
make a positive impression?” much every group you run into.

I think the first thing you can do is DON’T GO IN THERE “COLD”


Really prepare to talk about things
introduce people to each other. Be
that people there willcare about. I
that guy or girl that people will
don’t mean industry gossip or
thank later for the connection you
about upcoming releases. If it’s
helped them make. Run into a
treated as a gamers convention
sound guy who wants to get
it’s really not worth the cost of
experience? Play some beginning
attendance and many developers
indie game that clearly could use
will find that immature or annoying
some sound help? Get those two
anyhow. Practice talking about the
people in touch (hopefully you’ll
highlights of your work – not all
have their business cards to make
the details, just the short pitch. If
that easier to do). Tagging along
you haven’t read anything about
with an animator that you just
videogame development, design,
met? She showed you some of
or the industry in awhile? Read
her work on her laptop? When you
something, anything, whether it’s
two introduce yourselves to other
some trending blog posts, a book
small groups, tell the other people
about game design, maybe my
around you about the animator’s
site, an academic paper if that’s
work you just saw. Help propel
402
more your crowd, whatever. But I tend to compromise, I tend to go
be ready to have some ideas to with a tutorials pass. It’s much
bring to conversations that aren’t cheaper than a main pass but it
your own [citing/crediting the puts you there for 5 days instead
origin of those ideas, of course!]. of 3. Being there for 5 days means
Besides coming across as a lot more networking than being
someone that’s knowledgeable there for 3 at the expo. Plus at
and passionate about what you those first two days of the tutorials
do, you’ll have some fresh ideas in you get immersed in groups with
your head ready to be combined other people in whatever tracks or
with conversations and other fields you choose, and that’s a
inspirations floating around at the great way to build a foundation
conference, and sometimes that’ll into roaming the expo floor and
lead to something good. talking with people for the next
few days. If you can only make it
Plus one of the cool things about
to the 3 day expo due to travel
GDC is that you may run into the
costs, ticket costs, or time, you
person who wrote the thing you
can definitely still make that count
read. The book, the article, the
so don’t be disheartened, but if
paper, the blog entry. You can
you can swing a tutorial pass I’ve
have a conversation about it,
always found the extra two days
they’ll be happy you read
of field-specific networking totally
whatever it is that they made.
worth it.
PASSES: SMALL (EXPO), MEDIUM (TUTORIALS),
OR LARGE (MAIN)? But to be honest I really question
The other question that came up the value of the main talks passes.
was: “Is it worth paying extra to They’re super expensive. Typically
attend the talks and access the it’s some talking head in the front
paid section of GDC Vault?” of the room, while you don’t really
need to meet the person who was

403
famous years ago that earned
being a speaker now, who you
need to be meeting are the other
people in that room who will be
maybe accomplished enough later
to be the speakers years from
now. You want to come up in the
industry with those people, and
that works better networking
laterally than trying to hound the
celebrity developers that everyone
else is trying to fawn over. (Note
that the tutorials events are often
better for getting to know the
other people in the room – at main
conference talks that are more
expensive people tend to scatter
shortly after the talks and they
rush off someplace else so we
miss the chance to meet them.)

404
9 In the same way that we can
sometimes study level design by
investigating specific cases, one
way into thinking concretely
about gameplay design is to
take apart games that we like, or
worked on, in an effort to better
understand how they do and
don’t meet their apparent goals.

Game Analysis

405
SE C TI ON 1

Why Minecraft Worked in 2011

Minecraft took the world by


storm. People who didn’t
care for videogames found
that this game spoke to
them. People that already
liked games enjoyed it too!
It’s a perfect place to begin
our dissection of games.
Game Analysis

Background • Day and night cycles pass.


If you already know Minecraft, skip • Aggressive enemies spawn when
ahead. If not, here is some and where it’s dark.
information to give context to the
• Underground there are cave
rest of this section:
systems with lava, iron ore,
• The world is made entirely of 1- diamond, and a few other
meter cubes. minerals.
• Any of those cubes, except • Above ground there are trees,
bedrock at the very bottom, can hills, animals, streams, oceans,
be removed or moved, enabling cliffs, sandy beaches, deserts, etc.
the player to reshape the world.
First-time play tends to go
• As far as the player can wander something like this:
in any direction, more terrain will
be randomly generated.
406
1. The player spawns with no My Narrow Experience
supplies. My first two weeks with Minecraft
2. Punching trees drops logs, were entirely in single player; my
which can be used to create a next two were exclusively in
workbench, a weak wooden multiplayer on a small server
pickaxe, and a few other basic (about 12 regular players) with a
supplies. cooperative, non-griefing
community. For a day or two in
3. The wooden pickaxe can be
between, I briefly explored huge
used to break stone, which can be
servers.
used to make stronger stone tools.
Stone pickaxes are then used for By no means are my design
coal, iron ore, etc. observations below intended to be
comprehensive. There are so
4. Coal and wood are combined to
many different ways to play, and in
make torches, which cast light to
multiplayer, so many different
prevent enemies from spawning in
communities to play with.
otherwise dark areas.
Here is what I managed to extract
5. Combinations of materials
from my experiences with the
produce a variety of other objects.
game.
6. The player dies a few times,
learns a few things, tries out a few
different kinds of projects. Time
passes.
7. The player then builds the Taj
Mahal, or something very much
like it.
8. Players start having Minecraft
dreams. Modest interior decorating. Paintings are pre-made.

407
What Works things with basic electronics as a
PRICE hobby, all that and more happens
Because online play in Minecraft here. Some games let the player
takes place entirely on user- “play any way they want” by
hosted unofficial servers, rather giving them 3 ways to approach a
than massive centralized data fight: stealth, guns blazing, or
centers as is now the norm for hacking and trickery. Here you can
MMORPGs, there is no ongoing pretend you’re in Lord of the
subscription cost. It requires only Rings, then find yourself doing
a one time payment to purchase interior decorating or building
the game, which is a fraction of calculators an hour later.
how much typical games cost. OPEN-ENDED
ONE-SIZE-FITS-ALL Minecraft allows a range of
Minecraft supports players with commitment. The lack of
many different preferred styles. structured objectives means the
Whether you’re into building player is free to travel light,
houses in The Sims, fighting coming and going in short
monsters outside in Zelda or increments to explore and
Diablo, fleeing zombies within adventure, or to set about
narrow corridors in Resident Evil, gathering materials and laying out
exploring vast landscapes in massive projects. This flexibility in
Oblivion, gaming alongside others possible session length makes it
in your MMORPG of choice very easy to lose track of time –
(complete with the politics and intending to hop in for 15 minutes
leadership that entails), to reap crops, then sticking
maintaining or trading crops in around for hours from getting lost
Farmville, chatting in the social in a cave or carried away with a
community in Second Life, sharing new project. How long it takes to
videos with the creature creating play can grow or shrink according
community of Spore, or designing
408
tight knit player base, or becomes
exposed to the tremendous wealth
of information available outside
the game.
EASILY SHARED
That Minecraft is a computer
By the end of my month I was taking on big projects. game makes it easy to Fraps a
play experience for YouTube, or
to the player’s interest and screenshot a completed building
availability. project to imgur. This sharing
COMMUNITY OUTSIDE THE GAME experience beyond the game
The game, at least in its current gives players an audience, raising
form, is famously harsh to expectations. Meanwhile, those
newcomers. Night comes sooner videos and screenshots function
than expected, enemies are more as viral marketing for the game,
dangerous than they look, death is introducing outsiders to the
disorienting, and there’s simply no game’s aesthetics, concepts, and
information within the game about possibilities.
how to do basic, important things
like making torches for light after
sunset. Although traditional design
suggests that this would be a
huge flaw in the user experience,
this increases the importance of
being introduced to the game by
friends, or of turning to the wiki
and countless online YouTube
tutorials. The user is not an island. I made this based on the Library of Alexandria. On a
Consequently, the player is either server with many other players to share it with.
immediately pulled into the game’s
409
MOTIVATING PRESSURES sense of ownership: even though
Building shelter that Creepers
recipes are simple 3×3 grid
won’t destroy, Spiders won’t climb
arrangements, the feeling that you
on top of, Zombies won’t spawn
made the armor you’re wearing, as
within, and Skeletons won’t fire
opposed to finding it whole in the
arrows into gives utility to
world, makes it yours.
otherwise purely decorative
FRAGILITY
elements. Doors, switches,
Exploding enemies – Creepers –
fences, glass, armor, swords,
put structures at risk, which
arrows – along with landscape
makes them particularly terrifying
structures like moats, walls, sky
to a proud architect or red stone
bridges or defensive posts –
electrician. Fires can also spread,
become investments to protect a
destroying flammable materials
dwelling. The danger of darkness
and quickness of nightfall give
pressure and meaning to using
daylight effectively. Without day
and night cycles, and without
enemies, the game would require
much more initiative to learn.
Instead, the game pushes the
player to learn, without squeezing
them through a narrow tutorial or This is my pickaxe. There are many like it, but this one
is mine.
precisely planned experience.
EARNED RESULTS (lumber, doors, or nearby trees).
The difficulty and luck involved in Death by enemy, fall, or lava
finding materials, along with the makes the player drop everything
risk of losing inventory upon dying in inventory, which vanishes if not
and respawning gives value to the picked back up within about 5
inventory. Crafting adds to this minutes of respawn. This lack of
410
safety or permanence adds to the
perceived worth of items and
structures, since they have to be
guarded by the player, and we
have a tendency to grow fond of
things that we’re responsible to
protect and maintain.
Top: diamond, left: red stone, middle: iron ore. Jackpot!
UNEXPECTED TENSIONS EXTEND PLAY
A side effect of fragility is the underground could reveal iron,
impulse to restore order after an gold, red stone, gems, flowing
accident, which unexpectedly lava, or an expansive natural cave
extends gameplay time. We ideally system behind it. There’s
want to leave the persistent world excitement in the unknown, and in
at a good stopping point, not the sense that if just a few more
worse off than when we started, cubes are chipped away, payoff
so when inventory is lost upon for the effort will be found.
dying from enemies, or once a wall OVERSHOT/UNEVEN NEED
gets blown apart by a Creeper, Game currency purchased through
tension and dissatisfaction exist console downloadable games,
until the supplies are recovered or card collection packs, or web
the damage is repaired. social games are typically set up
RANDOMIZED REWARD (GAMBLING) to have uneven leftovers after
Variable ratio reward, the good ol’ purchases. A lawyer even sued
Skinner box mechanism common Microsoft over doing this for Xbox
to many games in the form of Live Points. This scenario comes
randomized drops, dice rolls, and about organically in Minecraft. For
surprise chests, plays a central example, you have 26 logs, but
role in Minecraft addiction. Here, need 35 to build the balcony you
every single block removed have in mind, so you set out on a

411
logging expedition – and while out
in the woods with an axe anyhow,
you bring home 25 logs. 26+25-35
= 16, so after building the balcony,
you now have 16 logs at your
disposal, which probably isn’t
quite enough to do whatever you’ll
Not a very fancy house, but I bet he’d trade snow
next want logs for. This blocks for sand.
mechanism gets amplified by rare,
to complementary overstocking
useful materials like red stone, or
between players, with too much
time-consuming materials like
sand & glass stored by a desert
obsidian. In the past, I’ve
dweller, snow cubes by another
discussed this mechanism as the
player in the tundra, and lumber
“chips and salsa” design, so
for the forest resident. This means
called because when the salsa
that the player who wishes to have
bowl is empty but we still have
a full palette of materials available
chips, we refill salsa, and when the
for their construction projects is
chips bowl is empty but we still
unlikely to be a total hermit,
have salsa, we refill chips, until
instead reaching out to exchange
one or the other runs out.
some local excess for what’s
VALUE IN TRADING
abundant elsewhere.
All the reasons stated above
adding to the value of materials – ABSTRACTED VISUALS
Part of the appeal of pixel art,
unpredictability in finding them,
whether we’re talking about Space
uneven supply needs, risk of their
Invaders or Passage, is that the
loss – combine to make them
simplicity saves our attention from
valuable for trade or gifting.
being wasted on nuances like
Different biomes and varying
bump-mapping giving everything a
distributions of minerals can lead
wet plastic look. We don’t see
412
cubes in Minecraft after only a few cartoon, comic, movie, or game
minutes playing: we instead see character, it’s hard to mess up too
an ocean, a fortress, a tunnel, or a badly when drawing a 64×32
tree house. To someone new to texture. That simplicity extends in
Minecraft, screenshots of the an even more dramatic way into
terrain all look clunky and the world, where everything fits
arbitrary. To a Minecraft player tightly on a 1-meter grid.
those same images look inspiring, Alignment is easy, symmetry is
magnificent, and ripe for settling. easy, and the player is never
LOW DETAIL = LESS ROOM FOR ERROR paralyzed deciding between minor,
The player’s custom texture is fractional differences in
64×32 pixels. Whether players dimensions. Anyone can throw
want avatars resembling their real- together a decent little house in a
life appearance or their favorite single play session, and with
practice and a bit of
experimentation, come up with
something both creative and
presentable.
MASSIVELY MULTIPLAYER LEVEL EDITOR
From a purely functional
perspective, Minecraft is a
multiplayer real-time level editor.
Combined with the simplicity of 1-
meter block units, it’s easy to
create novel and engaging spaces
for others to explore, between
exploring the spaces created by
others. It’s MS Paint for 3D level
creation.

413
INFINITE WORLDS Minecraft uses procedural map
Players can – and do – throw away
generation to counter the
and initialize new random worlds
irresistible temptations that spoil
until they’re happy with where the
our fun (we have no choice, really
central spawn location is situated.
– because if we don’t utilize online
And no matter where the players
resources, other players will,
start, walking far enough in any
leaving us behind). No one can
direction will yield major
give away the secrets of the world
differences in the environment.
a Minecraft player is in, since
Each random world generated has
every world’s geographic secrets
the potential to become almost
are unique.
twice the surface area of Earth, if
LOW-FI MODS
players wander out in every
Modding for feature expansion
direction.
and new art is simple, with still
UNCHARTED WORLDS (NO MAPS OR GUIDES) more support for mods being built
A side effect of infinite worlds is
into the game’s next iteration.
that there’s no single guide of
Already people are adding more
quests and locations, which helps
animals to the game,
save the gameplay from becoming
improvements to world
an exercise in following directions,
generation, and inventing new
as has become increasingly
modes. Though modding is
common among MMORPGs and
possible for many commercial
single player games alike. For the
games, in this case Minecraft‘s
same reason that the game thrives
low fidelity again becomes a
without a tutorial, many games
benefit, since getting homemade
suffer in playability from the
mod content to blend seamlessly
prevalence of online tips sites.
with the original game’s visuals
Though a game can be designed
doesn’t require a team of 3D
as though the internet does not
artists and months of dedicated
exist, no players will be fooled;
414
effort. This enables mod creators Creeper enemies – but they
to think and compete over design, devastate caves, can be used to
rather than emphasizing produce fearsome traps, and are
production quality. an anarchy player’s dream (well,
WATER AND LAVA SOURCES that plus lava source buckets).
When moving water or lava by Thanks to the respect for
bucket, it isn’t the bucket full materials, inventory, and general
which is moved, but rather the property that derives from the time
source. Frequently, filling a bucket necessary to accumulate and put
or two at the top of a waterfall can it all to good use, carrying even a
stop the waterfall – because the few TNT items can feel a bit like
waterfall is inside the buckets. how one might imagine it would
Likewise for lava – plucking up be for a civilian to be in
one source cube grants the power possession of a hand grenade.
to drench a mountain or fill a Gone is the triviality common to
narrow channel will lava. This explosives in action games, and in
design choice reflects a very its place is reverence for the
unnatural contrivance which does weapon’s potential to save or
wonders for gameplay, by destroy time.
removing the tediousness of FARMING
moving liquids and instead The player can make a hoe, gather
allowing the player to take action seeds, till grass, and plant wheat
at a conceptual level. to be turned into bread. Reeds
EXPLOSIVES can be planted, then chopped
Without TNT, the game simply down each time it grows to full
wouldn’t be the same. Explosives height, for pressing into pages
are made of materials difficult to then books to join with lumber for
acquire – sand mixed with the shelves. Trees and cacti can also
sulfur dropped by the exploding be planted, to farm lumber or

415
A huge server was due to be reset on Dec. 20 for a
Wheat farm, for bread. major update. The night before, we were all given
unlimited TNT and permission to destroy the world
before its imminent deletion. The scene was surreal.

the rounds at the start and end of


each session, further prolonging
play.
DISTINCTIVE STYLE AND CONCEPT
Though both visuals and
gameplay were cloned and
Reed farm, for paper.
advanced from the obscure game
more cacti. All plants require Infiniminer, when people see a
nearby water, light, and soil. Each screenshot, DeviantArt, or t-shirt
of these grows at a different rate – with blocky people or cuboid
which applies even while the worlds, that’s now associated with
player is away – and if they aren’t Minecraft. Franchises like Halo,
harvested they stagnate at Max Payne, and Half-Life all have
maximum height, causing the the a distinctive lead character; every
player to miss out on potential element in the Minecraft world –
materials from fresh growth. These and even things not in that world
motivate the player to but rendered the same way – is
compulsively stop in to harvest now associated with this particular
various crop types, and to make game.

416
CROSS-PLATFORM SUPPORT 2), to “there are side quests the
There aren’t many commercial
player can optionally complete,
games built on a Java foundation.
and in any order” (Fallout 3). In this
Other than Minecraft the only
case, the world is actually akin to
other prevalent example is…
a massive sandbox filled with
RuneScape? Yet the OpenGL
huge grains of sand – millions
support through the Lightweight
upon millions of them – just
Java Game Library enables
waiting to be piled into castles,
unusual graphical complexity and
dragon sculptures, and rivers.
performance for a cross-platform
Minecraft is a sandbox, in the
format. For a game that relies
most important sense of the word.
heavily upon word of mouth to
WISH FULFILLMENT
achieve more sales, this avoids
There was a time when the relative
dead ends due to Windows, Mac,
simplicity of homes meant they
and Linux divides within peer
could be built entirely by the
groups. (This is likely more
individual or family expecting to
relevant among Minecraft‘s
live inside. Sometime between log
disproportionately geek audience
cabins and today’s mountain of
than among mainstream computer
logistical paperwork, wiring,
users or game players.)
plumbing, etc. that largely came to
ACTUAL SANDBOX GAMEPLAY a halt in the industrialized world.
Sandbox gameplay became a
Minecraft gives players a way to
buzzword a few years ago, but
design and build their own home.
bear with me. In the past, sandbox
It’s a similar enjoyment to
gameplay has meant anything
architecting space in The Sims,
from “the player can cause chaos
and although the fidelity is lower,
between advancing the
the player gets to live inside it,
missions” (Grand Theft Auto), “the
instead of merely observing other
player has to cause chaos to
characters from the outside.
advance the mission” (Just Cause
417
SOCIAL BONDING of hardship from Creepers, fires,
Finding materials as a team,
and resource scarcity, plus current
fighting enemies together,
players assisting newcomers, a
coordinating massive construction
very dynamic and interconnected
efforts, and seeing how the world
community of shared
transforms over time forms a bond
understanding takes shape.
with the other players. With each
SURVIVAL HORROR + SCARY AUDIO
world being unique, and each
The enemy sounds in Minecraft
server going through its own
are not much fancier than the
architectural history, a highly
graphics. And yet, because of the
compressed feeling of growing up
danger they pose to the player
together is simulated. Players
inventory, the proximity of the
share common knowledge of
enemies implied by the sound is
location names, local happenings,
genuinely terrifying. Player
and histories of peer personalities
weapons are weak – arrows are
on the server. Thrown in with a bit
scarce, swords are short range,

An underwater village built as a group effort.

418
signaling either the need to seek
shelter or to prepare for
adventuring out another day.
During the sheltered down time at
night, a break is imposed on play,
giving outlet to web browsing,
book reading, homework doing,
TV watching, or even indoor
Minecraft tasks (smelting ore,
harvesting indoor farms, crafting,
deep mining…). This helps keep
12 pumpkins, 14 moss stone, 8 gems,
19 brick blocks, 29 obsidian, 21 TNT, set of the outdoor activity from feeling
diamond armor/gear… bad time to die.
The better you’re doing, the scarier the game.
like it’s completely dominating the
(Picture for sake of illustration; players stash player’s time, and makes being
their best goods in chests before going out.)
outside more exciting since
and rare materials are needed to attention must be paid to either
make strong blades. Attacks are leaving enough time to return to
relentless, and come not only at shelter, or carrying enough
night, but from any dark place, supplies to create a provisional
including a natural cave or a dark site on short notice.
corner of the player’s home. Since CHARMING CUBIC ANIMALS

at any given time the player is Boom Blox introduced the gaming
likely carrying supplies either mid- world to cute blocky animals.
gathering or mid-building, there’s Minecraft animals are in a similarly
always something at stake when adorable, low-poly style. Finding
the player encounters enemies. cows hopping around a
construction area, chickens
FORCED BREAKS FOR NIGHT
Short music tracks play when the wandering around a house, and
sun is about to go up or go down, sheep riding in mine carts is

419
delightful and unexpected, update to the game includes
breathing life into an otherwise undocumented feature additions –
static world, without adding to the new materials, new crafting
danger. That the animals yield combinations, and other new
useful materials when hit (feathers features are thrown in
for arrows, meat for health, hides unexpectedly. Halloween ond year
for armor, dyeable wool for included a massive update,
colorful building and decorating) including a few minor touches like
only increases the positive pumpkin blocks, but also a whole
association with these animals, extra dimension, “Nether” (Hell)
who remain unaggressive even with new monsters and materials
while under attack. which can be accessed by making
KID-FRIENDLY portals from the main world. More
No swearing, no sultry cutscenes, recently, music blocks were
no political or religious added, creating another
philosobabble, no blood, and no opportunity for people to develop,
torture. A lot of games and media teach, and show off talent within
out there are almost kid friendly, the game.
but fail on account of carelessness IN A WORD
on the part of the authors. Minecraft is a game about
Minecraft doesn’t need those discovery. Discovering what’s
gimmicks to work, so it doesn’t beyond the horizon, discovering
have them, making it possible for new cave systems, discovering
families and young peer groups to incredible projects others have
adventure and build together. done, discovering new features
SURPRISES IN UPDATES snuck into updates, discovering
If there’s a roadmap of what new like-minded people,
features the developers intend to discovering architecture,
add next, it’s kept secret. Each electronics, sculpture, texturing,

420
landscaping, action, photography,
decorating, music, trading,
storytelling, adventure, modding,
and discovering that we all love to
make things, provided that we
have an accessible and cost-
effective way to do so.

421
SE C TI ON 2

Reflections on Three Specific


Hobby Game Projects
Here are three team
projects for which I served
as a lead for code and core
design. I developed these
games with artists, writers,
musicians, and other
designers. Full credits are
available in-game.
Game Analysis

VISION BY PROXY: SECOND EDITION character eyes. The short length of


Artsy Puzzle Platformer VbP:SE probably worked a bit to
Released August 2011 its advantage though, since it kept
the scope such that players can
6.9 million plays by Feb 2014,
get through the full game
Best of SIEGE 2011 Student
comfortably in one sitting.
Showcase
Some people especially disliked
VbP:SE did better than we
the bonus levels, while other
expected, making it to the front
players specifically preferred those
pages of several major Flash
stages, both for the same reasons:
game portals in the US and
they focus on platforming instead
abroad. We later developed a
of puzzle solving. The game was
sequel (Ms Vision by Proxy) in
short enough, all included, that
which we attempt to address the
players who like either were
game’s brevity by involving more
mostly able to slog through the
422
ones they felt so-so about. In any able to get this increase in length
case it worked out well having without creating any new art
these types of stages separated assets nor needing to program
conceptually as a post-story any additional features. I just
second play through, rather than spent an extra day in the level
forcing both level types into the editor churning out 9 more levels
same timeline. It’s a trick akin to and throwing away the 6 I liked
what’s seen in Portal or Mirror’s least to leave my preferred set of 3
Edge – at a much smaller scale, of remaining, which is a fairly
course. common way that I like to do level
design when time and tools allow
The game also would have
for it.
suffered more from being too short
if we hadn’t milked the engine,
level parts, eyes, and cinematic
sequences to squeeze in twice the
levels. Most importantly we were
423
MECHSTRIKE not make sense for an in-browser
Set-and-Play Sideview Action gaming audience. That worked out
Released May 2011 for the best anyhow, since we
didn’t have the time outside of
127,000 plays as of Feb 2014
classes during the semester to pull
I feel like this game had just the off something on that scale and
right number of unit types: 11. polish. We made a lot of
More would have been harder to compromises to keep gameplay
learn, and fewer would have quick and to the point. In the end
limited depth and variety. we made it simple and quick for
players to get set up, which turned
Early on during development we
out to be vital for a game like this
briefly explored what it would take
since trial, error, and observation
to make a more complex and
is necessary to learn how each of
involved simulation with more
the weapons and units work out
detailed AI, stat, and strategy
against and alongside one another
options, though we ultimately
(from emergence, though, not from
decided that something like
any contrived countering or
Gratuitous Space Battles might
boosting relationships).
424
It’s surprisingly individual mech body parts.
difficult to Without cool looking mechs, the
come up with game wouldn’t have worked at all.
cool, non- Our main UI designer wound up
cheesy names doing all of our final tank and
for futuristic plane art near last minute (not her
military units fault – originally someone else was
that haven’t going to make them), and
already been thankfully they came out distinct
done to death. and recognizable despite the time
Our writer came up with excellent limitations. Our original plans
names for each of the units, in included the ability for mechs to
addition to helping us come up lose their limbs during battle, as
with a varied set of weapons and they do in MechWarrior games,
abilities and writing the opening which we wound up cutting since
crawl. The techno-metal track we our mechs didn’t look as good
selected from Kevin MacLeod’s without arms, and if mechs lost
Creative Commons library fit really any of their few weapons during
well, but like any MacLeod music battle it would only drag out the
people hear the songs in YouTube endgame.
videos and other games.
When there’s only a few units left
MechWarrior 2 was a source of
in a well-matched battle it can be
inspiration for us, and the song we
kind of suspenseful… but it mostly
picked has a similar vibe to
just highlights the weakness and
Dragon’s Teeth from MechWarrior
inaccuracy of my AI. In my
2: Mercenaries.
defense, for about half of the
Though my animation engine project we had someone else
wasn’t particularly great, our mech onboard specifically to focus on AI
artist did a really nice job with the programming, though on account

425
of outside obligations, he wound included pressing a key to time
up parting before really getting deployment of a second wave of
started. That type of uncertainty is units, using the mouse to fire an
simply a risk of making hobby or orbital super weapon, toggling
extracurricular videogames, since some AI variables, or directly
we have no pay nor course credit controlling a lone commander unit.
to offer. The core gameplay still In the end we went with pure
works with the mostly functional spectatorship, with shared camera
AI I stitched together. control, which has a very different
feel than being involved during the
We were considering having
action by prolonging a sense of
multiple rounds per configuration,
hope rather than demanding
with players able to make changes
constant focus. Although we
to their AI or weapon settings
added little smoke and sparks to
between rounds but not to which
damaged units, we opted to leave
vehicles are included, but I’m glad
precise vehicle health bars out of
that idea didn’t make it. Part of the
gameplay, partly for the
fun is quickly mixing up fresh
uncertainty that their absence
scenarios, and being forced to
adds to excitement. Being able to
watch a poorly chosen team lose
identify the clear winner well
again and again would be rough.
before the end of the match,
The single round simplicity of our
which could have messed up the
matches and how quickly they can
experience, is much harder to do
be set up even made it possible
reliably since it’s unclear how
for my friend Henry and I to play
many more hits the units left on
indirectly via Facebook.
the field will be able to sustain.
The team had a bit of back and
Huge robots walking past one
forth about whether the players
another mid-battlefield just looked
should be able to do anything
wrong, and combined with their
during the match. Proposals
426
sword (instant kill to any unit), the
chicken walker kicks, and the
spider performs a stomping
action.
We didn’t mean to make melee so
rare as it came out, that happened
only by late accident while trying
to patch up other tuning
imbalances. These attacks played
a pretty pivotal role in the first
build or two we released, with
matches often coming down to
mechs destroying each other point
blank in the middle of the stage.
The inevitable melee gave extra
importance to fielding a humanoid
walker. In later tunings (including
the current version, 1.04) we
improved the weapon accuracy for
slow speed we couldn’t get away most units, decreased mech
with it as we did with the tanks armor slightly, and increased the
and jets. Instead, we programmed effectiveness of machine gun
the mechs to stop and fight toe- usage between mechs at medium
to-toe with one another until one range. These changes combined
or the other exploded. All three to make mech melee virtually
mechs also have a special mech- never take place, though
vs-mech melee attack technically it’s still there and will
implemented: the humanoid happen if matches unfold in a
walker slashes with the energy sufficiently peculiar way.

427
In hindsight, a way to save a
launch team configuration for
more rapid experimentation in
sandbox would have been nice.
Not only would it help players
experiment faster, but it also
would have made testing and
iterating on game balance easier
for us.

(continued on next page)

428
ZYLATOV SISTERS Zylatov Sisters was successful in
80s-ish Arcade Action producing a good amount of
Platformer, designed for shared variety and giving a number of
screen co-op beginning developers in our
Released Dec 2011 videogame development club a
mix of experience.
300,000 plays as of Feb 2014
Many players find it unacceptably
Unlike most other games that I’ve
difficult, though we understood
worked on, after finishing work on
from the outset that we wanted to
this I still really enjoy playing it.
make a game with pinball or
An experiment in modular game classic-arcade pacing: constant
design to help reduce overhead, vulnerability, typically 1-3 minute
429
sessions after a modest amount of This was never meant to be a
practice, and replaying to earn commercial game though, so we
increasingly higher scores. felt okay with simply making the
Furthermore, we knew that the game that we wanted to play.
usual in-browser gaming audience
Our decision to make any level
might not necessarily go for this
equally eligible for selection as the
type of structure since it’s an
first level gives the game variety
outdated taste. Players widely
for a high level of play and makes
accustomed to videogames that
it easier for students on the team
are designed to be plowed
to show their work to peers. We
through by persistence are
also randomized which level
presented here instead with levels
shows up first, so that every
that aren’t meant to be
player gets a slightly different first
consistently completed.
experience. However the lack of
There’s also a steep learning curve any intro, tutorial, or beginning
in that the arena-nature of each levels served to further alienate
level means it’s hardest right when players that found the game too
each stage begins, when all difficult at first. We perhaps ought
enemies are still alive. Start the to have at least picked out a few
round carefully enough to survive of the easiest levels, and made the
and aggressively enough to cut first level upon game start
down some of the horde, and with randomized from between those
the remaining lives the odds of instead of all maps.
survival within that level improve
We also received frustrated
considerably. Fewer enemies left
feedback about the game’s default
in a stage also makes it easier to
controls, which we set with co-op
retrieve gun/item boxes, which
in mind. Even though the controls
can help improve survival odds for
can be reconfigured from the main
the start of the next level.
menu, relatively few people seem
430
to be taking advantage of that. We On the plus side, more so than the
perhaps should have gone with other games I’ve mentioned here,
our original plan of using different people that do like this game
default key mappings for single seem to be returning to play it
player vs co-op play, which we semi-regularly. That makes sense
strayed away from late in given the arcade model we were
development from fear that doing trying to emulate. By comparison
so would throw people off when though, it doesn’t really make
trying co-op. Supporting that much sense to play VbP:SE more
decision would also require a than once, and MechStrike‘s
slightly different menu system, novelty and mechanics favor
which we didn’t have time left to head-to-head play but don’t offer
do late in the schedule. much single player replay.
Unfortunately some players find
Our inclusion of co-op only
the single player controls
support weapons worked out well
needlessly cramped, then simply
for two-player, but may have
quitting forever before either trying
strained our single player weapons
co-op or realizing that the controls
offering a bit by comparison. We
can be easily reconfigured.
partly mitigated this by the three
In other words: fully reconfigurable types of special weapons that can
controls cannot make up for appear for getting a 5X or higher
default controls that people don’t multiplier. However because it
like. Especially with a free game, takes a bit of practice and luck to
people have no investment in earn those, they don’t do much to
making the experience work for help first impressions. The two-
them and can easily switch to player support weapons can be
something else, so if they don’t really powerful for assists if used
immediately like the default effectively with the other player’s
mapping it’s over – player lost. help, though here again, tuning the

431
game to keep those co-op
weapons from being overpowered
rendered single-player even more
unforgiving.
Co-op also lets players revive one
another indefinitely. As long as at
least one player remains alive and
can find a chance to either finish
the current level or kneel briefly
by the fallen sister, it’s possible to where I could more easily observe
just keep going. Two experienced and ask questions. It led to some
players working together can go important spot fixes to several
on a roll for quite awhile, which in stage layouts and assets, tweaks
light of the game’s harsh difficulty for more responsive controls
can be especially rewarding. (running then turning used to slip
much more, as if on ice), and
The aftermath stat and throwaway
focused us on which wish list
“award” screens (GoldenEye 007
items were most important to
style) worked well for giving
implement with the time we had
players a moment to reflect on
left (including saving high scores
each round. Without them I think a
locally and the option to
hard jump from game over right
customize controls).
back to level select menu would
have been too jarring. One of our members oversaw
narrative design in addition to
Outside testers really helped out a
helping out as another technical
lot near the end of the project. I
game designer and artist. That can
put out a call via Facebook and
be a tricky role to play on a project
Twitter, and also had a few
that aims for an mid-80s action
classmates try it out in person
arcade aesthetic, but he
432
understood from the outset that Of course, the best way to browse
the goal was low-fi retro, and he the game’s music, see who’s
was flexible to the specific needs responsible for each track, and to
of the project. Since the genre is find out more about the game is to
pretty light on written text outside play Zylatov Sisters (it’s free - just
of the intro (which players of this search for it!).
sort of game tend to skip anyhow),
he instead improvised other ways
to help establish the game’s
atmosphere: recommending the
game’s main font, drawing the title
screen background to set the
mood, and authoring his levels
with a deliberate progression.
Our team members making
chiptunes for this project really
shined, pulling off a Castlevania,
MegaMan-ish vibe pretty well in a
number of tracks. I’ve been
enjoying the soundtrack
separately from the game. Tying
specific songs to each stage
helped give each level a
consistent personality, beyond
what feel we could achieve
through changes in layout, tile art,
and enemy, item, or spawn
placement.

433
SE C TI ON 3

Quit Smoking: Effect of


Interaction on Interpretation
As a way to explore how
gameplay can affect our
‘reading’ of a videogame’s
ideas, for this entry I built,
shared, then reflected upon
a playable adaptation of an
image that began as a non-
interactive work of art.
Game Analysis

Not long ago, the image to the left,


by the artist ReClark Gable, made
its way around the internet. To be
clear: this is not a screenshot.
ReClark authored it as a still
image.
This image communicates without
interaction nor gameplay. Instead,
visual parallels imply a mapping to
components in the classic game
Breakout, with lungs in the place
of bricks, and a cigarette taking
the place of a paddle. The idea of
the picture is clear enough:
smoking destroys the lungs, and
434
the reader/player is instructed to instead to better understand the
“Quit Smoking.” Through role of interaction in the
association with a classic communication and interpretation
videogame, it might even be read of meaning. We like to assume
as suggesting that smoking is fun, when we researching games with
or (drumroll please…) addictive. meaning that it’s significant that
the artifacts studied are actual
This isn’t the first appearance of
games, and not just static images.
the concept, but something about
this latest attempt resonated with IMPLIED GAMEPLAY CHANGES
There are a few changes to
people in a way that previous
gameplay, which, though not
attempts didn’t, with the image
derived directly from the image,
receiving over 350,000 pageviews
seemed more consistent with the
within a few weeks.
Piercey’s take, for comparison,
received roughly 1/100 as many
views per year as ReClark Gable’s
received each week. Gable’s looks
more like a playable game. The
bricks fit tightly together. The ball’s
trail suggests its movement. There
seem to be enough bricks there to
play for awhile.
What if it did exist as a game? To
answer this, I made a playable
version.
To be clear: the goal of making
this playable version was not to
entertain, nor to persuade, but
435
image’s message than the according to this implementation,
standard Breakout conventions. means not starting.
Without a lives display, an Numerous other mechanics
interpretation of one life or play from Breakout were stripped
(reset bricks each ball) and infinite because they seemed tangential
lives or play (never reset bricks) to image or its message. Among
would be equally consistent with them: paddle shrinking upon
the image. The latter design was hitting the back wall, bricks worth
selected, to represent permanent variable points based on depth
damage to the lungs. The former (scoring, in general), ball speed
would seem to suggest that increasing due to depth reached
quitting smoking results in or number of consecutive hits, and
immediately undoing any damage
done, as opposed to only ceasing
the cause of further damage.
Traditionally, destroying all bricks a
game like this one results in
victory, advancement, or even just
another set of bricks to be broken
for points. However, an anti-
smoking game (an unambiguous
reading thanks to the “Quit
Smoking” text in the corner)
should not treat smoking until the
lungs vanish as “winning at
smoking.” Instead, the player can
win by dodging the ball when the
game starts – winning at smoking,

436
discrete (rather than continuous) That takes nearly 40 minutes to
paddle angle segments. do.
To find out what people read into Not particularly evident in the
the image-as-a-game, rather than original ReClark Gable image is
the game-as-an-image, I posted
the game to Kongregate and
Newgrounds.
PLAYER ASSUMPTIONS
Many responses did not display
an understanding of the nature of
the work done here, suggesting
that particle effects, power-ups,
and so on would help make it a
better game. This is of course
partly a function of audience (self-
identifying videogame players),
and largely a matter of context
(anyone at a Flash entertainment
site is in the mood for
entertainment, and likely to
interpret their experiences through
that lens). that drawing lungs at this fidelity
requires a lot of bricks: 994.
This is somewhat unfortunate, Compare that to the 104 bricks in
because it means that many Atari 2600 Super Breakout (8 rows
players, rather than interacting of 13). Many of the comments
with the game in search of noted the game’s length, either as
meaningful interpretation, set a criticism of the game (“too
about to achieve the traditional long”/”boring”) or within the
goal of clearing all blocks, like so:
437
context of the game’s message winning at it. The longer someone
(“Man it takes FOREVER to kill plays this particular game, the
yourself by smoking”). Curiously, more certain it is that they are not
“FOREVER” here seems to be winning and have not caught on to
based on comparison to other the point. This was especially an
online gameplay experiences, issue in this situation since the
rather than real-time; if cigarettes feedback on player direction is
made our lungs completely delayed, subtle, and contrary to
disintegrate after 40 minutes, that clear convention.
would be quite fast indeed.
The original Breakout has an on-
Players that went for a cleared screen score display
board also noted that, eventually, demonstrating that each brick
images took shape that look removed represented progress,
nothing like lungs. In the previous with bricks closer to the back wall
screenshot, I’m tearing away at awarding more points. In this way,
what appears to be two island the player gets coaxed toward
nations. hitting the back wall, which
initiates a breakout in the classic
That point is correct: the longer
game. (Achieving breakout by
the game is played, the more the
hitting the back
concept seems to break down, or
in Breakout causes the ball to only
fall into the background. Does this
bounce upward, instead of only
mean that the opening set up –
downward, until it next touches
effectively, the still image – is
the paddle. This mechanic was
doing the work, and playing only
dropped for QuitSmoking as
interferes with the message?
tangential to its message.)
On the other hand, understanding
Because score tends to
the intended meaning of a game
demonstrate incremental
with a message often involves
advancement toward some
438
greater reward or goal, including a between the image being one of
rising score would not have made many passing states, vs the
sense here anyway. However, an totality of what is ever presented.
increasingly negative score, going
down with each lung brick broken,
could have spelled out more
clearly and immediately to players
that the goal of the game isn’t to
destroy all bricks. Without any
score numbers to provide granular
feedback, players acted on the
assumption that what they
previously learned through score
reinforcement in similar games fits
here too: brick removal means
forward progress.
A SERIES OF GENERATED IMAGES
The longer the player keeps the
ball in play, the more bricks get
knocked away, producing a series Also worth consideration is that
of images, one of which (in theory) the player has a purely subtractive
could be the exact same effect on bricks. They can be
arrangement in ReClark Gable’s taken away, but never added nor
original depiction. However even if moved. A side effect of this is that
that exact same brick only subsets of the starting bricks
configuration appears, is it are possible images –
experienced the same when we’re combinations of the 994 bricks
the cause of it? If nothing else, being either present or destroyed.
there is surely a difference Naturally, physical collision

439
mechanics make many of those functionally makes sense.
theoretically potential Representationally and
configurations less likely than behaviorally, however, the ball
others (or impossible, such as a looks and acts in no way like
hole in the center of a thick ring). smoke.
The lack of precise control over
Does it matter whether it’s smoke,
the ball tends to yield uneven
or pure abstraction that steadily
edges.
delivers damage to the lungs from
Were a more geometric or clean the cigarette?
figure hidden deliberately in the ATTACKING
bricks, as say a key or a smiley The sensation of playing ball-and-
face, even a few imperfections or paddle games is not so much like
incorrect hits could disturb the attacking, as it is like juggling. To
image. However since the hidden this point, the original static image
image in this game is the crispy, suggests a more direct attack than
tar-destroyed lungs picture that playing the game does. In the
we’ve seen in so many anti- constructed snapshot it’s on a
smoking campaigns, any image of one-way course for the lungs,
lungs with the bottom and edges though in play it’s a constant
unevenly carved away produces a back-and-forth.
similar enough image to recall the
Attacking isn’t necessarily only
intended memory.
shooting, Pinball games – digital
MISSING METAPHOR as well as analog – have long
As a quick aside: is the ball in this
contained enemies to be “shot” or
game “poisonous smoke”?
“hit” with the ball. Because pinball
It is kept between the lungs and paddles rapidly accelerate a ball, it
the cigarette, and it is what does seems more like an attacking
damage to the lungs, so in terms mechanism than simply keeping
of its role, the ball being smoke the ball in play. Here, in Super
440
Pinball: Behind the Mask on
SNES, the Wizard board contains
an enemy that can be “shot” (top-
right):

That digital pinball table is


modeled closely after the layout of
the real 1991 Terminator 2 pinball
table, in which instead of a demon
there’s a T-1000 skull with glowing
red eyes to be attacked with the
ball.
Perhaps an anti-smoking game
modeled after pinball, with
cigarettes for paddles and lungs
for bumpers, might hint at a more
aggressive and direct attack on
the organs than
this Breakout metaphor.

441
CLOSING THOUGHTS from the ice cream man. Though
When Alleyway came out on
there is a dramatic differences
Game Boy, and there were levels
between recognizing some part as
arranged to mimic the sprites of
represented, and thinking of the
classic characters, did we think of
representation as the part
the activity as killing Mario or
represented.
Koopas? At some basic level, we
of course realized that the part we Did any fan or player of Super
were breaking corresponds to his Mario Land ever refuse to advance
leg, or his head, as when eating in Alleyway, not wanting to hurt
Animal Crackers, or biting into Mario, or out of concern that
Ninja Turtles heads purchased doing so might cost a life?

442
Image Credits

Cover and Chapter Icons

Cover Heart designed by Raji Purcell from The Noun Project

Ch.1 Power by Jardson A. from The Noun Project

Ch. 2 Teacher by Juan Pablo Bravo from The Noun Project

Ch. 3 Architect by Augusto Zamperlini from The Noun Project

Ch. 4 Tips by Lemon Liu from The Noun Project

Ch. 5 Gears by Edward Boatman from The Noun Project

Ch. 6 Mouse tools icon image in public domain

Ch. 7 Talking by Juan Pablo Bravo from The Noun Project

Ch. 8 Business Connection by Francisca Arévalo from The Noun


Project

Ch. 9 Magnifying Glass by Yazmin Alanis from The Noun Project

Page Background Textures

Page texture from subtlepatterns.com


CC BY-SA 3.0 - Subtle Patterns © Atle Mo.
Chapter background pattern made by Olivier Pineda.

443
Getting Started

Making Your Own Videogames at Home is Totally Awesome -


Working At Home by Rutmer Zijlstra from The Noun Project

How Long Does it Take to Learn Game Programming? - Calendar


by Phil Goodwin from The Noun Project

Hobby Game Development: 20 Questions - Quiz by Rémy Médard


from The Noun Project

Beginners Shouldn’t Start with a Design Document - Document by


Piotrek Chuchla from The Noun Project

Clone Videogames to Learn Real-Time Videogame Design - Space


Invader by SuperAtic LABS from The Noun Project

General Concepts for Beginning Developers - Sketchbook by


Edward Boatman from The Noun Project

Learn Videogame Development Like Woodworking - Tools by


Dmitry Baranovskiy from The Noun Project

Fan Habits and Focus are Not Developer Habits and Focus -
Crowd-Surfing by Hum from The Noun Project

Questions About Education

Advice to a New Student in Videogame Design - Education by


Berkay Sargın from The Noun Project

Questions from an Elementary School Class - Students by Piotrek


Chuchla from The Noun Project

Class Questions About Game Development Career - Image in


public domain

Math for Videogame Making (Or: Will I Use Calculus?) - 3D by


Michael Senkow from The Noun Project
444
Question About Comp Sci and Game Development - Network by
Bruno Castro from The Noun Project

The Ways of Self Education - Education by Pete Fecteau from The


Noun Project

Programming

Game Programming Fundamentals - Utility Knife by Hayden


Kerrisk from The Noun Project

How Programmers Program - Code by Nikhil Dev from The Noun


Project

Position and Speed Variables - Directions by Pedro Ramalho from


The Noun Project

Float and Int Variables: Casting and Other Issues - Image in public
domain

Hack then Refactor - Arrows by Juan Pablo Bravo from The Noun
Project

Basic Real-Time Videogame Artificial Intelligence - Robot by


Edward Boatman from The Noun Project

Quick and Dirty Backups - Image in public domain

Steps in Programming a Simple Real-Time Strategy Game - Image


in public domain

Get Motivated

Stop Trying to Learn Everything Before Getting Started - Mind


Blowing by Luis Prado from The Noun Project

“Overcomplicating Everything” - Confusion by Kelcey Benne from


The Noun Project

445
Think by Building, Build to Answer Questions - User by Wilson
Joseph from The Noun Project

Your Attitude Matters Even When Working Alone - User by


Mundo from The Noun Project

Don’t Wait for an Event, Job, Contest or Assignment - Waiting


Room by Luis Prado from The Noun Project

The Brain is Not an Emulator - Thinking by Dirk Rowe from The


Noun Project

Stop Arguing About What Makes a Better Game - Argument by


Michael Thompson from The Noun Project

Start Before You Have an Idea - Image in public domain

A Little Planning Can Go a Long Way - Gantt Chart by Jeremy


Boatman from The Noun Project

Game Design

Modest First Projects and Incremental Learning - Process by Joel


McKinney from The Noun Project

Bottom-Up vs Top-Down Design - Create Database by Ilsur


Aptukov from The Noun Project

Photographer’s Algorithm - Camera by Okan Benn from The Noun


Project

Doing More With Less: Short Videogame Design - Image in public


domain

Colorful Oceans and Chunk Sauces - Noodles by Anna Wojtowicz


from The Noun Project

Genres and Conventions: Known Patterns of What Works - Image


in public domain
446
Level Creation

Anti-Design / Backwards Game Design in Goldeneye - Gun by


Simon Child from The Noun Project

Level Design Concepts - Architect by Joel Burke from The Noun


Project

Level Design Process - Mindmap by Leslie Tom from The Noun


Project

Level Design Q & A - Image in public domain

Non-Essential Level Art is Essential - Graphic Design by Anna


Weiss from The Noun Project

Visual Language in Super Mario Bros Level Endings - Flag by


Ashley van Dyck from The Noun Project

Team Projects

Videogame Project Management for Hobbyists and Students -


Meeting by Ainsley Wagoner from The Noun Project

Communication is a Game Development Skill, Part 1 - Image in


public domain

Communication is a Game Development Skill, Part 2 - Image in


public domain

Establishing a Videogame Development Club - Image in public


domain

Industry

A Frank Look at Making Videogames Professionally - Image in


public domain

447
Indie Game Development as Career - Art Collector by Piotrek
Chuchla from The Noun Project

Influence of Business Models on Game Design - Pay Per Click by


Siwat Vatatiyaporn from The Noun Project

What's Japan Doing Differently? - Japan by James Christopher


from The Noun Project

Intellectual Property and Hobby Game Development - Copyright


by Thomas Hirter from The Noun Project

Should I Release a Game as Soon as It's Done? - Checklist by


Aaron Dodson from The Noun Project

How to Get the Most Out of Your First GDC - Conference by


Wilson Joseph from The Noun Project

Game Analysis

Why Minecraft Worked in 2011 - Cubes by José Manuel de Laá


from The Noun Project

Reflections on 3 Specific Hobby Game Projects - Thinking by


Michael V. Suriano from The Noun Project

Quit Smoking: Effect of Interaction on Interpretation - No Smoking


by Rahul Anand from The Noun Project

448

You might also like