top of page

 - Quarry Kickin' - 

Tools:

81nwobjayd181.webp
Miro_logo.png
Octicons-mark-github.svg.png

Duration:
8 months

Team Size:
6

QK_MainCover.png

Party Game

Physics-Based

Pvp

Unity

C#

Project Description:
A 2v2 party game where teams compete to collect the most gems over three chaotic rounds of play. Players can place bombs and kick around a variety of objects in the quarry, all as a means to come out on top. Every moving part in the game interacts with the others, further driving the chaos, emergence, and replayability.

My Role:
I was one of the main programmers of the project while taking on game design with the rest of the team. I was responsible for implementing many of the game systems/mechanics. I prioritized prototyping quickly, creating an efficient structure in-engine for the team, game balancing, and pushing to create meaningful interactions.

 Working in-Engine 

Engine Workflow
Being responsible for the project's state in the engine, I shifted my focus based on the game's needs to ensure we prioritized the right elements, adapting between:
​
1. Quick prototyping:
To allow the team to validate any design concepts and test potential ideas
​
2. Iterating & Polishing:
To bring each element to a usable state that players can understand/engage with
​
3. Balancing: 
Addressing any elements that needed tweaking & experimenting with different values to keep interactions meaningful
​
4. Optimizing:​
To ensure that while the project evolved, so did code, updating exisitng scripts and cutting obsolete processes to keep the project stable and without error.

QK_MinecartInteractions.gif

Early Prototype of the Minecart & its interactions with the environment

BalanceChangesDocument.png

Gameplay Balancing Document, to track and evaluate what has/could change and why

DrillInteractions-ezgif.com-crop.gif

Early prototype of the Drill powerup & all of its possible interactions

Maximizing Discovery & Interaction Space
To maximize the possibilities within such a small scope, a big priority of mine was to find as many engaging interactions as I could. By using the existing elements of force-related physics and destruction from the core loop, I was able to get more out of those existing scripts in other areas. This allowed me to not only create more interactions that led to emergent scenarios, but also allowed for a very efficient development process.
​

Some Key Systems​
I was involved with the development of almost every system within this game, whether from scripting something initially, adding/changing logic, or assisting others on the team. A few of the major ones that I was heavily involved in included:
​

PlayKilledByBomb_Gif.gif
Screenshot 2025-09-24 171224.png

Bomb & Gem Interactions

The two most used objects in the game:
Bombs: Has a cook time and explosion radius, detecting what to destroy and what to push away.

Gems: Can be lodged and released from terrain, react to physics elements, can be picked up by players, and scatter when dropped.

QK_JackHammerEmerge.gif

Powerups

Powerful tools to get the upper hand, intentionally designed for offense as defending a repository is naturally easier to accomplish:
Jackhammer: Temporarily allows the player to traverse underground, exploding everything around it when emerging. Designed for mobility and combat.
​
Drill (seen further up): Increases in speed while decreasing in control and explodes on impact, designed for mobility and combat.

QK_Repository.gif

Repository

The sole way to obtain points towards the objective:
Nodes: Repository randomly emerges/leaves nodes within the level for a fixed duration.
​
States: Either empty, depositing for a team, contested, or inactive.
​
Progress: Standing within the radius fills the team's progress unless contested. Once progress is complete, the gems held within the radius are rewarded as points
 

QK_PoweredMinecart.gif

Level Gimmicks

Hazardous elements that create unique environments & interactions within them:
Powered Cart: Follows a spline, kills players, destroys terrain/large gems.
 
Kickable Cart: Follows similar logic to the powered one, but moves by reacting to forces (kicks, bombs, etc.)
​
Pit: Bottomless holes that players can be kicked into and lose their gems.

 In-Engine Structure / Tools 

Level Generation, Creation, & Structure
I created the following systems to help both my team and I to create consistent and organized levels:
​
1. Tile Map System: A series of different tile types that follow rules based on their neighbouring tiles. It uses a Perlin Noise algorithm to create natural, flowing terrain with a threshold to automatically create cave pockets and void tiles to keep controlled spaces from being caved-in. â€‹â€‹â€‹â€‹

PerlinTerrainShowcase.gif.gif

Example of terrain generation using Perlin Noise

Tilemap_Placement.png
Screenshot 2025-12-09 105813.png

Grid view & all tile types

​​​2. Random Level Selection: A full round of play consists of 3 levels that get more complex as you go. To encourage replayability and give players more variety to explore, I created a system that randomizes which levels are chosen based on which stage the game is in. This creates anticipation for what levels appear next and allows for the expansion of more levels to be easily added.​​​​​​

Scriptable object holds a list of the possible levels for the current round

Screenshot 2025-11-27 132917.png
QK_LevelList.png
QK_LevelData.png

Then the chosen levels data is used accordigly

​
3. Intermission Sequence: I wanted to keep the continuity of the game flowing while still giving the players a moment to pause and converse between each round. To do this, I created the functionality of an intermission sequence that includes: gem piles counting up each team's score, skydiving functionality to bridge the gap between rounds without fully halting player input, and an upcoming level tracker to prepare players for what's to come. Also, it's a nice narrative touch conveying that players are going deeper into the quarry!

QK_Intermission.gif

 Personal Takeaways 

  • Experience bringing a project from prototype to beta, adapting through our pipeline, and handling a project of this size

​

  • Furthering my experience in game design, focusing heavily on systems and player interactions. ​​​​

​

  • Furthered my capabilities and confidence in handling responsibilities in the engine, scripting knowledge, and collaboration with other disciplines.

​

  • Gained experience in collaborating with a team for a longer-term development of 8 months.

QK_LevelupTeamPic.png

Team Picture at Toronto's

'Level Up Showcase'

Try the Demo!

Steam Page!

Check out the

bottom of page