CSCI 3308 Project Mafia Game
Who:
Camille Owens: caow7208
Soo Park: soorin1993
Jake Mitchell: jakeMitchell1419
Alex Sheehan: ninjaalex888
Qi Pei: qipe3398
Title:
Mafia Game
Repo Organizion:
This repo is organzied just as an Android Studio App project. With a few extra files on the root necessary to our project
(Project Trackers, Presentation, etc)
Building/Running/Deployment:
First fork this repository and clone it locally. Then if the user does not have access to an android phone, the app can be run
on the emulator which can be accessed through Android Studio. Open the Mafia Game project in Android Studio by navigating to
the cloned local directory. Then go to Tools -> Android -> AVD Manager-> Create Virtual Device. From there the user can choose
a device that he or she wants to run the app on. Once a device has been created, click the “Run App” button to select a
device. Click the button next to ”Launch Emulator” from where the user can select the device that he or she wants to run the
app on. Once a device has been chosen, click OK and an emulator will be launched where the app can be run on.
Description:
Android app created for the popular party game Mafia with a secret twist.
All information needed to understand the game itself can be found on wikipedia
at https://en.wikipedia.org/wiki/Mafia_(party_game)
Vision Statement:
Give users enjoyable and accurate experience of the Mafia Game
Motivation:
We all enjoy the Mafia game and we would like to create an app for it that will no require the full body of 8 people that is normally a pre requiste for the game
Risks:
- No app development experience for most members
- No extensive knowledge of Java
- No prior working experience between the team members
- We all have different schedules therefore a aggreeable meeting time may be hard to come up with
- Not all of us have Android phones and will not be able to deploy the product on to the final product
Mitigation:
Android SDK is not hard to learn and a simple Android app is not hard to do
Extensive documentation available regarding Android app development
Requirements:
User Requirements
------------------------------------------------------------------
ID | Size | Requirements
------------------------------------------------------------------
1 | 3 | As a user, I want to be able to navigate menus so I can play the game
2 | 2 | As a user, I want to be able to lock in my turn/advance day/night cycle
3 | 5 | As a user, I want to be able to perform game actions, so the game can progress
4 | 8 | As a user, I want to be able to assume any role in the game
5 | 8 | As a user, I want to see a clean and infomative UI, so I know the status of the game
------------------------------------------------------------------
Functional Requirements
------------------------------------------------------------------
ID | Size | Requirements
------------------------------------------------------------------
6 | 2 | The app is able to keep track of day/night cycles with length assigned by userinput
7 | 2 | The app keeps track of each players action and updates accordingly
8 | 10 | The app has an unpredictable AI, so the games aren't repetitive
9 | 2 | The app can alter the punishments to those hit by mafia or removed during day, to allow for a
wider range of players
------------------------------------------------------------------
Non-Functional Requirements
------------------------------------------------------------------
ID | Size | Requirements
------------------------------------------------------------------
10 | 2 | The app has working buttons and menus
11 | 5 | The AI performs their actions in a timely fashion
12 | 3 | The app can interact with the user notifying of errors as well as game text
13 | 8 | The app has visual representations of the game as well as text explaining
14 | 3 | The app doesn't crash and runs without bugs
------------------------------------------------------------------
Methodology:
We plan on using a stretched version of agile or an iterative version of waterfall. The time periods we will be working
in is around a week. Meeting times in class and once a week outside will give our progess its structure. Each time we meet
a goal will be set for each person and an overall goal set. This will be plotted out in the Trello and through github issues.
Every time we meet the scrum meeting approach will be taken and difficulties assigned using the agile numbering scheme. Due
to not being able to meet every day agile is not appropriate, but by extending the time scale a bit it will work well.