Skip to content

An object-oriented Gameboy Advance sprite engine concept

License

Notifications You must be signed in to change notification settings

J3G0/gba-sprite-engine

 
 

Repository files navigation

The Unfair Game (T.U.G.)(by Sebastiaan and Jeffrey)

Assignment for Software design C/C++ and QT

This project is part of the Software design C/C++ and QT class. It is lectured by Wouter Groeneveld. The goal of this project is to make a GBA game in C++. To do so we start from the gba-sprite-engine.

Minimum requirements

Click to see the minimum requirements
  • Code on GitHub with an MIT LICENSE

  • Start from gba-sprite-engine

  • If used, mention sources.

  • It has to compile.

  • README with a short functional description of the game (What you are reading now).

  • Sketch of the domain model with explanatory text.

  • Timespent.csv with separated registered time spent in hours.

T.U.G.

The Unfair Game is a game based on Unfair Mario. The main character his name is Gerard and his evil counterpart is the Saaientist (Scientist). The player takes control of Gerard and has to find his way through the complex web that makes T.U.G. what it is, unfair. When you finally found your way you will be met by the Saaientist (Dutch word joke as name - means as much as boring dude). He is not what his name depicts of him. Will you defeat him?

Click to see Gerard
Click to see the Saaientist
Click to see the GameFlow
Click to see more about T.U.G. When first loading the game, a start scene shows the current amount of deaths (yes, it has a counter and you will find out why) and instruction on how to load the next scene. Furthermore, there are some encouraging messages after every death.

When pressing start, the next scene is loaded. In this scene poor Gerard has to survive the evil things that spawn trying to kill Gerard. Besides trying to, obstacles have to be conquered. Only when the flag is reached you'll be able to continue the quest. In this first scene you are calmed down by a MineCraft inspired song: link
Gif

If you somehow make it into the final boss fight, be prepared for a fight! While trying to dodge the massive amount of testtubes and/or fireballs he throws at you, pressing B will spawn a bomb. This bomb has to explode while the scientist is near it in order to damage him!
The bossfight is accompanied by a fitting high-paced song: link
Bossfight

Domain model

The domain model shows how The Unfair Game (T.U.G.) was envisioned to work. There are a few different scenes that are used in T.U.G, such as StartScene, UnfairScene, BossScene and EndScene. StartScene inherits from Scene and displays the background and text. The EndScene inherits from StartScene because they both share the game background and data. The UnfairScene and BossScene inherit from GenericScene. In the GenericScene all the calculations for velocity and collision detection, sprite animations, ... for Gerard are calculated. The calculations for the Saaientist are done in the BossScene because the UnfairScene has no Saaientist.

A rendered object is what we call a Renderable, which is an Object with a sprite with sprite data. A Killable inherits from Renderable but has an extra damage parameter, so when a killable hits Gerard or the Saaientist it can be damaged.

Click to see the Domain Model

Authors

  • Wouter Groeneveld - Lecturer - GitHub
  • Jeffrey Gorissen - Student - GitHub
  • Sebastiaan Vanspauwen - Student - GitHub

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Piskel for providing a great tool to create our own sprites
  • Thanks to the people who made the music and sound effects that are used in our game. Links are in the respectable .h files in the SOUND folder.

Known bugs (Features)

Sometimes a sprite isn't deleted correctly, which introduces a flicker. such as this:
Flicker

Other bugs might occur;
Hanging underneath a block (by jumping);
Flicker
Falling health bar;
Flicker

About

An object-oriented Gameboy Advance sprite engine concept

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.0%
  • Other 1.0%