Project Spec

**********************
1. Project Description
**********************


What kind of game are you planning to build?

--------------------------------------------

Our game is going to be multiplayer, 3-dimensional game in which players
log in and then proceed to fight against a single, ever-approaching enemy. The
enemy format and system will be similar to that present in many "Tower Defense"
games.


What are the goals of the game, how do players win, how do they lose?
---------------------------------------------------------------------

All the players of the game will form a team (with different roles).
The goal of the game is to successfully defend a single entry point from enemy
units. Players can lose if too many enemies step into the area.
They can win if the players successfully destroy all enemies.

What are the interesting or unique aspects to your game?
--------------------------------------------------------

2D players in a 3D world - We would like to model the story and system
around multiple 3-Dimensional player characters that interact inside of
3-dimensional world, but where all of the enemies are 2-dimensional (or
represented as such, via sprites and the like).

Team-Based Play, Against a Common AI - we'd like to model an AI that,
while generally heads towards an enemy, will also react to attacks by the
player, and proceeds to attack characters if given the chance.


What are the list of features of your game?
-------------------------------------------

Team Based Play
3-Dimensional World
Networked, LAN Playable System
Graphics Engine that mixes 2-D Sprites and 3-D Characters

Prioritize them into at least three categories.
-----------------------------------------------

"Must Have":
Map Defined and Established.
Gateway Logic
Player Movement
A Weapon

Collision Detection
Sound

"Would Be Really Nice":
Weapons
Obstacles
Objects that take Advantage of Terrain

"Cool But Only If Ahead Of Schedule":
Additional Levels
Classes
Systems
Varied sound effects

******************
2.Group Management
******************


What are the major roles in your group's management?

n/a


How will decisions be made? By leader, consensus?

Consensus, with whoever is dedicated to the
development role (as specified below) holding larger weight
in the decision making process. The logic being that whoever is
spending the most time with the code should have the largest say
in what gets implemented in and of itself.


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

We will communicate largely by email and also through meetings in the lab.

How will you know when you're off schedule, and how will you deal with schedule slips?

Each member of the group will work on the project on their own free time
and we will meet as a group at least once a week to make sure everyone is
on track.


Who will produce the weekly group status reports?

Everyone will take turns.

*********************

3.Project Development
*********************


What are the development roles and who will handle them?

Art: Diana
Animation: Stephanie, Diana

Game: Cory, Thavidu
Graphics: Stephanie, Alan
GUI and Input: Alan, Sam, Diana

Network: Cory, Thavidu
Physics: Thavidu

Sound: Sam


What tools will you use?

Illustrator, Photoshop, Maya, VisualStudio 08, DirectX (All of it's facets.)
Sound programs?


How will you do testing?

Iterative testing in an agile development environment.
Unit testing to keep modules and other systems as seperate as possible.


How will you do documentation (both internal group documentation as well as external player documentation)?

We will keep updates to the website and run through a little bit
of html code while we're at it, KISS.

******************
4.Project Schedule
******************

Define a set of milestones:

A specific definition of what each milestone is,
what it means to complete each milestone,
and when you expect to complete them.


A high level set of key milestones.
-----------------------------------

-Spec and design (week 1)

-Preliminary Development and research
-Program structure (multiple modules integrated) consistent
-Box that we can rotate with keys + syncs with other computers (Week 3)
-Project Development
-Implement everything to achieve alphatest (until week 8/9)
-Alpha Test ready (week 9)

Alpha Test denotes full implementation and compatability.
Spec Freeze Here, no new Systems implemented.
-Game level/design refinement (week 8/9)
-Beta Test (week 10)
-Finals (Week 11 - finals)

A low level set of weekly milestones - see html page.