Wednesday, March 16, 2005

Managing a Computer Game Project Alone (because you have no friends)

Once again I'm dying of a cold. This is what you get for working at a school. Each snot-weasel full to the brim with disease ready to infect you. So I'm in no real mode to think in a logical manner and continue programming. So I thought I'd look into project management.

The Old Way





(The blurriness is me moving about when I'm taking a picture with a camera phone)

This is how my project is currently planned. Scavanged pieces of A4 are plastered to the wall. The crude scribbles decorating their faces tell me in which general direction I'm heading. I guess this is some how better than absolutely no plan at all.

Actually I develop my game in stages. I guess stages can be thought of as milestones but I only deal with one milestone at once. Currently I'm in the early part of stage II. Each stage is complete once a number of goals have been achieved - scrolling maps with loading, saving and npcs for example.

Also I have a half done design document in a word file. That while very good is very very incomplete. There are also about eleventy-billion .txt files scattered around my computer with notes and ideas. To make things extra confusing I have a custom made database program that has some stuff in it too. So in a word I'm disorganized.

Well that was the old strategy. I looked about to decide whether I could come up something a bit more flexible and shiny.

Better Project Management



As far as I'm concerned there are two facets to my project - the design (free form creative) and the actually programming of it (locked down logical). I want to be able to control the effort I expend on each.

Design Document - something like a wiki with lots of meta data that allows me to tie in all my flights of fancy with the actually basic ideas of my game design.

Programming and time management - sometime like a to-do list but with knobs on.

Running a webserver with bells and whistles



Most of the software to fufill my above two specifications is made to run on the internet and to be used through a browser. This is something I was willing to bend on. I'm programming in C# with DirectX so I'm on a windows box. To use wonderful internet apps I need things like a webserver, php, mySQL. All three just scream hassle. Luckily though - we have the French!

Yes French people have made a wonderful little program called EasyPHP that will install Apache, PHP and mySQL. With this base setup a number of web-programs can be loaded on top with which we can work our magic. It's very easy to use, infact all I did was click on the installer and it worked.

I only use this for local access. I'm sure if you wanted to publish to the big mean world of the internet you might want to brush up on security and all that unpleasent jazz.

Programming and Time Management



I recommend dotProject.



It takes a little work to get set up but it is some incredible and free management software.

Once you have it up and running you should break your entire project into basic chunks. From start to end. You can call these thing milestones. Then you can have each chunk be a parent to smaller tasks. And do this again and again and again until you have a big list of managable tasks.

(If your able to do this you are a better man than me, or woman - though I'm not a very good women to begin with, for one I don't have any breasts :( )

Each task can have a dependancy list. For example make the NPCs dance the macarana cannot be done until model loading code is written. So the NPCs dancing is dependant on some of IO routines.

I'm sure a lot of this comes in most useful for big teams. But I'm a lone developer my project is my own!

Each task you add can be given notes and an extimate for completion!

This is rather wonderful because it will give you the amount of man hours needed to complete the project. This way you can check how probable it is that you'll die or not before it's due. Also as you tick off you tasks a bar will advance and tell you how close you are.

There's also stuff for managing how much money your spending and interactions with various companies. As I'm working on a budget of £0 I use all this information for my own amusement. That's the basic of dotProject it does cool things with bug tracking too and is really up to a professional standard.

Design Document and Creativity



It's often the case that when I'm working on one part of my project I'll get an idea about something later on. Currently one of two things happen -

  • It's written in a text document, piece of paper, note book, some childs homework - and almost immediately lost.

  • I drop whatever I'm currently programming and go to work on my wonderful new idea.



Well rather than have this happen I'd like to add the idea to my design document. But a design document is a big linear thing that's not necessarily easy to change. A more networky webby thing is much better. This way you can link you idea to the various points in the project that it would effect.

So at first I thought Wiki! Like wikipedia I can go to whatever page and add a new link to my new idea. So I installed QwikiWiki. It was nice but didn't suit my needs. It had lots of unpleasent bold black errors I couldn't figure out how to add a page from it's web interface. It was also very basic I desired something with a little more structure.

Then I read this and thought - oh that looks good. And so it was. It allows me to easily stratify my design document and makes it far easier to grow. This is easier to get working than dotProject. But it requires more customization to get it from a blog with bells and whistles program - to a loose cool design document with bells and whistles program.

Free Image Hosting at www.ImageShack.us

It allows catergories and keywords and subcaterogries and all that nice stuff. So that's what I've been adding a few of my scattered enteries into of late.

1 comment:

Anonymous said...

i guess you can do alot of code in only an hour :D judging your plan