Project Specification

1.Project Description

What kind of game are you planning to build?
We plan to build a racing/shooting game with a capture-the-flag emphasis, using a Transformers First Generation motif.

What are the goals of the game, how do players win, how do they lose?
The goal of the game is to accumulate as many points as possible. Players can gain points by damaging each other or reaching a specified point (the flag) first and returning it to another specified point. The game ends when a predetermined number of flags is captured or when a time limit is reached (user-configurable).

What are the interesting or unique aspects to your game?
There are 2 basic modes of gameplay, where we implement both a racing and a shooting game with Autobots from Transformers. Players have the ability to switch between modes, whichever is more advantageous. Once the flag is retrieved, other players will gang up on the flag carrier.

What are the list of features of your game? Prioritize them into at least three categories: "Must Have", "Would Be Really Nice", and "Cool But Only If Ahead Of Schedule".

"Must Have"
Must be (of course) 3D, distributed multiplayer, and real-time.
Must have a driving component with basic steering, acceleration, braking, top speed, etc.
Must have a shooting component with projectiles, damage, energy requirements.
Must have radar or some detection system.
Must have basic user-interface.
Must have basic user input capabilities (keyboard and mouse), with separate interfaces for both robot (shooting) and car (driving) modes.
Scoring system must be implemented.
Maps/levels (at least 2) must be implemented
Explosions
Timing is required.
Collision detection and resolution (however minimal) is required

"Would Be Really Nice"
Physics (momentum, ballistic motion, friction)
Improved collision detection and resolution (car spin-outs)
View changes (from first to third person), rotating camera, instant replay
Introduction
Music, sound effects
Multiple weapons and power-ups (turbo-boost, missiles)
Special capabilities (Mirage turning invisible)

"Cool But Only If Ahead Of Schedule"
Particle systems
Allow trash talking during the game
Storyline

2.Group Management

What are the major roles in your group's management?
Spokesman - Matt Devico

How will decisions be made? By leader, consensus?
Consensus

How will you communicate? Email, meetings in the lab, discussion board?
Email, meetings in the lab, discussion board

How will you know when you're off schedule, and how will you deal with schedule slips?
If the milestone for a given date is not reached, then we are behind schedule.
First, we will have a backup person to help the other who fell behind. We will also have code review. Also, if the problem is completely infeasible, we will have a specification change. Finally, we will prioritize the problems we have at the moment and concentrate on the critical slip-ups. We will push back on the others, perhaps delaying implementation or debugging of those items until alpha or beta testing. Since we are all CS majors, it also goes without saying that we will sacrifice sleep if behind schedule.

How will you produce the weekly group status reports? Individually, by a documentor?
Weekly group status reports will be done individually and turned in at the instructor/group meetings.

3.Project Development


What are the development roles and who will handle them?
Edwin Cheung - graphics
Matt Devico - graphics
Duc Truong - networking
Don Quach - basic game design and collision detection/resolution
Leo Mortero - input, integration
Stan Chin - game engine coding

What tools will you use?
Visual C++, DirectX 8.0, maybe SoundForge, CakeWalk, Quake 2 + Transformers TC

How will you do testing?
Play the game. We will also unit-test each individual component as we implement it. There will be a basic integration test over the range of inputs for the components, but we hope to catch most bugs with logic and game playing. We will catalog bugs with a simple web page (bug #, bug severity, description, owner, component, date, resolution).
How will you do documentation (both internal group documentation as well as external player documentation)?
We will have in-code comments that we can strip out with a basic parser that will describe components. When we check in a file, we will also put in descriptions of what was changed.
For player documentation, we will have a small README file.

4.Project Schedule

Define a set of milestones with a specific definition of what each milestone is, what it means to complete each milestone, and when you expect to complete them. Define the milestones at two scales, a high level set of key milestones like integration and design freeze, and a low level set of weekly milestones.