Search This Blog

Monday, January 24, 2011

How to start

When making a new game,  how do you start?

One common way is to come up with a basic idea using words.  Something like this:  An FPS  (that's a first person shooter for you newbies) where you're a robot exploring the caves of Venus.  OK,  that's a pretty uninspired idea,  but you didn't think I'd reveal one of my many truly revolutionary new ideas just to illustrate this point,  did you?

Another way is to interatively develop a prototype and see where it leads.  In our FPS example,  you could maybe just make a box and move it around some terrain and tunnels.  We're shooting other boxes and make it fun to play.  Then later on you add the theme, story, etc.,  and maybe turn the box into a robot.

We could also start by sketching some stuff on paper to see what develops.  We could draw something that looks like a robot in a cave,  shooting same space bats and other strange alien creatures.

For truly new stuff I prefer the prototype method.  There's no substitute for getting a feel for the controls early on.  For me the heart of most games is the feel of it.  If we can get the basic movement and actions nailed down right away the rest can be added fairly easily.  Changing the controls later is often difficult and has too many repercussions.

So, my first decision on this as yet unnamed project is to build a prototype first.

The next step is to select our tools.  Can't build a prototype without tools.  This one's easy.  I know Blender, Unity3D and Gimp,  and they're all free and amazingly good.  It's especially amazing how good they are for the price.  Did I say they're all free?  The only catch (as of early 2011) is that Unity3D is only free if your company had turnover of less than $100K last year.  Yes, I qualify for the free version.  Blender and Gimp are open source and completely free.  I don't know what audio tools to use yet,  but I'll use placeholder audio for the prototype,  so I won't need anything fancy just yet.

The last step for today's blog entry is getting started with same basic decisions about the game.  Let's tackle these one at a time:

Target Game Systems:

     Hmm.  That's a tough one.  This blog thing is putting a bit of a wrinkle into this decision. There's a plethora of systems to choose from. In Unity I have access to iPhone, Android, Web, PC and Mac, and the big three consoles.  For the prototype using Unity Web seems the best choice because that'll allow me to easily deploy the various versions for you blog readers.  After the prototype is working and good I'll decide on the target systems for the commercial versions.  Right now I'm leaning towards iPhone and Web for starters.

Game Genre:

     The first rule here is simple:  write what you play.  I've played a whole lot of video games in my life.  If I had to list the major genres, it would be:  Platformers,  FPS, RTS, classic arcade, music games, sports, racing, Zelda.  It's kind of weird that I'm putting Zelda into it's own genre,  but hey,  this is my list so I can do that.  Looking at that list the Platformer genre is the obvious choice for me.  I've never developed a platformer even though it's my favorite genre,  especially lately with the resurgence of Super Mario and Donkey Kong Country.  As a side note,  if you don't own a Wii,  buy one and then play Super Mario Galaxy 1 and 2, Super Mario Brothers Wii, and Donkey Kong Country Returns.  These are the giants on whose shoulders I'll be standing.  ("If I have seen a little further it is by standing on the shoulders of Giants" Sir Issac Newton.)

2d or 3D?:

     Goodbye 2D.  It's very strange.  My first game, Crystal Castles,  was an attempt to do a 3D game without 3D hardware.  Now it's almost 30 years later and I still haven't released a real-time 3D game.  The only 3D games I worked on haven't seen light of day.

     The older platformers were all 2D until Super Mario N64 showed us how to do them in 3D.  Lately there's been a trend towards doing the old 2D style platformer gameplay but using a 3D engine.  This is a good way to get great looking graphics, keep the controls simple, and avoiding nasty camera issues.

     So,  to answer the question in more detail, real-time 3D but using a 2D side scrolling look,  very similar to Donkey Kong Country Returns.

The Main Character:

   I'm a programmer.  My art is pretty good for a programmer,  but I'm no pro artist,  so I'm not going to do a cute furry animal or human.  I could do a robot or maybe a square,  but I'm looking for something more innovative.   I'm going to have to put in a placeholder character into the prototype and decide on the real character later.  Maybe I'll let the character evolve just like the rest of the game.  I'll start with some geometric shape like a sphere,  and squash it when it bounces.

The Controls:

  Left, right, jump.  That's the usual platformer minimal control scheme.  The problem is that on the iPhone we don't have any buttons,  and simulating three buttons is one or two too many.  Having just one button is too limiting,  so I'll see if I can do the whole game with two buttons:  Action and Jump.  The Action button could be anything from "speed up" to "open door" to "jump left".  The meaning of the action button can change from level to level.  I'm visualizing the player keeping his left hand on the left button and the right hand on the right button.  This works on all of the platforms,  which is a big plus.

The Camera:

   It basically follows the player,  and possibly zooms in and out depending on what the player needs to see to play a particular section of a level.  It can also zoom at the beginning and end of a level for effect.

Player Physics:

   The player moves from the start of the level towards the goal.  He jumps when the jump button is pressed.  He accelerates (up to a max speed)  when the Action Button is down,  and decelerates down to normal speed when the Action Button is up.

The Levels:

   The prototype will just have some plain ledges and kill areas.  If you touch a kill area you die.

Scoring, Lives, etc.

   This can wait for another day.

Now What?

   Time to get started and built the prototype.  Next time I'll have a screen shot from Version 0.001.

fxl

2 comments:

  1. For an audio tool, you could use Garage Band. Can work for sound effects or music... and it's free on your Mac :)

    ReplyDelete
  2. Why don't you develop a smart spell checker while you're at it?

    ReplyDelete