Ruby Rush is a open world game where players find themselves running from slimes and avoiding elements as they search for rubies.
- Run Main.java
- Follow the Menu interface, using mouse and keyboard inputs, to set a username that will be used to get your saved game, and begin.
- Collect Rubies and don't get hit by monsters by using the WASD keys.
- Game elements will teleport at random every couple of seconds.
- Survive as long as you can.
Requirement 1: We used Java Graphics to draw all of our user interfaces, which has similar methods to Processing.org. Then it will be drawn in a JPanel.
Requirement 2: We used asynchronous processing to save the game each time each time the player encounters a ruby.
Requirement 3: The gamestate is stored as a JSON file, containing two key value pairs of gamePanelData and playerData. The value for gamePanelData is another JSONObject consisting of 3 arrays.
Requirement 4: We created a custom data structure based on a network of nodes to utilize instead of the int-map array in the PathFinder class. This structure stores references to all adjacent nodes (up, down, left, and right) of the current node, making it more efficient for accessing adjacent nodes. The focus of this structure is on efficiency, and at present is only being utilized in Pathfinder where it serves its purpose quite good.
Requirement 5: We have added javadoc, comments and provided a UML diagram.
Abhishek
- Player, Entity, UI, KeyHandler, UI, Life and Miscellaneous
Amrit
- Villager, Monster, Node, Pathfinder, ElementHandler and testing
Nathan
- GamePanel, TileManager, Tile classes, refactoring, design
Simrat
- Objects package, CollisionDetector, Element, ElementHandler, sound and testing
Greg Song
- GameLauncher, SaveState, SaveStateHandler, Menu package