Anthony
Smith
CS
371,SPRING2006
Homework
#1
Prof.
Jeffery
Requirements Analysis
System Overview:
Introduction
The goal of the CS371 programming team is
to develop a 3-D first person shooter. This game will employ Object
Oriented
programming in C++ and OpenGL . Although class libriaries and
non-proprietary
code may be used, the project must be an original work as to avoid any
plageristic or ethical concerns. This should not pose a problem due to
the fact
that C++ and OpenGL should be able to handle all aspects of the System
from
Networking,Graphics, to Database Management.
The
executable must run on NMSU lab computers
which operate with Linux. Cross-platform operation (i.e. Windows) is
acceptable
if this requirement is met.
The
game itself will involve single and
multi-player game play. The User Interface should have a means of input
through
the keyboard and mouse. A menuing system is absolutely necessary.
Networking
capabilities are essential, this
enables multi-player game play. The System will support a LAN
connection and
possible a modem to modem.
The
Graphics should be coupled with a Physics
engine for realism. Sound is optional, however, this would lend the
end-user
with a greater emersive experience. Audio should be considered only if
time constraints
can be met.
The
System must also possess a Database and a
Resource Manager. The System must keep track and process all data in
real time.
Management of data is paramount for efficiency , speed, and avoiding
any memory
leaks.
Game play will involve a virtual Science
Hall as the arena, and Actors will have various guns and bombs in order
to
anilhilate their opponents which consist of A.I. as well as other
Actors.
The
primary Customer of this project is Prof.
Jeffery. The requirements were made very clear and consise. All design
considerations must be constrained to the primary customer. Users such
as
students or the general public will share the same requirements as the
primart
customer.
The
environment on which the System will operate will be backwards
compatible for
machines at least as old as the NMSU lab computers. This program should
not be
too large or too advance as to not run on these machines.
Functional
Requirements:
Classes
A
basic framework for the System might consist of the following:
Input
Game
Logic
Graphics/Audio/Physics
Database/Datafiles
Networking
Output
Inputs
Basic
input can be done via keyboard and
mouse. Such inputs are user name, login, logoff. Gameplay inputs
include
movement through the realm, use and changing of weapons.
Outputs
Graphic
and user data should be output to the
screen as well as transmitted across the Network in real-time.
The
data the system should store should consist of the virtual environment,
and
player data such as weapons , ammo, health , and network protocols.
Computations
involved would graphics
transformation, physics, and basic arithmetic operations on user data.
Timing
and synchronization are of great importance due to the fact that this
will be a
real time environment.
Process
Requirements:
Development
process to be used should employ a spiral type as well as a divide and
conquer
mentality. Programmers should split into teams that exploit individual
strenghts. This should help reduce production time. Teams should meet
regularly
to discuss progress, needs, and ensure compatability between modules.
This
would be a regularly scheduled JAD session.
Delivery
date is at the end of the semester. 13 weeks are left in the semester
to
complete the project.
Week
12-13: Final testing and debugging. This should be the end of the
beta-testing,
and a working program should be completed.
Week
10-11: Alpa-testing. Functionality and gameplay are to be tested. The
system
should be playable.
Week
8-9: All components of the game should be married to the Game Logic. A
basic
working model should be running.
Week
6-7: Some inherited and associated classes should be joined to test
compatibility.
Week
4-5: Test drivers for each class should be implemented to insure proper
functionality.
Week
2-3: Functions for each class should be decided upon and coding should
commence.
Week
1: Teams should be organized and the basic classes and heirarchys of
the System
should be agreed upon.
Use Case:a
sequence of actions that an actor performs in order to complete a given
task
Actor
opens file.
Actor
chooses single or multiplayer mode.
Gameplay
Input
Output
Actor
ends game.

Class Diagram: