Add a Collision class which contains all the relevant information about a Collision, so that Pieces don’t have to contain pointers to other Pieces when they collide; instead I can have a single list of Collisions and process them separately from the Pieces.
Rewrite the collision-detecting and collision-processing code to make use of this.
Rewrite the piece-interaction code.
Add Walls and collisions between Pieces and Walls.
Add Attractors and Repellors, which pull/push objects away by “gravity” when certain conditions are met.
Come up with a way to implement Attractors and Repellors, as I now realize that my initial idea doesn’t really make sense.
Secondary goals
Add piece-specific Obstacles.
Turn-based play.
Players take turns.
Only one piece can be shot off at a time (wait until all pieces are inactive).
Come up with a format for describing levels.
Add a level-loader.
Menus.
Previous Progress
Goals for week of 4/7:
Primary goals
Clean up my code.
Take code out of .h’s and move into .cpp’s. Just one issue remains; for some reason the linker fails if I move the integrate function code into Physics.cpp.
Modify makefile to reflect this.
Make better use of references and pointers.
Use data structures more intelligently.
Add an OS check so code will compile and run on any platform. (Well, Linux and Windows, at least. Mac testing will come later.)
Fix collision response. Now using impulses on collision, and it’s MUCH better. But I’m just doing an Euler integration on the impulses; I should fix this at some point but it’s not a high priority right now.
Add a secondary collision detection routine where triangle pieces are involved. Harder than I thought to use a pixel-based collision detection in SDL; does SDL_image even give you direct pixel access in any way? I can’t find out how to do that. [edit: Thanks, Joseph!]
Fill out and send in my forms to Google!!!
Send in a picture of myself for the winlibre SOC gallery.
Secondary goals
Add a sound routine to play sound effects on collisions, etc.
Start moving the demo more in the direction of the game.
Try to speed up game loop computations (primarily collision detection and integration)