Checklist
This is a list of all the things that need to be done in our game. Each member of the
team is responsible for checking off what he has done (and putting his name on the
finished item), as well as add new things when they pop up. This will replace our previous
weekly status reports, as they were pretty much a bunch of hooey anyways.
As defined in our week 8 meeting, team members names in blue appearing next to categories are the primary developers responsible for that section of code and making sure it works up to specs.
Management Entire Team
Reduce paradigms by increasing team building vectors Entire Team
Increase proactivity Entire Team
Maximize throughput while striking out inefficiency Entire Team
Final Release/Demo Code Prep Entire Team
Usability test while training the people who'll be playing our game for the demo. Entire Team
Install & test with release version DLLs of DirectX 6.1 Entire Team
- Create an installer program for our code & the necessary DirectX6.1 DLLs... our backup is a self extracting zip file of our code & a pointer to Microsofts DirectX download page.
Webpage Kevin & Grant
Add the new class hierarchy to the webpage Grant 4/25/99
Create a
BUG REPORT webpage where we should look first to fix items before adding new features Kevin 5/10/99
Create an instructions page which tells users how to play our game & has all the keyboard input definitions. Grant 5/24/99
Collision Trevor
- Fix collision code Trevor 4/20/99
- Fix it again by calling code in correct places
Aaron 4/29/99
Modify Collide function to pass back: Trevor 5/2/99
A pointer to the object you're colliding with. Trevor 5/2/99
A D3DVECTOR containing the normal vector of the object you hit Trevor 5/2/99
Add response to collision code for bouncing off objects. Trevor 5/2/99
Fix collision bugs on corners and various angled objects. Trevor 5/5/99
Get the correct bounding boxes for all objects Grant 5/6/99 (They seem much better now)
Account for changed position of character in its frame, which we've moved in the
y-direction. Check for collisions in Y direction completely Trevor 5/7/99
Check for multiple collisions at a time so we can collide with many things at once correctly. Trevor 5/7/99
Implement bounding sphere and other computational optimizations. Trevor 5/8/99
Add multiple-map optimization Trevor 5/10/99
Fix all currently known collision bugs & retest for others. Trevor 5/11/99
Fix problem where projectiles fired while standing on another object seem to fall down and hit the object. Maybe have some projectiles with no gravity. Kevin 5/16/99
Fix problem where we always assume an object's bounding box starts at a height of 0. Trevor 5/17/99
Change our verticle jumping collision so it moves you down to the bottom of the object + the height of the bounding box (& not just to the bottom of the object) Trevor 5/17/99
Class hierarchy Entire Team
- Finish Icon class and integrate it into the hierarchy.
Grant
4/25/99
Make the constructor take in compiled .x files Grant 4/25/99
Setup the rotation in the player side Grant 4/25/99
Add to CClientObjectsNonMovable constructors so that they take an orientation angle
Grant 4/25/99
- Add Projectiles classes to both the server and client hierarchy
Aaron 4/26/99
- Make a Wall class so the walls are not simply rendered on the clients and collisions can be detected
Grant 4/30/99
- Make a rubiks block class for the 6 center blocks that the players are attempting to obtain.
Aaron 4/30/99
Make Connect-4 player Client & Server classes and integrate them into our project Aaron 5/7/99
Change RubiksCube constructor to take an array of 6 bools corresponding to its current state of picked up pieces. Grant 5/9/99
Add sound effects during the creation and destruction of icons, ie. have constructor take a pointer to the soundset and play appropriate wavs. Dave 5/10/99
Fix Connect-4 classes so that they now respond to collisions just like the RubiksCube classes Aaron 5/13/99
Add a Scale() function to our NonMovableObjects class so that we can resize DirectX 3D model files easily within our application Grant 5/14/99
Add a CAMERA CLASS to both the client & server.
The camera should be controllable in both its position & orientation and probably be able to attach to any players.
It should have a 3D listener and display the overlay.
But it shouldn't have a bounding box or render anything, and should be selectable from the start-up window. Aaron 5/15/99
Add a class for the connect4 projectiles that look like checkers Aaron 5/18/99
Add a server-only object for bounding boxes without a rendered object, so that we can add an arbitrary box anywhere. This will allow us to put multiple bounding boxes around around a single model. Grant 5/19/99
Server Application Aaron, Grant & Kevin
Integrate the animations into the game Kevin and Aaron
4/19/99
CServerPlayer - Follow the steps below to make it fully functional
Add calls to the collision code. Kevin
4/30
When colliding with other players or bullets, signal
them (see next bullet). Aaron 5/3/99
Implement a messaging system so that an object colliding with
another object can let the second object know it's been hit. Here's the
way it will work:
- When an object collides with another object, it receives a
pointer to the object it hit. Use that pointer to set its state to
something like BEEN_HIT_BY_PLAYER or BEEN_HIT_BY_BULLET.
- When the hit-ee calls its Update function, it checks to see if
that variable has been set, and reacts accordingly
Aaron 5/3/99
Change data structures to receive messages from button
presses. Aaron 4/29
- Create a projectile object which appears when the client does
action1 (press space bar) and deletes when it collides with another
player. (This covers some of the areas above but doesn't fully complete
them so I made it a new point for tracking)
Aaron &
Grant 4/28/99
Add code to pickup icon class objects and update data structures when a player collides with icons. Aaron 5/3/99
Fix bug that creates a phantom projectile at 0,0,0 Grant 5/3/99
Add update code for Strafing when the strafe input is passed by the client in the message's action struct, so the left and right arrows sidestep
as opposed to turn. Grant 5/5/99
Add a time-out counter to the CServerWeapon class so that projectiles delete themselves after a reasonable amount of time. Grant 5/5/99
Update AddPiece Message to send an array of 6 BOOLS corresponding to a player's piece state of currently picked up pieces. Grant 5/9/99
Create three separate maps for players, icons, & non-movable objects Aaron 5/7/99
Add code for losing your rubiks pieces when you get shot enough times Aaron & Kevin 5/10/99
Alter code to allow shooting while running or jumping Kevin 5/10/99
Add update code for Jumping to process a y-velocity when the jump input is passed by the client in the message's action struct. Kevin 5/10/99
Add calls to the collision code when turning left or right (or come up with some other suitable alternative to ensure stationary collisions while rotating) Kevin 5/10/99
Add data structure to CServerPlayer class to keep track of what weapons players currently have Kevin 5/10/99
Add DirectPlay login name data to the CServerPlayer class and our network message we pass to the client, so it can be displayed in the overlays. Grant 5/15/99
Add a timer on our Icons so that after they're picked up they re-appear once a fixed amount of time has past. Grant 5/16/99
- Move all generalized player code from CServerCube to
CServerPlayer. This will allow us
to add new types of characters without changing the basic movement/message
passing/collision code. All hail the great Zahorjan for his stupendous suggestion that we
create multiple characters!!!
Kevin 5/17/99
- Make the special attacks like the stomp & tornado do damage to
the opponent
Kevin 5/17/99
- Send client our player's damage data via network message in the
Rubiks_info struct
Kevin 5/17/99
Insert data-structure to the CServerPlayer class to distinguish which of the 2 teams each Player belongs and pass this data in our network message to the client. Grant 5/17/99
Add code to send a winning message to all clients, pause for 30 seconds & then reset all the server's data objects after a player wins (picks up all 6 colored pieces). Grant 5/23/99
Add 2 more projectile SPACE BAR attacks, one that shoots multiple bullets, & one that makes projectiles ricochete. Grant 5/24/99
Add the 3 types of Special SHIFT KEY attacks so that they move correctly & do damage, send out proper animations & are only available after you've picked up the corresponding icon type. For the Rubiks Cube: Dash, Tornado, & Arcing Mortar. For the Connect-4 Board: Spinning, Homing Missile, & Arcing Mortar. The 3 attacks for each should share the same power-up icon. Kevin, Aaron, & Trevor 5/31/99
Player Application Grant & Aaron
Add multiple selectable camera angles, using F1 to toggle through them. Grant 4/22/99
Create a missile icon for testing the icon interface Dave 4/18/99
Push back the clipping planes so we can get a big map Grant 4/23/99
Clear the back buffer in Full-Screen Mode to reduce flashing Aaron 4/25/99
Remove the missile and move it to the new icon class Grant 4/25/99
Add new input to set the player to Running Speed. Grant 4/28/99
Create a new bitmap for the walls of our battle arenaGrant 4/27/99
Add new Strafing input, as "bool strafe" in the message's action struct, to allow the player to side-stepGrant 5/4/99
Add new Jumping input, as "bool jump" in the message's action struct, to allow the user to do a high jump possibly over and onto objects Grant 5/4/99
Alter code so that our RUN input button also increases the speed of turning. Grant 5/14/99
Send messages when a player application quits, so that the player drops all of the game pieces they collected (otherwise they take them with em). Aaron & Grant 5/14/99
Add a switch in our RubiksPieces constructor so that if you've chosen to be a Connect-4 board then you see the colored pieces as checkers and not rubiks blocks. Aaron 5/20/99
Add input for the camera observer so he can attach to any of the players and watch them. Space Bar should be the input that toggles through all current players this way. Also change the verticle down movement for the camera observer from "1" to TAB so that "1 strafes the camera. Grant 5/20/99
Add new inputs on the client to change the verticle orientation of the camera with INSERT & DELETE, & reset to the default view with HOME. Grant 5/20/99
Accept a winning message from the server by displaying a winning/losing overlay, then reset all the client's necessary data objects & send a message to the server to start a new game. Aaron, Grant & Hasinur 5/23/99
2D Overlay Hasinur & Kevin
Implement overlays as a transparant heads-up display
Hasinur 4/25/99
Integrate the overlay into the VSS code and connect it to proper class data Hasinur 5/7/99
Implement a transparant radar as part of the overlay showing positions of all players/powerups. Hasinur 5/7/99
Improve layout/graphics of the 2D transparent heads-up display Hasinur 5/11/99
Display login names for the players in the overlay. Grant 5/15/99
Separate the 2 teams' status by putting your team on the left & the opponents team on the right. Your name should always display 1st in your team. Hasinur 5/20/99
Add a health bar signifying how close you are to losing one of your pieces. Hasinur 5/20/99
Make font larger, put borders around icons, put a solid background on objects, & make other layout/graphical improvements to make the overlay easier to see. Hasinur 5/21/99
Add funny text messages that appear when a player is shot saying some derogatory message notifying everybody that they suck Grant & Hasinur 5/29/99
Graphics Kevin & Dave
- Make a Connect-4 game character using DirectX
Aaron & Trevor 4/26/99
Create a missile projectile which looks like a small cube Aaron
4/27/99
Shrink and lower our current Missile .x file in 3D Studio
MaxDave 5/03/99
Add a 3D beveled effect to our letter bitmaps which are textured onto the Alphabet Blocks. Also add a grain texture for that woody look. Grant 5/5/99
Convert & add a toy clock and transparent balloons as 3D objects into our arena Dave 5/10/99
Create shadow effects under our players on the floor so you can see where they are when they jump. Kevin 5/16/99
Create ultra-cool bitmaps for the final overlay Kevin 5/31/99
Add player's picture bitmap that will float over your player's cube with a colored border to identify you. Dave 5/30/99
Steal at least half a dozen more toy-ish 3D files from web, covert them to .x format, and insert them strategically as obstacles in our arena. Grant 5/31/99
Create 5 3D models and insert them as power-up icons around our arena. We need icons for a Tornado/Homing missile attack, a Dasing/Spinning attack, an Arcing Mortar attack, a richochet missile, & a triple shot cannon. Kevin 5/31/99
Playing Field Dave, Trevor & Grant
Find good camera viewing angles for our Default player & observer views. Grant 5/20/99
Increase size of playing field to extremely large, but not too large so that it hurts performance. Grant 5/20/99
Add several nonmovable objects, stairs, & decks that players can jump on into the playing field Grant 6/1/99
Start players from semi random positions in the sky Grant 5/30/99
Add icons in semi random fashion to the board Grant 5/30/99
Animations Kevin & Aaron
Rubiks Cube player Kevin
Firing animation Kevin 4/28/99
Tornado animation Kevin 4/30/99
- Getting hit animation
Kevin
4/27/99
Rubiks cube explodes on impact -- add more randomness to the
explosion Kevin 5/17/99
- Hop backwards animation
Kevin 5/17/99
Dashing ram attack animation Kevin 5/23/99
Arcing Mortar with growing Cube animation Kevin 5/30/99
Connect 4 player Aaron
Create a bouncing walking animation for this character Aaron 5/7/99
Cool Firing animation Aaron 5/7/99
Stomp attack animation Aaron 5/17/99
Fix stomp attack animation so it doesn't go below Y=0 height Aaron 5/19/99
Spinning attack animation Aaron 5/27/99
Hop backwards animation Aaron 5/27/99
Implement a scheme for showing checkers in the board when he picks up the colored pieces, by either adding several colored checkers, or several black/red checkers with colored checkers in the board. He completes a connect-4 after picking up the 6th colored piece. Aaron 5/28/99
Arcing Mortar with growing Checker animation Aaron 5/30/99
Add a cool explosion so when the connect-4 board gets hit his board flies up into the air Aaron 6/1/99
Sound Dave & Trevor
Get basic sound working using static buffers and key inputs Dave 4/26/99
- Integrate basic sound into client so a .wav file is played with the hopping animation
Dave 4/26/99
Add 3D buffers and a 3D listener so we can have 3
Dimensional Sound effectsDave 4/30/99
Attach 3D Listener to PlayerDave
5/03/99
Update projectile so that it will play a sound as it is on
its path of destructionDave 5/03/99
Update all client object constructors in hierarchy to
include pointer to soundsetDave
5/07/99
Fix memory leaks in soundsetDave 5/07/99
Fix sound bugs that have broken all sounds in the
gameDave 5/17/99
Expand the size of the area over which the current 3D listener
can
hear sounds, ideally to twice the size -- make it adjustable by pressing
different keys.Dave 5/24/99
Add Austin Power's sounds when picking up power-up icons & rubiks cube pieces Dave 5/28/99
Add sounds to all animations like hopping backwards, stomping, and jumping Dave 5/28/99
Play some cool sound when we receive the winning/losing network message while the winning/losing bitmap is up. Hasinur 5/30/99
Music Hasinur
Get basic music working via DirectMusic so that we can play a midi file Hasinur 4/28/99
- Integrate the DirectMusic code into the source-safe project so a midi file plays upon start-up
Hasinur 4/30/99
Add the ability to toggle through multiple midi sound tracks by pressing F12. Hasinur 5/18/99
Add a new "music off" input using F11. Hasinur 5/31/99
Input Aaron
Choose & Remap the final key mapping that's most appropriate for all our available inputs. Aaron, Kevin, & Grant 6/1/99
Don't pass mouse events and "Alt" key input to the default handler because in full-screen mode it causes our game to exit rudely Aaron 5/31/99
Window Startup Screen Hasinur
Create a new start-up dialog where you can choose which character you want to play as Aaron 5/11/99
Add a selection to choose to be the camera observer Aaron 5/15/99
Add a text box on the start-up screen where users can write their own login name that'll be displayed in the overlay. Hasinur 5/16/99
Add to the start-up selection dialog, the option to select 1 of 2 teams to join. Hasinur 5/16/99
Fix the bitmap display bug on the client & server, which sometimes causes the splash bitmap to be drawn outside our window. Hasinur & Aaron 5/17/99
Add cool bitmaps of our rubiks & connect-4 guys on the start-screen when you choose your character Grant 5/18/99
Add help text that tells users how-to run client/server and what the keyboard inputs are. Grant 6/4/99
Non-essential features
- Performance test & profile the final release build. Make modifications to the server tick time to boost performance if necessary.
- Add simple broadcast chat text to the overlay screen and possibly also
do all of the framework for chatting between specific players and teams.
- Add a "smart" camera that zooms the default view in & out based on the player's current action.
- Look into dynamically changing the midi file or tempo or volume based on key events in the game like when the player needs only 1 more block.
- Add data structures to track player stats like # of pieces you stole or
# of pieces stolen from you or shooting accuracy %, and display them on the winning screen.
- Add lighted explosions! Try to steal the explosion animation from Scorched Earth and use this when a missile impacts.
- Implement a simple character with AI as a computer opponent who can go around and pick-up pieces or fire at you. Maybe a RC car or the clock guy, or even a stationary object that just fires at you.
- Add a springing object, or a spinning object, or a see-sawing object, that you have to jump-on at the correct time to pick up a piece.
- Add echos or other cool effects available from our Premo-SoundCards
- Add support for Joystick/Gamepad input via DirectInput.
- Add some cool fog effects around the arena to give it some mo schwank.
- Put a shallow pool in the arena using alpha blending and slow a player's movement while underwater.
- Add cool character animations to the start screen when you select you characters.
- Add force-feedback joystick support... Ha Ha.