Built the CVS repository. Put initial material in globals, tankworld, player, and basicenemy. Keeping the FilesAndClasses node updated will be hellish difficult, but useful.
To do next: Motion on player; munitions and shooting from players and enemies.
-- BrianYoung - 04 Nov 2004
Added a bullet class, did a little fleshing out in others. Should be about ready to fill in timeStep - we need to solidify how we want to work homing, collision handling, multiple targeting, and dying.
-- BrianYoung - 05 Nov 2004
The tank moves and aims; the grid works properly, hooray! There's also now an Immobile class; there's not actually anything to, you know, add enemies to the world, but we're working on that.
-- BrianYoung - 11 Nov 2004 (20 min into anyway)
My work plan:
Week 1: Basic engine outline; know how everything will interact
Week 2 (aka now): Player motion, collision detection with enemies, start knowing how to add enemies to world
Week 3: All enemy classes implemented, bullet class begun
Week 4: Enemy behaviour set, bullet class interaction done, enemy death
Week 5: Fix bugs, cleanup
- Still 11 Nov 2004
After all that, the problem was that I hadn't actually initialized the turn rate. Man, do I feel stupid now - so I'm going to go work on something else. Jason, given that I don't know your Turing password, and shouldn't, I couldn't commit those changes.
Weekly progress report: We have presentation tomorrow, since it's a thursday, but I have to stay home and work on a research paper. Here's what I've done for the week, and will do for the next week:
All enemy classes is implemented.
Mobile enemy behaviour is implemented.
I will give shoot() functions to the player and to the enemies that need it
Similarly, I will make a way to add bullets to the world and remove bullets from the world
I will have enemies detect when they're hit and take damage
Hopefully, destroyed enemies will also be removed
- 17 Nov 2004
Got terrain mapping working by moving file reading directly into tankworld.cpp. I hope I didn't run over anyone else's code in the process.
- 18 Nov
Partway done with bullet coding. So far the player can shoot, and supposedly the bullets will check to see if they hit enemies and do damage accordingly. Unfortunately, the config file isn't doing anything that I can see, so I haven't actually tested whether it hits enemies or not. Bullets also properly expire and are removed, and since the enemy cleanup uses the same code, so should they. Haven't coded enemy shooting or enemy bullets yet.
- 23 Nov
Mobiles and Turrets now shoot. It looks like we're going to need to add more parameters to them, though: a fire delay, and a damage. Been thinking about how to make enemies extensible, and it'll probably take more config files (and something we can call a factory design pattern):
Each enemy type has its own initialization file
The factories store arrays of structs to all the lines read
Then the config file just references which parts of that array to use
Hell, I suck at writing this down. Does it make sense?
-24 Nov
Powerup types:
Health bonus
Rate-of-fire bonus
Damage bonus
Blast size bonus
Fire spread bonus
I'm thinking we should add one rare special powerup that give you one all-around burst you can save and use later, shot with a special button.
-2 Dec
We can finally actually lose the game. It throws up a warning box, then uses the new reset functions I added to player and world to start the game over.
11 Dec.