Assault on the Exploding Barrel Factory Requirements and Specification Document February 12, 2008 Version 1.0 1. Project Abstract Assault on the Exploding Barrel Factory could be made available as a free download and provide many people with an entertaining experience. This community of potential players represents the customers for the product. The game itself will be a first person shooter that features the player fighting their way through the factory, overcoming obstacles and enemies in the form of automated defense systems that would draw on the exploding barrel motif whenever possible. The aim would be to use this theme in a humorous way while also providing fun gameplay, poking fun at many video game stereotypes along the way. In this manner, the game could be made entertaining for the player and represents a viable product. 2. Document Revision History Rev. 1.0 – February 12, 2008 – Initial Version 3. Customers 3.1 Gaming Community This game will be freely distributed and will run on a Linux platform. There are not many games which run on this platform, so many gamers who prefer this method should like this game. This community of Linux gamers represents the potential users for this product. 3.2 Specific Users Several people have expressed interest in being actively involved with providing feedback for the game during the development process. They are as follows: Adam Horne Ben Everson Dinesh Penugonda Myra Rivera Edwin Rodriguez Xavier Vega Albert Choi 4. Competitive Landscape 4.1 We do not have a brand name Consumers are more likely to buy a product from an established company than an obscure one. When one thinks of Electronic Arts, gamers know they have a history of producing decent games. Lack of brand name recognition will make it more difficult for us to advertise. 4.2 Large, Small Companies vs. US Large software companies have in house and advanced API’s. We do not. Due to our time constraints, we will be required to obtain open source items to handle certain aspects of the game engine. In addition, larger companies have a diverse talent pool. Many programmers can specialize in specific parts of the game (i.e. graphics, physics engine, artificial intelligence). These same programmer teams suffer from difficulties in communication due to their sheer scale and number of people involved. Being in a group size of 3, our communication cost is much smaller and coordination will be much easier. Everybody will have better familiarity with different parts of the game, allowing for a much more flexible development process. 4.3 System Environment We will be developing this game to run in a Linux environment. Most games are developed for the Windows Operating System. This carries with it both pro’s and con’s. On the negative end we restricted ourselves in the API’s available to us. On the positive side, we will be developing for a small niche and will have less competition when our game is complete. 4.4 Time/Experience We only have 8 weeks to develop this product. For large software companies, it can be upwards of a year. Furthermore, we also lack experience in producing games. Many companies have employees who spent years developing games. This is our first time. Because of this, this game will not be able to go toe-to-toe with major development studios in areas such as physics and AI. Therefore, in order to make our game a viable product, we will have to make the game fun to play in general and entertaining in other ways to minimize this weakness. 4.5 Competition Not only do we have to compete with other computer games, we also must compete with Playstation, Wii, Microsoft X-box, etc. There are a lot of options in the market. 4.6 Money Since we have limited financial resources, we are limited in the amount of money we can spend on off the shelf technology. Therefore, we either develop it ourselves, borrow from open source projects, or we don't do it at all. Since we don't have a brand name, it will be difficult for us to raise funds. 5. Requirements 5.1 Installation Pre-conditions: (Subject to change based on results of development process) 512 MB Ram 128 MB video card ~2 GHz processor Hard Drive space? (Guess 200 MB (should include sounds, textures, configuration files, executable, etc). Internet Connection (to download the game installer) Linux OS Post Conditions: Game is installed. Basic Flow: 1. 2. 3. 4. User is prompted to choose an installation directory. Installation process runs based on user input. Installation completes. User can choose to start game immediately upon exiting installation. 5.2 Game Start/Menu Pre-conditions: Game has been installed. Post-conditions: Main game menu is loaded and displayed. Basic Flow: 1. User executes the game program. 2. The main game menu is loaded and displayed. 3. The user can then choose from the following options: a. The user can start a new game. b. The user can resume a saved game. c. The user can modify the controls of the game. d. The user can modify the difficulty of the game. e. The user can quit the game. 5.2.1 New Game Pre-conditions: User selects new game. Post-conditions: Introduction screen(s), movies, etc. are shown. Game world is loaded and player is placed at start location. Basic Flow: 1. See 5.3.1 “Game Initialized.” 5.2.2 Load Game Pre-conditions: User selects load game. Post-conditions: Game world is loaded and player is placed in stored location. Basic Flow: 1. See 5.3.1 “Game Initialized.” 5.2.3 Modify Controls Pre-conditions: User selects modify controls. Post-conditions: New menu shown containing controls and the keys they are mapped to. Basic Flow: 1. Player clicks on a particular functions button. 2. Next input (i.e. keyboard key, mouse button) is mapped to that function. 3. Player exits menu, returning to main menu. 5.2.4 Modify Difficulty Pre-conditions: User selects modify difficulty. Post-conditions: New menu shown containing current and possible difficulty levels. Basic Flow: 1. Player clicks on one of two arrow buttons to increment/decrement difficulty. 2. Brief description of difficulty is displayed in menu. 3. Player exits menu, returning to main menu. 5.2.5 Game Exit Pre-conditions: User selects quit option. Post-conditions: Game program is terminated. Basic Flow: 1. See 5.3.5 “Quitting the Game.” 5.3 Gameplay 5.3.1 Game Initialized Pre-conditions: User begins new game. -orUser loads previous game. Post-conditions: 3D game environment loaded, player place it proper location with correct values (Health, Ammo, etc.) Basic Flow: 1. Depending on whether the game in new or loaded, a file containing relevant information (i.e. Location, Orientation, Health, Ammo, etc.) is read and parsed. 2. The game environment is built and rendered using this information. 3. The game engine is engaged, and the player begins to play. 5.3.2 Game Interaction Pre-conditions: Mouse and Keyboard are installed and working. 3D game environment loaded. Post-conditions: Gameplay continues smoothly. Barrels are exploded. Fun is had. Basic Flow: 1. 2. 3. 4. 5. 6. 7. 8. Uses mouse to look. Uses left mouse button to shoot. Uses 'wasd' keys to move (up, left, down, right respectively) Uses number keys to change weapons. Uses ‘esc’ key to return to menu. (Gameplay should be immediately resumable.) Uses ‘p’ key to pause game. Player health, ammo, etc. are shown in HUD. Player must reach door to next level/room, while avoiding/destroying exploding barrels. 5.3.3 General Gameplay Flow Pre-conditions: None Post-conditions: New level is loaded. Basic Flow: 1. Player works way through room of factory, avoiding obstacles and destroying automated defenses. Rooms are themes to be different parts of the assembly process. 2. If player dies/fails, player is restarted at beginning of room. 3. Player reaches door at the far end of the room. 4. Player enters hallway/airlock. 5. Door is locked behind player. 6. Previous level data is flushed, new level data loaded. 7. An autosave is made, for use as the spawn point if the player dies. 5.3.4 Saving the Game Pre-conditions: Game is in play. (Specifically, this option is not available in the menu until after the game has been initialized.) Sufficient hard drive space. Post-conditions: File containing relevant game information is generated and stored. Basic Flow: 1. Player opens game menu. 2. Player selects ‘save game’. 3. Player is prompted to name the save file. If one of the same name already exists, the player is prompted to overwrite. All saves are stored in a directory in the game’s installation path. 5.3.5 Quitting the Game Pre-conditions: None Post-conditions: Game process terminated. Basic Flow: 1. 2. 3. 4. Player opens game menu. Player selects ‘exit game’. Resources are freed. Returns to OS. 5.3.6 Game is Completed Pre-conditions: Game finished. All barrels destroyed. Post-conditions: Credits are shown Returns to main menu Basic Flow: 1. 2. 3. 4. The player reaches the end of the game. End screen(s), movies, etc. are shown. Credits are displayed. Player is returned to the main menu. 5.4 Non-Functional System Requirements Timing: Platform: User Interface: Scalability: Responsiveness: Legal Issues: Should run at 30 frames per second. Linux. GUI Menu and "First Person" 3D Environment. Should be able to run with system requirements from 5.1. Game should respond to user input immediately. Should have legal disclaimer for sharing, copying, modifying. 6. Checklist Have all the viewpoints of all the stakeholders been taken into account? Do the requirements completely specify what the function of the program should be? Are all non-functional requirements (e.g. speed, memory, capacity) specified? If there are requirements imposed by the environment in which the program will be used, are those requirements specified? Do the requirements avoid specifying a solution or a design? Are separate requirements listed separately and not lumped together? Are the requirements clear and precise, not ambiguous? Are the requirements consistent, no contradictions? Are the requirements accompanied by a rationale or justification? Are the requirements given in a consistent format? Are the requirements properly prioritized? How is the notation in the document? Are graphical and mathematical notation used appropriately? Is the technical jargon kept to a minimum? Does the requirements document make good use of scenarios and use cases? Are the requirements realistic? Are the requirements verifiable?
© Copyright 2026 Paperzz