Plan for Jay Barnson
by Jay Barnson · 04/05/2004 (11:59 am) · 3 comments
Last night I was watching with glee as I was testing the TONS of weapon systems I implemented over the course of the week (in-between putting together shelves and unpacking boxes), and I caught myself thinking, "Gee, what do I have left to do??" For a moment, I drew a blissful blank. It was late, I was tired, so I didn't consult The List. Oh, I had some vague thoughts of getting some multiplayer bits done (our computers are still not networked in the new house), or some AI work that needed to be done. But I let myself feel satisfied in the ignorance of forgetfulness for a few minutes, just playing the game. Tonight I must face The List again.
Ever notice how the closer you get to a project's completion, the longer your 'to-do' list begins to look? I didn't really start making The List the first day of development, but if I had, it would have looked something like this:
* Research Design
* Design Game
* Write Game
-- Get Environment up and running
-- Playable character
-- Prototype Level
-- Full Gameplay (single player)
-- Full Gameplay (multiplayer)
* Documentaion
* Distribute Game
Well, okay, not QUITE that simple, but you get the idea. Several weeks into it, The List began to look like this:
* GUI buttons operational (mouse-clickable!)
* Get Multitexturing Working
* HUD: Off-screen target indicator, power levels, gravity indicator, Velocity Indicator, Radar
* Dynamic Asteroids
* Improve thruster effect
* Music Engine
* Memory Management -- FIND LEAK!
* Lens Flare
* Polygon-Level Collision Detection
* Selectable ships
* Implement Missiles
* Chat Mode in Multiplayer
* Pause Control
* Fix Camera wiggle in Multiplayer mode
* Implement Barrier FX graphics
* AI - move to point, fire, basic tactics
(etc... about 3x this size)
Now, here I am... about six weeks or so (I *HOPE*) from being 'done' (as in 'ready for testing,' not 'ready for release') and The List has looks like the following:
* AI - Select / Seek appropriate power-ups
* AI - Use special attack modes (routine for EACH special ability)
* Stealth ability - need to prevent radar appearance as well as breaking existing missile locks
* Need visual for stealth mode
* Need sound effects for leech, ion disruptor, EMP wave, and Warpweb effects
* Collision optimization (STILL too #$^& slow!)
* Alt-Tab Support
* Ship selection must include name, rating, and descriptive text.
* GUI scripts for improved button placement
* Difficulty level selection
* Fix multiplayer scorekeeping!
* Special Ability X not working in multiplayer --- FIX!
* Host crashes when player does Y - FIX!!!
* Hardened Defense needs visual (turn shield red)
* Need message when player disconnect detected.
* Missile Inbound warning indicator needs to be placed higher to prevent view obstruction
* Need time / bonus point indicator in single-player
* Bug: Teammate AI still attack each other when one accidentally kills another
* Scoring (single-player) - no score for killing non-boss ships. FIX!!!
* Chat mode box appears in corner when you choose the "enter name" in the options menu
* "Danger" warning message should dissapear when your ship is destroyed.
* Exiting multiplayer ship should send message to the host so we don't gave to wait 30 seconds to detect a disconnect.
* Extend Missile duration 50%
* Need balance testing on individual ship dynamics!!!
* Tempest's shield ability duration needs to be reduced to 3 seconds
* Bug: Vampire attack is recharging every 2 seconds
* AI Bug: Tigershark is waiting too long to destroy incoming missiles with shockwave
* Transparency Bug - lasers occasionally still have black borders
* Multiplayer - host must be in charge of registering pick-up collisions
* Multiplayer - selectable battlefields (host)
* Joystick SUpport
* Screen resolution change
* Sound / music Volume control
* AI: Need to improve avoidance of large obstacles
* Optimization: Need to sort explosion particles by Z distance (optional?)
* Improve smoothing in multiplayer ship & missile prediction
* Multiplayer - Team Deathmatch mode selectable & team choice
* Boss #2 shield visuals
* Pick-up sound is always local
* Turn off special abilities on ship reset
* Selectable Score / Time limits in multiplayer
* Reduce explosive missile effect 25%
* Reduce micromissile effect 20%
* Use player's chosen MIDI instrument set
* New texture for destroyable vs. static asteroids
* Finish cutscene #1
* Pre-load music between levels
* Pre-load all missile & pick-up models during game load
* Update website with new design
* Launch website!
* Update test distribution package with new models & textures
* Key Remapping
(Et Cetera - extend this list by about 4x)
Fortunately, these are mostly small tasks. But keeping track of them is turning into a chore. I'm so worried about bits falling through cracks during late development. And while it was enjoyable being blissfully forgetful of all the work that remains to be done, it's not the way to get the job done.
Incidentally, I whipped up a script a couple of weeks ago to give me some statistics on my code. As of last night, I had
* 32,000 lines of actual code
* nearly 5,000 lines of comments
* almost 49,000 total lines in my code files (including whitespace and comments)
Almost all of the code was done by me. I guess running through this exercise helped me bolster my ego in the face of a mounting To-Do list. And lines of code is a pretty lousy metric. It's just nice to go back and look on how far you come when you are facing a big final stretch, I s'pose. And I was curious how much code I really had in there.
Ever notice how the closer you get to a project's completion, the longer your 'to-do' list begins to look? I didn't really start making The List the first day of development, but if I had, it would have looked something like this:
* Research Design
* Design Game
* Write Game
-- Get Environment up and running
-- Playable character
-- Prototype Level
-- Full Gameplay (single player)
-- Full Gameplay (multiplayer)
* Documentaion
* Distribute Game
Well, okay, not QUITE that simple, but you get the idea. Several weeks into it, The List began to look like this:
* GUI buttons operational (mouse-clickable!)
* Get Multitexturing Working
* HUD: Off-screen target indicator, power levels, gravity indicator, Velocity Indicator, Radar
* Dynamic Asteroids
* Improve thruster effect
* Music Engine
* Memory Management -- FIND LEAK!
* Lens Flare
* Polygon-Level Collision Detection
* Selectable ships
* Implement Missiles
* Chat Mode in Multiplayer
* Pause Control
* Fix Camera wiggle in Multiplayer mode
* Implement Barrier FX graphics
* AI - move to point, fire, basic tactics
(etc... about 3x this size)
Now, here I am... about six weeks or so (I *HOPE*) from being 'done' (as in 'ready for testing,' not 'ready for release') and The List has looks like the following:
* AI - Select / Seek appropriate power-ups
* AI - Use special attack modes (routine for EACH special ability)
* Stealth ability - need to prevent radar appearance as well as breaking existing missile locks
* Need visual for stealth mode
* Need sound effects for leech, ion disruptor, EMP wave, and Warpweb effects
* Collision optimization (STILL too #$^& slow!)
* Alt-Tab Support
* Ship selection must include name, rating, and descriptive text.
* GUI scripts for improved button placement
* Difficulty level selection
* Fix multiplayer scorekeeping!
* Special Ability X not working in multiplayer --- FIX!
* Host crashes when player does Y - FIX!!!
* Hardened Defense needs visual (turn shield red)
* Need message when player disconnect detected.
* Missile Inbound warning indicator needs to be placed higher to prevent view obstruction
* Need time / bonus point indicator in single-player
* Bug: Teammate AI still attack each other when one accidentally kills another
* Scoring (single-player) - no score for killing non-boss ships. FIX!!!
* Chat mode box appears in corner when you choose the "enter name" in the options menu
* "Danger" warning message should dissapear when your ship is destroyed.
* Exiting multiplayer ship should send message to the host so we don't gave to wait 30 seconds to detect a disconnect.
* Extend Missile duration 50%
* Need balance testing on individual ship dynamics!!!
* Tempest's shield ability duration needs to be reduced to 3 seconds
* Bug: Vampire attack is recharging every 2 seconds
* AI Bug: Tigershark is waiting too long to destroy incoming missiles with shockwave
* Transparency Bug - lasers occasionally still have black borders
* Multiplayer - host must be in charge of registering pick-up collisions
* Multiplayer - selectable battlefields (host)
* Joystick SUpport
* Screen resolution change
* Sound / music Volume control
* AI: Need to improve avoidance of large obstacles
* Optimization: Need to sort explosion particles by Z distance (optional?)
* Improve smoothing in multiplayer ship & missile prediction
* Multiplayer - Team Deathmatch mode selectable & team choice
* Boss #2 shield visuals
* Pick-up sound is always local
* Turn off special abilities on ship reset
* Selectable Score / Time limits in multiplayer
* Reduce explosive missile effect 25%
* Reduce micromissile effect 20%
* Use player's chosen MIDI instrument set
* New texture for destroyable vs. static asteroids
* Finish cutscene #1
* Pre-load music between levels
* Pre-load all missile & pick-up models during game load
* Update website with new design
* Launch website!
* Update test distribution package with new models & textures
* Key Remapping
(Et Cetera - extend this list by about 4x)
Fortunately, these are mostly small tasks. But keeping track of them is turning into a chore. I'm so worried about bits falling through cracks during late development. And while it was enjoyable being blissfully forgetful of all the work that remains to be done, it's not the way to get the job done.
Incidentally, I whipped up a script a couple of weeks ago to give me some statistics on my code. As of last night, I had
* 32,000 lines of actual code
* nearly 5,000 lines of comments
* almost 49,000 total lines in my code files (including whitespace and comments)
Almost all of the code was done by me. I guess running through this exercise helped me bolster my ego in the face of a mounting To-Do list. And lines of code is a pretty lousy metric. It's just nice to go back and look on how far you come when you are facing a big final stretch, I s'pose. And I was curious how much code I really had in there.
About the author
Jay has been a mainstream and indie game developer for a... uh, long time. His professional start came in 1994 developing titles for the then-unknown and upcoming Sony Playstation. He runs Rampant Games and blogs at Tales of the Rampant Coyote.
#2
I've actually been going pretty low-tech on the list side - keeping my list (usually) in a black graph-paper notebook. I keep it handy so I don't need to be in front of my computer to jot down a task. It can be something of a pain when I'm trying to organize tasks or copy the unfinished ones over to a clean page - I could sure use a 'cut and paste' function. I DID keep it on my PDA until it died.
There's something really satisfying about marking off a task on paper, though. Call me a luddite... :)
04/05/2004 (2:25 pm)
I have Eclipse, but I haven't used it much. I know it's much more than a Java development tool, but that's all I've used it for.I've actually been going pretty low-tech on the list side - keeping my list (usually) in a black graph-paper notebook. I keep it handy so I don't need to be in front of my computer to jot down a task. It can be something of a pain when I'm trying to organize tasks or copy the unfinished ones over to a clean page - I could sure use a 'cut and paste' function. I DID keep it on my PDA until it died.
There's something really satisfying about marking off a task on paper, though. Call me a luddite... :)
#3
My todo list is now so long I have a summary and detail todo lists...
Meh, keep fighting the good fight. I think it does actually ends eventually :)
04/05/2004 (3:45 pm)
Luddite... :)My todo list is now so long I have a summary and detail todo lists...
Meh, keep fighting the good fight. I think it does actually ends eventually :)
Torque 3D Owner Chris "DiGi" Timberlake