lang="en-US"> PLEX Specification Requirements Document –  Design1online.com, LLC

PLEX Specification Requirements Document

PLEX – Multiplayer Online Game
Specification Requirements

1. Introduction

I’m a senior at the University of Mary Washington and I’m going to me making a game in C/C++ using the Allegro API. The game, PLEX, will consist of two parts, an online multiplayer version and a single player version. I will be working on the multiplayer version during the fall semester and follow up with the single player version on my spring semester.

1.1 Purpose

The reason I’m creating PLEX is to help me understand the complexity of MMORPG, or massive multiplayer online role playing games. I hope to use the knowledge I’ve learned throughout this year to help me get a job in the gaming industry. PLEX will become one of the strongest portions of my portfolio when I apply for jobs. At the same time I can use the skill set I will develop from this project to help enhance my understanding of software engineering, networking, and the game development process.

1.2 Scope

PLEX will run on both windows 98/XP/NT and Linux operating systems. In multiplayer mode it will query a database setup on an Intel Celeron 1300MHz server with a 256KB cache. PLEX should allow for at least five concurrent users online without visible lag time. Users will have to download and possibly install the software before they can start playing PLEX. The total cost of this project is $0 and the investment into this project is $0.

1.3 Document Overview

This document will go over the project in detail, user characteristics, general constraints, and then requirements entailed.

2. Project Explained

PLEX will be written in C/C++ using the Allegro API. It will have access to a database for online play. There are two main modes for gameplay:

Story Mode – the user has decided to play the game as a single player. There is no online aspect of the game play. Users can start a new game or load a previous game. In story mode there are six characters the user can choose to play as. Each character will present a different set of puzzles the user has to beat in order to complete the game.

Build Mode – the user has decided to play the online multiplayer version of the game. They must create a user name and password and character before they can login and start playing. Once they have logged into the game a connection is established with the database that persistently sends information to the player and the game board. In this mode the user can see 6 blocks across, by 6 blocks down, by 4 blocks deep of a 100 x 100 x 4 block grid. They will be given a list of patterns and houses to make on the board. As they complete the patterns they will be awarded jewels. At any time they can click on a high score menu and see how they compare to the top players on the game.

Optional Feature: users will be able to talk to other users that are close to where their character is standing.

2.1 Project Functions

Game Engine – before mode is set. setup the game once the game .exe file has been started. Initialize all appropriate functions and connections to the database if necessary. Prompt the user to play a game in story mode (single player) or build mode (multiplayer). If they choose story mode then take them to create a new game or load a game. If they choose build mode take them to login to the online game or create a new username and password.

New Game – only available in story mode. If the user has decided to create a new game then prompt them to pick a character to play as.

Save Game – only available in story mode. If the user clicks on the save game button then prompt them to enter a file name. Once the file name is entered (and valid) then all of the games current variables, character positions, and block positions should be written to a file so they can be read back into the game at a later time.

Load Game – only available in story mode. Show a screen that allows the user to select the game file they would like to load. Once the file is chosen, load the information into PLEX by updating variables and graphics to the last position that character was in when they saved the game.

Play Driver – only available in story mode. Play and pause the game so the user can leave the game and come back at a later time.

Menu Driver – available in both modes. In charge of all of the game menu screens, including saving games, loading games, startup game selection, high scores and buying things from the game store.

Game Logic Driver – both story and build mode. How the game is actually played. All the legal and illegal rules of the game, block movement, character storylines for story mode, default puzzles, mini-puzzles and quests, as well as interface with the database connection to update online play. Checks to see if a username/password combo exists in the database, and then keeps track of the logic in online mode for that particular user.

Graphics Driver – both story and build mode. Loads all of the game graphics and returns the appropriate graphics formatted as needed to the buffer. Deals with any and all animation of blocks or graphics. No game logic is included in this driver, only things that have to do with graphical display on the screen.

Music Driver – both story and build mode. Loads all of the game music and returns the appropriate songs as needed. Should play, pause, mute, increase/decrease volume when asked to for any song that is currently playing.

Time Driver – both story and build mode. Keeps track of elapsed time. Can be reset to zero at any time, counts seconds based off of the clock time and not the screen refresh rate.

Database Connection – only available in build mode. Handles all the connectivity with the database. Fetches and returns query results. Will query based off of the time driver so PLEX doesn’t query with user’s screen refresh rate.

Connection Timeout Driver – only available in build mode. Check to see if the user is still actively playing the game in build mode. If the user hasn’t made a move in x amount of time they timeout their connection to free up database resources for other online players.

