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: