This SRS describes the function and performance requirements allocated to the When Animals Attack game system. The WAA system is a self contained game with artificial intelligence backed computer players. The artificial intelligence will consist of machine learning and human designed heuristics.
When Animals Attack
Functionality:
Human vs. Human (Hot Seat)
Human vs. Machine
Varying Levels of Difficulty
Original Game (Different)
Limitations:
No Network Play
Original Game (Possible Overwhelming Strategy)
AI – Artificial Intelligence – Computer generated strategy for solving non-predetermined problems. Game strategy in this case.
API – Application Program Interface
GUI – Graphical User Interface
IDE – Integrated Developer Environment
ML – Machine Learning – Artificial Intelligence based on patterns observed in large databases of played games.
VS.NET – Visual Studio dot Net API/IDE
WAA – When Animals Attack – Project
Russell and Norvig. Artificial Intelligence, 2nd Edition Prentice Hall, 2003
This document will give the software client and developer a “software brief” of the project that is being undertaken. It includes a functional and quality description of the product to not only help guide the development, but also helps to determine when the software is completed.
Persona 1 – Joe Sixpack – Tired from the long day at the construction yard. Joe retires to his residency for a beer and a game of WAA. Joe wants a challenging game that can be played in solitude but on occasion with his wife, Betty Sixpack. After a particularly hard day he often sets the difficulty to easy to raise his self esteem. Joe is tired of playing the same old games and enjoys the originality of WAA.
Persona 2 – Steven Spielberg (No Relation) – Aspiring computer guru, 16 year old Steven has read several books on AI and wishes to test this new games capabilities. He discovers new strategies to beat the machine but finds they do not work for long. The game seems to be adapting to his play.
Standalone Project
GUI Based in Windows
Mouse / Keyboard Interaction
Human vs. Human Games (Hot Seat)
Human vs. Machine Games
Varying Levels of Difficulty
Original Game
Random Game Boards
Game Saving
Game Restoring
Installation Files
Game Files (Game State)
The Product Will Only Work in Windows Operating Systems
The Product Will Require the .NET Framework
The Product Will Not be Networked
Joe Sixpack
Setting: Its about 10pm in a trailor park in Mississippi. A small yellow cat screeches outside Joe's Window. Joe is stressed. He is in front of a small slow computer. Its monitor is as yellow as the cat. It also screeches. Joe is a sad sad man.
Screen: Joe's screen is filled by the only joy in his life, WAA. On the left and bottom of the screen are menus and information panels. On the right is large roundish playing board. The board is made of hexagons with various textures to represent environments found around the world. Joe feels a connection to the game, for he wishes to escape the mundane construction world he dwells in. The games simple colors and playful sounds remind him of his teenage years when he could still dream of a happy life. He moves the mouse in a graceful arc to summon The Mighty Tiger of the jungle. He knows its prowess as fighting cat will be able to overcome the evil monkeys of the computer.
Data: Joe interacts with the data using a mouse / keyboard combination. He is able to use sound and picture feedback to confirm his data manipulation and receive new data.
Steven Spielberg (No Relation)
Setting: Another lonely Saturday night has fallen upon the shy acne laden youngster. While browsing the web he stubbles across his second love AI. His first love being Magic the Gathering card game. His is quickly intrigued by the challenge of defeating a machine that adapts to his play. At first he does quite well, but as the minutes stretch into hours he begins to find himself destroyed both mentally and emotionally by the overwhelming prowess of the machine learning design of WAA.
Screen: Steven trying to maximize the performance of his graphics card has reduced his display colors to monochrome not realizing that the game is only drawn once. He has also turned off his sound so as to not awake his parents sleeping overhead. His grades have slipped slightly since he got a computer in his room, and his parents are somewhat concerned about his social interaction – or lack there of.
Data: Steven interacts with the data using a mouse / keyboard combination. He is able to use sound and picture feedback to confirm his data manipulation and receive new data.
N/A
Human vs. Human Games (Hot Seat)
Basic Game Rules Enforced in Play
Basic GUI for playing
Basic Settings
Human vs. Machine Games
Machine AI Heuristics
Machine Learned Heuristics
Varying Levels of Difficulty
Ability to Easily Change the Depth / Breadth of Algorithms
Original Game
Game Rules
Game Board
Game Pieces
Random Game Boards
Algorithm for Generating Boards that are not unplayable or heavily weighted.
Game Saving
Serialization of Classes
Good Class Hierarchy
Game Restoring
Serialization of Classes
Good Class Hierarchy
purpose: a description of the functional requirement and its reason(s)
inputs: which inputs; in what form/format will 8inputs arrive; from what sources input will be derived, legal domains of each input element
processing: describes the outcome rather than the implementation; including any validity checks on the data exact timing of each operation (if needed), how to handle unexpected or abnormal situations
outputs: the form, shape, destination, and volume of the output; output timing; range of parameters in the output; unit measure of the output; process for handling error messages produced as outputs
purpose: Let humans play the game without computer competition
inputs: Human uses mouse/keyboard to convey where they will move. The domains include which moves are legal and which are not.
processing: Humans play the game using the computer as a medium rather than an opponent.
outputs: The screen (board / menus) will reflect what moves the user makes. It will reflect the state of the game.
purpose: Have humans compete with a machine.
inputs: Humans make moves using the mouse / keyboard. The machine makes moves based on a database of previous moves.
processing: The human experiences the game without the need for another player. The game learns from the human.
outputs: The screen (board / menus) will reflect what moves the user makes. It will reflect the state of the game.
purpose: Have users determine the ability of the machine.
inputs: A few small levels of difficulty selected by the user through the GUI.
processing: The machine will play better or worse depending on the setting.
outputs: The setting will be reflected in the game.
purpose: Have variety in games. Have the machine not conform to one board.
inputs: NA
processing: When a new game is created or a new board is chosen the game draws a new random board.
outputs: The game board will show the new random board.
purpose: Have the user save games.
inputs: Mouse or keyboard will be used to inform the computer of a user desire to save the game.
processing: The game will have a save dialog and the user will be able to save a file.
outputs: The file will be produced in the chosen area.
Our current plan will only allow two players in any given instance. We will also need to limit the amount of time and resources that the AI agent can take while making a move. We will have to experiment with the appropriate limits to enforce on the agent. The size of the files will largely depend on the amount of data we collect from the machine learning algorithm.
Security: There is no real need for security since the game will not be networked. If they want to break their game... let them.
Availability: Yes it will work on Windows machines with the .NET framework installed.
Maintainability: The source code should be easily understood by the average software developer. We will have periodic source code peer reviews in order to insure that we meet this requirement.
None at this time.