If I wanted to make a Pac-Man Game?

IAE picture IAE · Jun 6, 2010 · Viewed 15.5k times · Source

I am immediately placing this as a community wiki thing. I don't want to ask for help in programming yet or have even a specific question about programming, but rather the process and the resources needed to make such a game.

To put it simply: My college friend and I decided to give ourselves a really big challenge to further our skills in programming. In six months time we want to show ourselves a Pac-Man game. Pac-Man will be AI-controlled like the Ghosts and whichever Pac-Man lives the longest after a set of tries wins.

This isn't like anything we've done so far. The goal here, for me, isn't to create a perfect game, but to try and complete it, learn a whole bunch in the process. Even if I don't finish in the time, which is a good possibility, I would want to have at least tried this.

So my question is this: How should I start preparing myself? I already have started vector math, matrices, all that fun stuff. My desired platform would be DirectX 9.0c; is that advisable? Keep in mind that this is not a preference just for this project, but I wish to have some kind of future in graphics development, so I want to pick a platform that is future-safe.

As for the game development in general, what should I take into consideration? I have never done a real game before, so any and all advise to development of mid-scale projects( if this would be a mid-scale project ) is greatly appreciated.

My main concerns are the pit-falls and demotivators.

Sorry if the question is so vague. If it doesn't belong here, then I will remove it. Otherwise, any and all advise regarding making larger projects is greatly appreciated.

Answer

DamienG picture DamienG · Jun 6, 2010

Given you've not tried this sort of thing before here's a few things I'd recommend.

Start with something other than DirectX (and presumably C++)

DirectX and C++ expose you to a lot of low-level stuff you can learn later. Keep things simple and perhaps try XNA and C# which is close enough you can port it later but will let you skip a lot of things like memory management and pointers for now.

Start with 2D instead of 3D

The original Pacman is 2D so you won't be needed vector math for now.

So where does that leave you?

Well, a few things to think about are the game loop, keeping things in sync, updating the screen and responding to user input.

These are great principles and will let you get something up and running a lot sooner. Do not underestimate how important it is to keep seeing progress - this is hard if you set the technical bar too high initially.

I'd go down this route (ordered to keep things fun and interesting)

  1. Get a screen displaying - this is highly visual
  2. Get a Pacman responding to user input
  3. Get Pacman constrained to within the walls
  4. Get a ghost responding to secondary user input - you can chase each other
  5. Figure out some collision detection
  6. Get the dots and power pills rendering so you can score and eat ghost
  7. Render some more ghosts and figure out AI
  8. Work out the code for finding when the level is complete
  9. Make the map change and state reset when on a new level

Once you've got this working and running you can then decide if you want to play with better AI, 3D math or switch over to C++.