Movie Driver – only available in story mode. This is an optional thing because I’m not sure I’ll have time for it. This will handle little movies that play at the beginning and end of the story mode, as well as any little movies that will go on during the game for finishing certain puzzles, adventures, or quests. This would combine with the graphics drivers to play animated scenes with annotated text to explain what’s happening or show what characters are saying.

2.2 User Characteristics

The users of this game will have to have Windows 98/XP/NT or a LINUX operating system. PLEX will not be supported on Mac computers or cell phones. Users will come from a wide range of backgrounds and may have very limited experience with computers.

2.4 General Restraints

This system must be able to support at least five concurrent users in build mode. It may support more then that, but must support five as a minimum without noticeable lag in the gameplay. There will be no self-install feature for this game; it will run by clicking on an .exe file. PLEX will only run on Windows 98/XP/NT or a LINUX operating system. It should be targeted towards a teenage audience. It should be complex enough to be challenging, but not so hard that users get easily frustrated and give up.

3. Requirements

3.1 Game Engine Requirements

REQ 1: Must be the first thing that starts when the game is turned on.

Rationale: This will drive most of what happens in the entire game, it must be the first thing to start.

REQ 2: Will be the only thing that can write to the main game buffer.

Rationale: All the other drivers will have to go through this engine in order to have access to the components of the game. If only the engine writes to the buffer then nothing will be overwritten.

REQ 3: Must initialize all of the other drivers.

Rationale: Once this is started it will be responsible for setting up all other drivers.

REQ 4: Must handle all user input.

Rationale: Because this will be running the overall structure of the game it must behave appropriately according to where the game is and the user input being give (keystrokes, mouse clicks).

REQ 5: Will initialize the connection to the database if build mode is picked.

Rationale: This way a connection is only started once the user has decided to play in online mode.

REQ 5: Write the bugger to the screen.

Rationale: Blit the game engine buffer to the screen once all game logic has been applied to it, so the appropriate images are shown at all times.

3.2 New Game Requirements

REQ 1: Only works in story mode.

Rationale: In build mode they must login with a username/password or create one.

REQ 2: Must setup all the game variables and drivers so a new game can start.

Rationale: If the game isn’t setup for a new game, or an old game is already loaded, everything must be reset back to start a new game.

REQ 3: Must ask the user to select a character to play as.

Rationale: If they are playing a new game they need to select the set of puzzles they want to try which are based on the character they pick.

REQ 4: Once a character is picked, this must load all the appropriate puzzles for the different sections of the game map.

Rationale: Because all of the puzzles vary based on the character, load the appropriate ones for this particular character.

3.3 Save Game Requirements

REQ 1: Only works in story mode.

Rationale: Games cannot be saved in build mode.

REQ 2: The file name for the game must be valid so it can be read back in at a later time.

Rationale: Strange characters in the file name make cause problems when opening the file for loading.

REQ 3: If the file already exists, the file will be written over.

Rationale: If the user is trying to save the game with the same file name then it is probably a continuation of that previously saved game.

REQ 4: If the file doesn’t exist it must be created.

Rationale: The game can’t write to a file that’s not there.

REQ 5: The file must be saved in a particular format and include all the game data that needs to be read back in at a later time so the game can continue.

Rationale: If the file isn’t in a certain format then the game won’t be able to load all the information back in at a later date.

3.4 Load Game Requirements

REQ 1: Only works in story mode.

Rationale: Game data in online mode is loaded from the database.

REQ 2: The file exists.

Rationale: The game can’t load a file that isn’t there.

REQ 3: The file must be in the particular format so that the data can be read back into the game.

Rationale: If the format is off then the game will store wrong information in variables, or crash all together.

3.5 Play Driver Requirements

REQ 1: Only works it story mode.

Rationale: You can’t pause the game in online mode, its constantly running whether the user is there or not.

REQ 2: Pause the game.

Rationale: Keep things from happening while the user is gone.

REQ 3: Resume the game if it has been paused.

Rationale: The user has returned, the game can continue like it was before.

3.6 Menu Driver Requirements

REQ 1: Load the appropriate menu when asked.

Rationale: This way the game will always show the correct menu at the right time.

REQ 1: Keep track of where the selector is.

Rationale: This way the game knows what option is being picked from which menu.

3.7 Game Logic Requirements

REQ 1: In charge of ALL the game logic, game boards, and game play variables.

Rationale: Logic is separate from graphics so it can be changed easily. In games the graphic never change, only the logic behind them does.

