A simple Fun Run copycat game with a few changes made using libGDX for the LPOO classes.
Table of Contents |
---|
Setup/Installation Procedure |
Package and class diagram (UML) |
Design Decision |
Design Patterns Used |
Major Dificulties |
Lessons Learned |
Overal Time Spent Developing |
User Manual |
-
- Download the apk here
- Accept permissions.
-
- Download the jar here.
- Run the file from the terminal or by double-clicking it.
-
- Java Development Kit 7+ (JDK);
- [Android Studio] (https://developer.android.com/sdk/index.html) Android Studio already comes packaged with the Android SDK so contrary to Eclipse or Intellij IDEA you do not need to install this component.
Javadoc documentation can be accessed here
Main packages:
- Model: Is the central component of the pattern. It expresses the application's behavior in terms of the problem domain, independent of the user interface. It directly manages the data, logic and rules of the application.
- View: Can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.
- Controller: Accepts input and converts it to commands for the model or view.
Advantages:
- Simultaneous development
- High cohesion
- Low coupling
- Ease of modification
- Multiple views for a model
- Singleton - Restricts the instantiation of many classes (in GameModel and GameController)
- State Pattern - Used in PowerUpModel
- Strategy Pattern - Controls the Menu Appeareance
- Observer Pattern - Implemented by Libgdx with controls listeners (in Controllers class)
- Update Method - Used in EntityModel
- Game Loop - Used in GameController and Controllers (handles input), GameModel (updates game) and GameScreen (renders)
- Mostly trying to integrate the Networking part. We pretty much had to learn by ourselves to create a simple server with a database and connect with it during our game. The result we got it's not perfect but for what we know it's a good start.
- Some problems with making the game equally when played on computer or on Android phone. The big difference is on the pause menu when used on the smartphone it takes a really long time to show.
With this project, we learned that creating a game is very complex and time consuming. We learned many things regarding networking and physics.
We estimate a total of 160 hours (evenly distributed between the two developers).
-
Functionalities:
- Choose to Play a game.
- Choose to Select game map.
- Choose to Exit the game.
-
Functionalities:
- Select map to play.
- Button to return to the main menu.
-
Functionalities:
- This screen appears when the pause button from the Play Screen is pressed.
- In this screen the User is able to leave a running game or continue.
-
Functionalities:
- Play the game using the arrows on the right side to jump or get down.
- The circle on the left side is where the power ups will appear and can be activated.
-
Functionalities:
- Time accomplished when the player reaches the end of the game.
- Return to main menu by pressing the button.