This project creates a program for user to play multiple related games.
Wenyue Gu (wg74)
QiaoYi Fang (qf30)
Cady Zhou (zz160)
Guangyu Feng (gf55)
Start Date: March 31, 2020 Finish Date: April 28, 2020
Hours Spent: >= 100hr
- write model API and implement the model
- write the main class and controller methods that makes the game run
- write data module to ensure the deliverance of data to model during initialization
- write controller API and implement the controller
- write menu UI to connect multiple games
- implement menu related features such as user log in, background color change, etc
- Handle data storage and management
- Create example data files
- Implemented front-end
- Worked with control and data management on ensuring the deliverance of front-end in the overall application
Main class: src/ooga/game/GameMain.java
Data files needed: all json files in /data and properties files in resources
Features implemented:
- Dark Mode that allows the user to change the background to a dark color
- Different background colors that can be selected from a dropdown panel
- Saves the player's progress on a game on quit
- Load and store last saved game progress
- Artificial Players that automatically attack the player
- Allows two players to play one game at the same time
- Allows user to log in and save scores
- Assumptions or Simplifications:
- for two player cooperation game, if one player dies the game is over with player death (fail) screen
- only loads last saved game. If a new game is played and saved it over writes the information for the last game and user would not be able to retrieve it
Interesting data files: - playeri.json files contains information on the type of game, id of player, keymap for player to move - user.properties saves the username and password combination of all signed up users - user_(username).properties save the user name, high score, and last score of a user
Known Bugs: - the open gl window refuses to run on a mac computer - If one opens a game, close it, opens another game multiple times, javafx freezes and stops responsing. We suspect it is a problem with a new Game controller and thus a new timer created each time the user reopens a game window, but was not able to fix the problem. - sprinting animation extremely slow / not fully implemented
- Extra credit:
- A partially completed 3D game
A very massive project where each person is responsible for implementing their own API; not a single individual is able to fully know the internal logic of everyone else's code. Large amount of communication is required to integrate.