top of page
gamelogo.png

Culinary Coalition

ROLE(S)

General Programmer

Gameplay, Systems, Tools

ELEVATOR PITCH

It’s Halloween night, and you’ve gone trick or treating in your brand new chef costume! Taken prisoner as a real chef by a bunch of hungry aliens, you find yourself in a space arena. Now you must dash, dodge and deep fry your way through a deadly cooking game show.

Project Duration

~8 Months

Engine

Unity (C#)

PLATFORM

PC (Itch.io)

LINK

itch-io-icon-2048x2048-i6hzclad.png
image.png
culinary_cover.png

Project Background

Culinary Coalition was the second team project that I worked on for my studies at Falmouth University. The project spanned roughly 8 months and the team was put together mostly randomly by the university, so this project was our first time working together.

Our goal for this project was to demonstrate our creativity by attempting to merge game mechanics from two game genres that you wouldn't expect to see blended and to do so in a fun and intuitive way. Our game was showcased at the Falmouth Uni Game EXPO in May 2021 and in an arcade cabinet at the G7 Summit in 2021. We were runners up in the "Best Second Year Game" award at the Uni Game EXPO, voted on by games academy staff and visitors.

Gameplay Summary

A top-down bullet hell cooking show... In space! With aliens!
 

Dash, dodge and deep fry your way through a deadly cooking game show whilst you meet the inhabitants of the different planets, and most importantly all of the wacky food critics!

If you want to find your way back home, you must please each of the judges within the coalition by feeding them all with flavourful meals.

 

To accomplish this, you'll start by grabbing ingredients from amongst the many waves of bullets flying directly at you! Just be sure to avoid grabbing rotten ingredients or you'll have to find a way to dispose of them... 

image_2025-05-12_031144280.png

Object Pooling and Tools

This project was my first time working with large amounts of instantiated objects within a single level. This posed an issue to performance as you would expect when creating 100s of bullets, deleting them and then repeating this cycle until the player has completed the level. Performance issues such as periods of FPS drops when bullets are instantiated/destroyed or issues with memory where objects aren't cleaned up completely/efficiently.

Therefore when we first starting seeing signs of these issues I did research into how these sorts of issues are resolved within the industry, which is where I first learnt about Object Pooling.

I implemented this into our project by first making a base class for "bullets" in our game that all bullet types and ingredients derive from. I then gave the base class functionality to "Initiate" and "Reset", essentially allowing for bullets to be re-used after they've been used.

I then used Unity's "Scriptable Objects" to make customisable sets of data using exposed variables for speed, damage, size, etc. This allows for our design team to easily experiment and iterate on new bullet types with ease. It also allows for the "Initiate" functionality of the base bullet class to update the values of each re-used bullet object when needed to match the required bullet for each pattern.

This means that I was able to instantiate 100s of these base bullets at the same time as the level loading, thereby removing any performance hit during gameplay. Then whenever a bullet is needed, the object pooler is called, which will then pull the next available bullet from it's "queue" and "Initiate" it with the desired bullet data.

Through this method, every bullet used during gameplay is re-used over and over again, rather than being destroyed and re-instantiated, saving on performance with no impact to functionality.

bottom of page