Tuesday, July 12, 2005

RockCrusher Plan

The Goal
Create a clone of the classic arcade game Asteroids®.

The player controls their ship, which dropped out of hyperspace in the middle of an asteroid field. The object of the game is to destroy as many asteroids as possible, while avoiding collisions.

Complete the game in 80 hours or less. That's 80 hours of work, not 80 consecutive hours. I'd like to have the installer complete by 90 hours, too. My goal is to use WiX for the installer, though, so it should be done at the same time as the game.

The Tools
  • C#, using Visual Studio 2003
  • Freely available art
  • Freely available sound
By using freely available art and sound, I should prevent myself from getting bogged down working on the stuff I am least proficient at, and give myself more of a chance of completing the game.

Nominal Project Plan
  • 1 hour: Get Managed DirectX to display a black screen
  • 2-3 hours: Design the class framework for the game
  • 2 hours: Develop classes for the player ship and the asteroids
  • 1 hour: Display the ship on the screen
  • 1 hour: Display some asteroids
  • 3-4 hours: Design the physics simulation system
  • 1 hour: Apply the physics engine to the ship
  • 1 hour: Apply physics to asteroids
  • 2 hours: Handle player input for the ship(DirectInput)
  • 3 hours: Make the ship wrap when hitting the edge of the screen
  • 1 hour: Make asteroids wrap when on the edge of the screen
  • 2 hours: Add a bullet class
  • 1 hour: Get ship firing bullets
  • 2 hours: Make bullets his asteroids
  • 1 hour: Make asteroids explode when their damage threshold is reached
That's already 28 hours of work.

At this point, I should have a playable game, v0.5

For the next version, 1.0:
  • 2 hours: Add scoring
  • 2-3 hours: Add sound effects
  • 2-4 hours: Add levels
  • 1-2 hours: Make the asteroids break into smaller asteroids when you blow them up(this should be a random choice)
  • 4-5 hours: Add alien spaceships that can shoot back once you reach a certain level
  • 2-3 hours: Give the aliens some AI
  • 1-2 hours: Track a high score board
  • ? hours: Improve artwork
That's another 19 hours, for a total of 37 estimated hours.

For 2.0:
  • 13-15 hours: Add a 3d view, where you can go 'inside' your ship, and see the controls and such as you fight, with a radar screen
    • 2-3 hours: Find/modify 3d models of asteroids and enemy ships
    • 3-5 hours: Convert 2d asteroid & enemy sprites to 3d meshes
    • 2-3 hours: Make 3d overlay for controls/viewscreen/radar screen
    • 2 hours: Create radar
  • 5 hours: Add power-ups in some asteroids
    • 1 hour: Modify asteroid class
    • 2 hours: Create powerup class
    • 2 hours: Modify player class to accept powerups
  • 3 hours: Add bosses to each level
    • 1 hour: Create boss class
    • 2 hours: Modify Level to only progress after destroying boss
  • ? hours: Improve artwork
  • 2 hours: Add a 'Comet' class in to the game
    • The comet will be faster and smaller than the fastest, smallest asteroid
    • Successfully destroying a comet will give you some type of bonus
Going from 1.0 to 2.0 will take an estimated 24 hours.

The total from 0 to 2.0 will be about 61 hours. Seems like my 80 hour estimate is reachable, especially if I break it up into 1 hour chunks.

Hopefully breaking the project up into 1-3 hour chunks will keep me married, too!
Listening to: You Won - Keith Urban - Golden Road (05:21)


The Wife said...

There's no way I could leave you now! Especially when I'm hoping that one day you will get rich doing this geeky stuff :)

Cullen Waters said...

I'd already be rich if *someone* didn't spend all the money.

Mom said...

Nice to see such wild enthusiasm again....have absolutely no doubt you will make your goal and then some.

Anonymous said...

Good luck, u go.