3.8 Graphic Driver Requirements

REQ 1: Load all of the game graphics.

Rationale: Game graphics will be ready to go before the user starts playing the game to decrease loading times.

REQ 2: Return graphics to the engine buffer.

Rationale: The engine will be in charge of requesting the appropriate graphics so that they don’t overwrite what’s already on the buffer.

3.9 Music Driver Requirements

REQ 1: Load all of the game music.

Rationale: Game music will be ready to go before the user starts playing the game to decrease loading times.

REQ 2: Play music.

Rationale: Will always play the most current music selection.

REQ 3: Stop music.

Rationale: Stop whatever music is currently playing.

REQ 4: Mute music.

Rationale: Turn off the volume for whatever music is playing.

REQ 5: Play music.

Rationale: Will always play the most current music.

REQ 6: Adjust volume if music is playing and not muted.

Rationale: User can turn volume up or down at any time.

3.10 Timer Requirements

REQ 1: Start the timer when the game is started.

Rationale: Timer should always be running.

REQ 2: Restart timer.

Rationale: So time can be measured against some pre-determined start point.

3.11 Database Connection Requirements

REQ 1: Only works in build mode.

Rationale: You don’t have to be online in story mode.

REQ 2: Connect to the database.

Rationale: Must be able to connect in order for people to play in build mode.

REQ 3: Return query results in string format.

Rationale: Must be able to return a string result from a query.

REQ 4: Return query results in integer/boolean format.

Rationale: Must be able to return a integer result from a query.

3.12 Database Timeout Driver Requirements

REQ 1: Only works in build mode.

Rationale: You don’t have to be online in story mode.

REQ 2: Check to see how much time has passed since the user last entered some kind of input and log them out if that time surpasses x seconds.

Rationale: Free up database resources by kicking out idle users.

3.13 Movie Driver Requirements

REQ 1: Load information about movies.

Rationale: Game movies will be ready to go before the user starts playing the game to decrease loading times.

REQ 2: Play movie.

Rationale: Play the current movie.

REQ 3: Pause movie.

Rationale: The game has been paused, pause the play of the movie as well.

REQ 4: Stop/skip movie.

Rationale: User has decided not to watch the particular movie, game control returns to whatever called this.

3.14 Non-Functional Requirements

REQ 1: PLEX will come with a HTML and CHM instruction manual.

Rationale: The user must be able to understand how to navigate and work the game otherwise they won’t bother playing.

REQ 2: PLEX graphics should be cartoons and appeal to people of all ages, but especially to teenager and pre-teens.

Rationale: This way PLEX will attract an audience who wants to play the game, especially people from the targeted age group.

3.15 Non-Requirements

NR 1: Users do not HAVE to have a chat feature. This is an optional feature for build mode.

Rationale: If I run out of time programming everything else, this is something that can always be added on at a later date.

NR 2: There does not HAVE to be a movie driver. This is an optional feature for story and build mode.

Rationale: If I run out of time programming everything else, this is something that can always be added on at a later date.

4. Assumptions

If the user selects build load the game will assume they already have an open internet connection. All users have a graphic card that can support PLEX. All users have sound drivers installed on their computer that can play the sounds in PLEX. All users have a mouse and keyboard when they play. Users do not have any visual imparity such as being color blind (since the color of the blocks will matter).

5. Appendix

5.1 Glossary of Terms

Allegro API – A multi-platform game programming library that can be programmed using c and c++. Includes functions for drawing to the screen, animation, key and mouse input, music and rendering support.

Browser – A program that lets you view documents in popular internet formats such as HTML.

C/C++ – A popular industry programming language.

CHM – Compiled HTML Manual, a Windows program that makes reading and searching through an online manual easy.

Database – Software that quickly stores and retrieves large volumes of information.

HTML – Hypertext Markup Language, the format of documents on the Internet. Easily viewable using a browser.

Intel Celeron 1300MHz server with a 256KB cache – A computer accessible by the Internet so people who are online can access the information stored there.

Linux – An operating system alternately to Windows 98/XP/NT.

MMORPG – Massive multiplayer online role playing game. A game that several people can play online at the same time, where interaction between the players is a large part of the game.

PLEX – The name of the game being developed. Originally comes from the word comPLEX, because the game involves puzzles and moving blocks into certain patterns before you can proceed through it.

You may also like...

2 Responses

  1. Tushar says:

    Really Detailed document.

  2. Jade says:

    That’s nothing compared to the design document…

Leave a Reply