FAST FOOD
Game Design Patterns Course
4 Weeks | Apr. 2021

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

Click to view in a higher resolution

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.

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.

Click to view in a higher resolution

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.

Click to view in a higher resolution

01100010 01101111 01101111 01110000