Stage 1: Technical investigation
I am going to implement a cross-section of the game, with all features, but basically implemented. This will let me know what kind of hoops I have to jump through and what is not possible.
Stage 2: Game design
I will fully flesh out each element of the game design into a full design doc.
Stage 3: Code design
Based on the game design, I will design classes, structures, and perhaps variables to represent this in an easy to use, extensible, and maintainable way.
Stage 4: Coding
I’m going to do the multiplayer part last. Normally this would be the wrong approach, but it works here because there is only one code author and it avoids a lot of overhead restarting and starting the server.
Stage 5: Assets + polish + design
This is the time to hire artists and sound designers. A lot of game design occurs at this point as well, since the initial rough values will need to be tweaked out with features added and dropped based on how well they work. If I can find someone affordable, I could hire an artist earlier during the programming stage.
Stage 6: Closed beta / bug finding
I might have to do the whole NDA deal. This will get all the major bugs out of the way so when open beta starts I’m not swamped beyond measure.
Stage 7: Larger beta
Here comes server load balancing, and a better opportunity to find exploits.
Stage 8: Open beta
More of the same, and bug fixing. Since I’m still early in development this is a great reminder not to make bugs to begin with!
Stage 9: Profit!