No coding! Yet.

One of the first things I like to do when designing any type of game is to just start with a text document and get a feel for what it is I’m wanting to make. It usually isn’t pretty. It’s almost never really organized. But it does the trick to have something to go back to and reference from time to time. Believe me, if you’re a lot like me and you don’t do something like write them down, all your great ideas will just be forgotten memories in short order.

So, here’s an example of what that looks like for my new top-down zombie shooter:

top down shooter
think “guantlet” zombie killing
smaller number of zombies

4 maps

Each loop the zombies get faster and spawn at more points and the timer lasts longer in the wave
loop n
n = zombies per wave
n/5 = zombies that spawn per map from a randomly selected spawn point
n = % chance for power-up on map
yep, if you make it 100 levels, these appear every time
n = 10 second waves
at 100 levels this is almost a 17 minute wave with 100 zombies

zombie spawn points are placed
prizes are placed

wasd / arrow movement
space shoot

begin the game at
100% health
health = 100
100% ammo
ammo = 25

+10 ammo
warehouse level
buildings level

+10 health
warehouse level
buildings level

+1 score
all levels scattered


more max ammo
+5 max ammo
located in buildings map on a blind alley

more max health
+10 max health
located in buildings map on a blind alley

random based on loop
x = choose(1,2,3,4,5,6)
switch choose(x)

unlimited ammo (short time)
shooting doesn’t lower the ammo bar

unlimited health (short time)
getting hurt doesn’t lower health

better gun damage (short time)
x2 damage

infinite gun damage (short time)
every shot kills a zombie

faster move speed (short time)
x2 move speed

radar (short time)
shows an outline of all zombies on the map

player types
normal damage
single shot (-1 ammo per)
normal max health
normal move speed

double shooter:
double damage
double shot (-2 ammo per)
lower max health
faster move speed

machine gun shooter:
3x damage
3 shot burst (-3 ammo per)
normal health
slower move speed

5x damage
5x ammo per
normal health
slow move

all zombies randomly wander unless they’ve “seen” the player

green shirt and yellow hair
normal move (75% of player speed)
pursuit by sight
normal damage
-1 health per collision
1 shot kill
+10 points per kill

blue mowhawk
normal move
pursuit by sound (proximity)
normal damage
-1 health per collision
2 shot kill
+25 points per kill

move speed variable
pursuit by sight = 100% move speed
pursuit by sound = 50% move speed
greater damage
-2 health per collision
4 shot kill
+50 points per kill

bloater (boss)
move speed slow (50% of player speed)
pursuit permanent
most damage
-5 health per collision
6 shot kill
+100 points per kill
sometimes EXPLODES on kill
damaging both players and zombies

zombie health by shading color
no shading = no damage
yellow = damaged
orange = 50% damage
red = 25% damage

consider damaged zombies leaving pools of blood that degrades
red – all normal zombies
green – bloater

Maps are complete run-throughs from a start to a finish
with scoring based on number of prizes gathered
with blind alleys and loops
fog of war centered around player
beginning of map show the map and locations of prizes and zombies

some maps are “survive the horde” style timed with zombies spawning in and rushing the player

some maps should have zombie spawners

player death
game over
high scores

And from all that I begin to build a game. During the creation process I’ll begin to group like themes and information together into more of a design document of sorts, but in all honesty I’ve never built anything myself that was complex enough to need more than a few text files and maybe a spreadsheet to manage.

Sometimes I change things along the way, sometimes limitations require me to alter a plan. But in the beginning I try to just jot it all down so I have a reference to look back and remind myself what my original vision was.

Posted on
Last modified on:
This entry was posted in Computer and Online Games, Game Design.
Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *