Project M

Fitness game for housewives using a trampoline.

This game I created in my second year at Fontys. This was a group project with 5 people lasting 10 weeks.

Concepting
At the very beginning we had to choose a technology which we wanted to use and what our target audience would be.
We were all pretty excited to work with the trampoline and then we quickly found our target audience: people who want to lose weight. Eventually we had to make our target audience smaller and changed it to housewives who want to lose weight.

After this was done it became time to come up with an idea for a game. This took some time, because we had some solid ideas. Eventually we came up with the idea to make some sort of Mario Party like game mixed with Goose Board. The game has a start and an end and you walk over tiles through the level together with other local players. There are special tiles that trigger mini-games or give/take points.

After we pitched this concept to our teachers and classmates we could start building our game.

Reflecting
I believe I came up with a pretty good solution on how we wanted to tackle multiple mini-games, because this solution was easy to expand without changing all other mini-games. I used a GameManagerBase class from which all Game Managers inherited. This is because all the games needed to have a method such as "NextPlayer()" and some other ones. This class also has a list of players and some other variables to track which is the current player.

public abstract class GameManagerBase : MonoBehaviour
public class GameManager : GameManagerBase, IJumpListener

One of our groupmembers came up with a very sweet solution to react to input from the trampoline with an observer model. There is an object which tracks the state of the trampoline and then calls a method on all Listeners.
public class ArduinoController : MonoBehaviour {
    private ArrayList _listeners;
    public void Update() {
    if (Input.GetKeyDown(KeyCode.V))
    this.BigJump();
    if (Input.GetKeyDown(KeyCode.Space))
    this.SmallJump();
                            }
                            
    private void SmallJump() {
    foreach (IJumpListener listener in this._listeners) {
                                    listener.SmallJump();
                                }
                            }
This model I still use in some my own projects, because it is very easy to implement, understandable and works really well.

Poster