Important Documents


Milestone 1 Update (April 6, 2004)

Alot of organization has been done and the first steps have been taken to actually realizing this project. The following pieces of the project have been completed Among these pieces, I am using the following libraries At the current state of the project, the code is organized into a state that I can easily build up and work off of it to develop the complexity of the game that is necessary. With the mish-mash of completed pieces, the run flow of the game only goes through the main menu screen and the connection screen. Images of these are here and here. On top of this, I created a simple modelviewer on the side in order to test the rendering of the heirarchical classes that store the players and enemies. Take a look at this simple render for an example. The blue are legs, the red is the torso, green are the arms and yellow are the weapons. A basic synopsis of the game flow goes as follows: The client runs and through the main menu, you go to the connection menu. This menu then connects to the inputted server, which then accepts or declines the login. If accepted, the server will dump state initialization information to the client, which transitions to HQ. At HQ, the players will decide on a level to play, as well as make any equipment purchases, added spoils acquiring, and configure their machines. When they all commit to being ready, the server will initialize the world state and send initialization information to each player involved in the mission. The level will load and the players will play through. The players then play through the mission to accomplish a goal (generaly meaning, to destroy all the enemies). Through the mission, they acquire resource points by performing tasks. When enemies are destroyed there is a chance that they will leave behind components that are put into the mission spoils pot. At the end of the mission, the players choose from the spoils in resource point order from most to least. Remaining spoils are put into a stash at the HQ which can be purchased with resource points. The player can control their character with the following behaviors: Movement and bursting, which is a rapid short-lived movement in a direction, is controlled by the keyboard. The left mouse button fires the left weapon. The right mouse button fires the right weapon and moving the mouse left or right will turn the character. Now for the weapons, there will be many variations on these, but 4 basic types: Melee, rapid fire guns, long guns, short guns and shields. The guns will fire 3 basic types of projectiles: bullets, beams and blasts. A character will be able to equip the following types of components. torso, legs, right weapon, left weapon, right arm, left arm. Each component has a weight which will have an effect on the speed of the character's movement and rotation, as well as a value to indicate the resource cost. The torso determines the elemental type of the character as well as being the primary source of body armor. The legs determine speed, burst speed and have body armor. The arms also possess armor, but play a more important role in determining how heavy of a weapon can be equipped. The weapons determine what kind of attacks are done when activated. All of these functions are currently blocked out and organized, it would be easier to tell generally what still needs to be done in order to complete the project, so here we go: I'm currently bottlenecking at how to go about initializing game states over the server as I'd like it be a clean process such that I won't have to perform any funny messages and thus reduce the amount of network traffic, while minimizing the number of different message types I have. If I can get past that, the In-Mission Behaviors and Advanced Players Behaviors should come easily. Sound should also not be terribly difficult, although I do plan on placing it into a separate thread run only on the client, so that it won't stutter while various loading phases are going underway. Another bottleneck I will have to face is the animations. I'd like to be able to use keyframe animations that I create in my 3ds model files, but am having difficulty learning how to load this information. I may resort to simple hand-writing key frames that control a rotation at each piece of the Player/Enemy hierarchy, but it would much simpler and of higher quality if I could use .3ds animations. This may involve switching to a simpler or better documented model format such as .md2. And now here is the remaining timeline: