top of page

FAST FOOD

Game Design Patterns Course
4 Weeks | Apr. 2021

Capture.PNG

DESCRIPTION

    Fast Food is an infinite runner which was designed to encourage healthy eating habits. I lead the project in schedule, design, and programming in a team of 4.

​

    My goal was to deliver a quality project with strong internal structure. I was challenged by ensuring every system possible was structured using one of the OOP design patterns..

​

    In addition, this was my first project that had access to multiple playtesters during development. This provided valuable playtest data and helped decide how to iterate to ensure its desired theme was met.

RESPONSIBILITIES

  • Implemented infinite scrolling environment with changing theme.

  • Implemented player controller.

  • Integrated art from asset packs.

  • Implemented tutorial.

  • Implemented UI.

  • Hosted playtest session.

  • Maintained team GitHub.

  • Gameplay balance.

Programming Skills and Practices

  • State machines.

  • Factory pattern.

  • Object pooling.

  • Observer pattern.

  • Resolving GitHub merges and conflicts.

  • Integrating animation state diagram.

Design Skills and Practices

  • Brainstorming with restrictions.

  • Preparing playtest questionnaires.

  • Hosting playtests.

  • Analyzing playtest results and forming a plan.

Programming

Player State Machine

  • With the character controller mostly following a rail system, it was a clear choice to implement it with a state machine.

  • This state machine, simple as it may be, was useful in ensuring each active state remained isolated and minimized errors from state transitions.

  • This state diagram made it much easier to integrate animations as well as the animator state machine was nearly identical.

State Diagram.PNG

Click to view in a higher resolution

Background Manager.PNG

Click to view in a higher resolution

Theme Observer

  • To add some polish to the infinite runner, we made the theme of background props change through the course of the game.

  • This was implemented using the Subscriber pattern. Using this, we were able easily implement a set of background props that would swap their assets when the manager said to.

  • Aside from keeping code isolated, it was easy to add additional subscribers. Later, we tied the obstacles to the manager as well so they would stay on theme as well.

Background Pooling

  • This infinite runner was implemented by scrolling the background around the player backwards rather than moving the player around.

  • Performance was ensured by using the pooling pattern on not only the road but the background props as well. This minimized the objects spawned and despawned at runtime.

  • Once the road objects and props were behind the player camera, they would be pooled and teleported to the front of the road outside of the player's view.
Road Pooler.PNG

Click to view in a higher resolution

Design

Healthy v Junk

  • Our design requirement for this game was to encourage healthy eating, but we also wanted to mimic the dilemma between the two options as it's less black and white than it seems.

  • Our tools available was an energy and health bar. The game would end if either of those resources reached 0.

  • The dilemma was how people turn to junk food because they don't have time or energy to cook healthier alternatives. That idea led us to our food system. While junk food does hurt the score and health, it offers more energy and thus isn't strictly bad to have.

  • In addition, as healthy food offered health, it helped replicate the mindset that junk food isn't terrible if done in moderation.

Sketch.PNG

Click to view in a higher resolution

Controls.PNG

Click to view in a higher resolution

Compounding Junk

  • In playtesting, it was found that junk food was too valuable as the damage to health was easily subverted with the amount that healthy food returned.

  • Aside from balancing numbers, I wanted to hammer home the idea that rapid consumption of junk food was a snowball effect, so a new system was added.
  • In this, continually eating junk food would begin to compound the damage. This negative feedback loop would attempt to deter the player from continually binging junk food, and instead focus more on finding healthier foods.

Theming

  • Another observation from the playtest session was we found player's weren't getting the intended emotions desired.

  • This was helped by updating some systems to tie into our core theme.

  • An example was our score counter. To better simulate the player is out on a jog, we renamed the score to calories burnt. This tied in well with the idea that eating junk food  actively set the 'score' back.

Capture.PNG

Click to view in a higher resolution

Logo_edited.png

 

01100010 01101111 01101111 01110000

bottom of page