Team Name: Atomic Racers
Description - The goal of the class project is to implement a standalone desktop game. This game is a 2D game cop and robbers game, called RIC Racers, which is closely modeled after the C.A.P online flash game Robbers vs. Cops. The game is a standalone game; that is, players will be able to play from their desktop or laptop computers. The game is a racing game in which the player selects his/her Buggie and chooses a color that determines the difficulty of the car and the difficulty of the level. The player races through different maps of the RIC campus. Each map increases difficulty from easy map to a hard map. Each map has its own change based on the difficulty by added more or less obstacles and power ups. A weather effect will also be added based on the level chosen. For the first level it be a beautiful sunny day. For the second level, it will be night time. For the third level, it will be raining. And finally for the fourth level, it will be snowing. For each difficulty based on the Buggie, the cop will be slower and less aggressive or faster and more aggressive. The objective of the game is to see for how long the player can race through the map while avoiding the campus police and other obstacles. The more damage the buggie receives, the slower it gets. The buggie can be damaged by obstacles such as lamp posts, trash cans, benches, trees, gates, emergency lamps, and the cop car. The buggie's difficulty comes from its handling and speed which is based on the color of the Buggie. There will be different modes in the game; Player vs. the CPU(COP) or Player vs Player. In Player vs. CPU, the player races against the campus police. The police will chase the player until the player's Buggie is fully damaged. In the Player vs. Player mode, the player can race against another human. The first player will drive the Buggie and the second player will be the cop.There will be no time limit for either modes. The game involves concentration and diligence. The strategy of the game is to drive for as long as possible without being caught by the police.
Roles
Edwin: Programmer, Project Manager, Designer
Abhi: Programmer, Testing
Richard: Programmer, Designer, Business Analyst.
Users:
Everyone can play this game.
Nouns:
Game, RIC, User, Cops, Robbers, Racers, Model, Players, Laptops, Computers, Buggie, Color, Levels, Maps, Obstacles, Power ups, Weather, Lamp posts, Trash cans, Benches, Trees, Gates, Emergency lamps, Car, Modes, CPU, Human.
Informal Scenarios:
Scenario 1: New user starts the game for the first time
Current System State: The system state starts off at the title screen that displays the title and is asked to press any key.
Informal Scenario: Emma presses the enter key. Emma is then prompted to click on new user or existing user.
She clicks on new user and is brought to a new screen. Prompts Emma to enter a new username and password. Upon entering her new username and password, Emma is brought to the main menu.
Next Scenario: Emma is then given the choice to start a game, view her stats, go to the options, or view the tutorial.
Scenario 2: Current System State:
The system state starts off at the title screen that displays the title and Rob is asked to press any key.
Informal Scenario: Rob presses the enter key. Rob is then prompted to click on new user or existing user.
He clicks on existing user and is brought to a new screen. Prompts Rob to enter their username and password. Upon entering his username and password, Rob types the wrong password by mistake. An error message prompts Rob that he has entered the wrong password and tells him to re-enter his password. This time Rob enters the right password and upon completion, is brought to the main menu.
Next Scenario: Rob is then given the choice to start a game, view his stats, go to the options, or view the tutorial.
Scenario 3: Current System State: Macy upon a successful login is brought to the main menu.
Informal Scenario: Macy is now in the gameplay screen. A traffic light is displayed in the middle of the screen. The traffic light goes from red to green. Macy starts accelerating at a fast speed. Macy manages to speed by several trees and benches and misses two other Buggies. Halfway in the middle of the quad, a campus police car begins to approach the Buggie. Upon entering and leaving night event tents, the campus police car eventually catches up to her, severely damaging the Buggie. Out of pure nervousness Macy hits an emergency light post and disables her buggie.
Next Scenario: A game over screen is displayed, asking Macy to quit to the main menu or try again.
Training Plan for Application Domain Knowledge:
We searched for 2D cops and robbers flash games on the google search engine. There were some sites that had several games of this type. On the site www.fizizi.com there is a game called robbers vs. cops. Since this game seemed relevant to our general idea of our game, we decided to play it. We came to a conclusion that this game would be a great reference to design of our game. This game covered various aspects of what our game should look like. Road Hunter is another game that we thought would be a good model for our design. This game can be found on the www.gamesforboys.net site. The full link for both games are the following: https://www.fizizi.com/robbers-vs-cops/?utm_source=flora&utm_medium=cpc&utm_campaign=fizizi and https://www.gamesforboys.net/games/racing/armored-car-robbery.html.
Class Diagram Summary
Between Database and Game: There will be two subclasses called Local Database and a Database which will connect the program to the databases. The game will automatically save the player's stats on both the Local Database and the Database Server through these two subclasses. Between DatabaseConnection and Game, the Player can create his/her own account. The Player will be able to get his/her player stats from the Database. The Admin will be able to delete a player or if the player decides to delete his/her own profile they could also do it as well. Between DatabaseConnection and game, the game will update player's stats after a game has finished.
Between game and player:
The game will first start by initializing all the data needed to get the player started. The player will send its login information to the game so the game can retrieve the player's stats from the local or server database. The player's status will be the information that holds the player's score, high score, laps, and games played.
Between player and mode: The player class will contain the user's stats and information about the user who is logged in. This class will also have an association with the mode class because the player can use the chooses method to choose what mode they will want to play in. The mode class will contain information about each mode of the game and change the game according to the choice made.
Between Mode and CPU: Depending on the mode chosen, the mode class will use the determines method to choose whether or not to include the cpu in the game and also what player the cpu will be. The cpu class will contain all the backend algorithms to make it an opponent to the user.
Between Player and Car:
Between player and car, player will be able to setColor for player's car. Between player and car, player will be able to select difficulties.
Between Mode and Cars:
The mode will determine a car after the player has chosen a mode. Based on whether the player chooses a certain mode such as single player or multiplayer, the mode will determine what vehicle the player will play as. If single player mode is chosen, the player's only option will be to be a buggie, otherwise, if multiplayer is chosen, then the player who sends an invite to another player will get to chose what he/she wants to be (buggie or cop). The other player will have no other choice but to be the leftover choice.
Between Player and Level:
Player will choose level of the game. The level will contain a map which will act as a graphical canvas that the player will interact with.
Between Level and Obstacles: Between these two classes there will be a generateObstacles method which will randomly populate the map with various obstacles. The obstacles class will be a super class and it will have 4 subclass which will be specific obstacles. These subclasses are tree, benches, emergency lamp, trash cans. Each of these will contain specific information about how it will interact with the player through the collidesWithObstacle method.
Between Level and PowerUps:
PowerUps will be generated randomly. PowerUps will have subclass such as Computers, Turbos, stealth, immunity and health. The computer's PowerUp will give the player the ability to throw computers from back of car. If a player does manage to hit a cop car, then that cop will take a significant amount of damage. Turbos will provide more acceleration and make the player drive faster. Stealth will invoke invisibility, the opposite player will not be able to see car. For immunity, the car will not be damaged even if it collides with obstacles or the other player. Car will get more health from health features.