Skip to content

nguyensjsu/fa22-202-three-musketeers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Team Project (fa22-202 Three Musketeers and Journal)


Table of Contents

Topic

We implemented a Space shooter game, with a Back to the Future theme. This Project was designed and implemented using Design Patterns.


Videos

Team Project Demo
Game User Story Ad video


Team Members

Name Student ID XP Core Value Journals
Waqas Kureshy 015421575 Communication Weekly Journal
Vidas Sileikis 016315897 Feedback Weekly Journal

Project Summary

This project is a video game where you play as a space shooter destroying enemy biff's that are coming at you. Get your space ship ready because the enemies are coming and it is up to you to save the world with your mighty space ship that shoots out hoverboards!

For this project we were tasked to take a predesigned game and modify it by implementing Design patterns. This Project was implemented on the Greenfoot platform. The original game we chose to modify was a basic space shooter game that had one player, and enemies were randomly generated. The player functionality included shooting lasers at the enemy, movement in all four directions and a score for every enemy killed was kept.

We pursued this project using the Scrum Methodology, where by practicing its principles we held regular meetings in which we discussed modifications that needed to be implemented to the original codebase, Design pattern choices, what blockers we were facing and working on diagrams and documentation related to the project.

In terms of modifications to the original game we implemented three design patterns which include the Observer pattern for updating player health, Factory method Design pattern for generating enemies and the Observer pattern for updating player score. Our modifications also included changing the game screens, changed players and enemies as well as their functionalities.

Goal

The goal is to create a well-designed video game that implements design patterns & encourages team collaboration through a Scrum setting.


High Level Architecture Diagram

image

The figure shown above is a high level component diagram of the game, details of the individual components are elaborated below.

  • There are three game screens:

    • MyWorld: is the main screen that displays the games logo and features a play button. The playbutton when clicked, opens the main game screen.

    • GameScreen: This is the main game screen arena, it features two player statistics, the score and the player health. The actors interact with each other on this screen.

    • GameOver screen: This screen is displayed when the player dies and the game finishes. On this screen two buttons that direct the user to replay the game or to quit to the main menu are displayed. This screen also displays the players final accumulated score.

  • Player: The player class represents the main entity that the user controls, the user has the ability to move in all 4 directions and it also shoots hoverboards. Our player in the game is depicted by a DeLorean.

  • Health indicator: The player starts with 100 health points, the player looses 25 health points as it comes into contact with the enemy. This indicator was implemented using the Observer pattern.

  • Score indicator: The player gets 25 points for every enemy it kills, and this score is indicated in the score indicator on the top right. This indicator was implemented through the Observer pattern.

  • Biffs (enemies): There are two sort of enemies in the game, an old biff and a young biff. These enemies are generated through the Factory method design matter.

  • Hoverboards: Hoverboards are fired at the enemies by the DeLorean. 25 points are added to the Player's score for a successful hit of the Hoverboard with the Enemy.


Key Feature Summary

The image below is the complete UML Class Diagram of our project.
image

  • The player is represented by a DMC DeLorean, it shoots Hoverboards from a press of a spacebar.

  • Observer Pattern was used for keeping and displaying the score that the player attains.

  • Observer pattern was used for displaying the Player's health. Once the health drops below 100 the game ends.

  • There are two sort of enemies that are depicted by Biffs, if our player comes in contact with the biffs, the player losses health by 25 points. The enemies are generated by the Factory Method.

  • When the Game ends, a Game over screen is displayed, the players accumulated score is shown and the user is given two options:

  • To play again
  • To Quit to Main menu

Design Patterns

Observer Pattern (Health indicator)

image

The Observer pattern was used for displaying the Players Health onto the GameScreen. The player starts with 100 health points, and subsequently looses 25 points by coming in contact with the enemy.In this pattern Player is the Concrete Subject, it implements the HealthSubject Interface and the Health is the Concrete Observer.

Observer Pattern (Score indicator)

image

The Observer pattern was used for displaying the Players accumulated score onto the GameScreen. The player starts with a score of 0, and gets +25 points for shooting down an enemy. In this pattern Player is the Concrete Subject, it implements the HealthSubject Interface and the Health is the Concrete Observer.

Factory Method (Biff/enemy generator)

image

The Factory Method Design pattern was used to generate enemy Biffs. These biffs if they come into contact with the player, cause the player to loose 25 health points. These Biffs/enemies are randomly generated and move from right to left. The components of the pattern are:

  • IBiff Interface: is the Product interface it defines the interface of objects the factory method creates.
  • OldBiff : is the Concrete Product that implements the IBiff interface.
  • YoungBiff : is the Concrete Product that implements the IBiff inerface.
  • BiffCreator: declares the factory method, which returns an object of type Product. This serves as our application and also provides move, kill methods for the biffs.
  • BiffOneFactory: is the Concrete creator it overrides the factory method to return an instance of a Concrete Product.
  • BiffTwoFactory: is the Concrete creator it overrides the factory method to return an instance of a Concrete Product.

UI Wireframes

The UI Wireframes for each Game screen and its respective components are elaborated as follows:

  • Main Screen

image


  • Game Screen

image


  • Game Over Screen

image



Sprint Task Sheet

This task sheet contains information about our tasks and time spent on them for the entire course of the project.

image


Kanban Board

We maintained a Kanban board on GitHub, for logging our tasks for this project.

image


Burndown Chart

image


Resources

Project Task Board

Sprint Task Sheet

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published