Pier436 v1



Pier436

Requirements Definition Document

Common Infrastructure Team

6 March 2007

Matthew Bensley

Zachary Patterson

Troy Ruths

Jared Stein

|Introduction and Main Objective |3 |

|Project Extension and Dependency |3 |

|Feature List |4 |

|Game Engine |4 |

|World Model |4 |

|Communication Manager |5 |

|Graphics |5 |

|Feature Dependency |6 |

|Use Case |6 |

|Glossary |7 |

Table of Contents

Introduction

The common infrastructure team seeks to specify a type of application, and to provide a platform on which an application of this type could be built. The platform is motivated by three needed applications: the Building Security Simulation, the Island/Planet Exploration, and the Traffic Flow Simulation. This initial specification for the common infrastructure is initially conceived from the common aspects and possible dependencies of these applications.

Main Objective

Provide a platform implementing the most common features of the three applications, and a framework that can be used in developing applications that will use the platform.

Project Extension and Dependency

• Pier436 will provide a platform for game development, giving collaborative and graphic abilities to applications.

• The development of other teams depends heavily on this product, and we will allow for communication with other teams to better define project scope.

• Dependencies that are common among all teams will be provided as library features.

• We will also provide assistance and tutorials to use this product more effectively.

• Tutorials will include a set of drivers that use the various parts of the platform design.

Survey Results

The infrastructure team created a list of initial considerations for the Pier436 product, and submitted them for review by the three applications teams. The application teams indicated their preferences, and the results below are used to frame the most important requirements for the Pier436 product.

1. Development Language Preference

1. Building Team -- C++, Java

2. Island Team -- C/C++/Java

3. Traffic Team -- C++

2. Development OS Preference

1. Building Team -- Linux, Windows

2. Island Team -- OS X, XP

3. Traffic Team -- Windows, Linux

3. Supported OS Preference

1. Building Team -- Linux, Windows

2. Island Team -- All

3. Traffic Team -- Windows, Linux

4. Portability

1. Building Team -- Yes

2. Island Team -- Nice to have

3. Traffic Team -- No

5. 3D Support

1. Building Team -- Peripheral

2. Island Team -- No

3. Traffic Team -- No

6. 3D Effects Support

1. Building Team -- No

2. Island Team -- NA

3. Traffic Team -- NA

7. Number of Users in Collaborative Environment

1. Building Team -- at least 4

2. Island Team -- 1, Nice to have more.

3. Traffic Team -- 1

From these survey results, we determined that the Pier436 product should at least support the following:

• The teams should be able to develop their applications in Java.

• The Pier436 platform should allow for development on both the Windows and Linux operating systems.

• The Pier436 platform should be accessible by applications on both the Windows and Linux operating systems.

• Multiple instances of an application must be able to collaborate with each other.

Feature List

1. Game Engine

1. 2D support

The game engine must support the following common 2D graphics libraries:

1. Camera draw canvas

2. Drawing utilities

3. Sprite rendering

4. 2D Sound

5. Collision Detection

6. Entity Picking

2. 3D objects and scene support

1. 3D view of 2D game world

2. 2D Libraries Crossover

3. User Interface (UI) support

2. World Model

1. The platform will maintain game state of the application, providing specifically the following:

1. Time---A clock that can be used by the application, which can run as slow as real time and as fast as the application mandates.

2. Load/Reset---The ability for the application to initialize and reset the world model.

3. Entity Registration---To applications the ability to create and add entities to the world model maintained by the platform.

2. The application will have the ability to define an environment in which the entities exist. The implementation of the map will support:

1. Graphical viewer---A means for the user to view the state of the map, which supports:

2. Zoom levels---The ability to view higher detail of a smaller area, or view more of the map at lower detail.

3. Entity representation---The entities will be viewable superimposed onto the map.

4. Uncover newly explored areas---Representation of entities with limited sight distance.

3. Communication Manager

1. Standard interface for communication over a network.

1. The platform will provide near real-time message exchange over a network.

2. The messages will be handled by a message controller in the platform.

3. The platform will support guaranteed message delivery.

2. The platform will support the capability of receiving and broadcasting world state changes.

1. The application must have an event handler and event creators (including sprite interaction and UI interaction)

2. Changes must be broadcast back to all client systems to keep systems in sync with each other

3. The platform will maintain an event controller to update world state and dispatch messages to clients.

3. The platform will provide an interface for manipulating entities that exist in the global world model.

1. The platform will support entities that are shared to other clients on the network.

2. The platform will support entities that are not shared to other clients on the network.

3. The platform will support human and computer controlled entities that affect world state.

4. Graphics

1. Base Entity Hierarchy

The product will provide an entity hierarchy such that entities inherit behavior and are easily extensible. It will provide several commonly used entities, such as:

1. Static entities---a non-interactive, non-colliding world object that do not respond to encounters or collisions.

2. Dynamic (Impassible and Passable) entities---an interactive, colliding world object that respond to encounters and collisions with plugged-in event actions.

3. Movable entities---an entity whose position state can be changed.

4. Controlled entity---an entity that has pluggable control logic, either from a human or computer source (AI).

2. Control Logic Hierarchy

The product will provide a hierarchy for control logic for controllable entities, such that they are responsible for the entities movement.

1. Random movement---a parameter-based random walk.

2. Constrained movement---a random movement in a confined space.

3. Patterned movement---movement in a recurring sequence of steps.

3. User Interface

The product must provide the application developer with a base user interface, which includes at least the following:

1. Map Controls---Implement controls that change the view state of the map in the user interface.

2. Implements UI behavior including buttons, text areas, and menus.

3. Framework must be able to process and interpret user input, including keyboard and mouse events.

4. The product must allow the application developer to add components to the user interface, as necessary for that application's specific concerns.

4. Sprite Library---The product will provide a set of 2D sprites for the application teams.

5. Message Protocol---The product will provide a standard message protocol to the application teams.

6. Color Palette---The product will provide a color palette for the application teams.

Feature Dependency

The Pier436 product is a common platform for applications. It is essential that no part of Pier436 depends on the implementation of any of the applications. To be clear:

1. The platform shall be independent of any other teams' project.

2. The framework libraries will be dependent on the platform.

1. Programming Language---the framework must communicate with the platform and the applications.

2. Functionality---the framework provides applications access to the platform.

Use Case

In developing an application that uses the Pier436 product, the application developer extends the base simulation implementation that will be provided by Pier436. This removes the responsibility of generic UI implementation, and allows the application developer to focus on the logic of their team's particular game.

The platform supports collaboration, so the application developer can provide or deny access to other clients running instances of the application, and allow for two way communication between platform instances. This suggests the enforcement of a concrete messaging protocol, which will be supported by the product.

The uniform messaging protocol will enable users of the finished applications to operate collaboratively, transparent to the application's implementation.

Glossary

Entity - object in the game world that is tracked and kept current across all application clients

Framework - set of modules common across 2 or more applications.

Pier436 - the final delivery including the Framework, the Platform, and Documentation.

Platform - set of modules necessary in every application.

Product – (See Pier436)

Region - sub area of display space. Regions may be rectangular, ovoid, polygonal, or a conglomeration of the previous three basic types.

World Model - the environment in which the game is operating in.

World State - the state of all entities under the jurisdiction of the platform.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download