Skip to content

amadeuppereira/LPOO1718_T4G6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BCH compliance

Fun Run

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

Setup/Installation Procedure

  • To install the Android app:

    1. Download the apk here
    2. Accept permissions.
  • To install the desktop app (for Windows, Linux and MacOS)

    1. Download the jar here.
    2. Run the file from the terminal or by double-clicking it.
  • Setup the Project on your computer:

    1. Java Development Kit 7+ (JDK);
    2. [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.

Package and class diagram (UML)

Javadoc documentation can be accessed here

uml

Design Decisions

  • Model-View-Controller (MVC)

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

Design Patterns Used

  • 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)

Major Dificulties

  • 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.

Lessons Learned

With this project, we learned that creating a game is very complex and time consuming. We learned many things regarding networking and physics.

Overal Time Spent Developing

We estimate a total of 160 hours (evenly distributed between the two developers).

User Manual

  • Main Menu

    Main Menu

    Functionalities:

    • Choose to Play a game.
    • Choose to Select game map.
    • Choose to Exit the game.
  • Map Select Menu

    Map Select Menu

    Functionalities:

    • Select map to play.
    • Button to return to the main menu.
  • Pause Menu

    Pause 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.
  • Play Screen

    Play Screen

    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.
  • Finish Menu

    Finish Menu

    Functionalities:

    • Time accomplished when the player reaches the end of the game.
    • Return to main menu by pressing the button.

Game Art:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages