zooM

2025.5
Group Project

Lead Game Designer
Lead Programmer
Level Design
System/Mechanics
Sound Designer
VFX


UNity             FPS             Boomer Shooter             DOom-like             Fast-Paced             Action-Adventure

Trailer:



Steam Link:

https://store.steampowered.com/app/3592960/ZOOM/


< Back

“DOOM but in a Zoo.”


Just as our title parodies Doom, Zoom celebrates my passion for the boomer-shooter genre while also expressing my ideas on how to subvert its tropes—both aesthetically and mechanically.


Zoom is a fast-paced, playful FPS featuring bouncy physics, agile movement, and strategic gun-and-ability swapping.

Developed in collaboration with Wilby Pham and Cecelia Powell from August 2024 to May 2025, my contributions include level design, programming, system design, VFX, asset creation, and sound design

Game Mechanics



What can I change about the Doom formula?


My main challenge as a game designer is to set this game apart from other titles in the genre while still preserving the core essence of doom-like games.

To understand the genre, I focused on Doom Eternal, where the core appeal is its resource-juggling combat loop. Different execution methods give different resources, so instead of just killing whatever’s closest, players must keep certain enemies alive to extract what they need under pressure.

In this sense, the gameplay of Doom Eternal is essentially a 3D resource-management puzzle, played inside fast, chaotic combat arenas.

I want this in Zoom. 

Scan To Battle


To emphasize on the resource-juggling element of the system, I strip down the gameplay system to two core elements.

Enemy and Player


Enemies are hostile threats, but they also function as valuable resources for the player. To reinforce this dual role, I designed a scanning mechanic that allows players to extract different abilities from enemies and swap between distinct shooting patterns based on what they scan.
There are no other ways to get abilities or ammo.


Scaning Logic
Because scanning is the player’s primary way of gaining resources and abilities, it needs to involve real challenge and skill, rather than being a free reward.
So, in a FPS game, what is the primary way to test out player’s skill?

Aiming.

I removed the traditional ADS (aim-down-sight) system and reassigned the right mouse button to scanning. Now, players must hold right-click and keep their crosshair on a target enemy for a short duration to complete a scan.


To implement this, I use a Raycast to detect enemy colliders with a specific tag. To prevent conflicts with bullet hit registration, I placed the scan collider on a separate mesh from the enemy’s normal hitbox, ensuring clean and accurate detection during scanning.

Change Weapon Functions
Enemy Scriptable Object
Scaning Raycast Function

“Rock, Paper,scissors”


The core philosophy behind the game’s enemy design and movement abilities centers on the idea of counterplay—much like the balanced loop of rock, paper, scissors.

Player Movement


Manually Caculate the Momentum
Early Development
Manually Caculate the Momentum
This might be the most underappreciated yet important part of Zoom.

Initially, I used Unity’s default first-person controller as a blueprint, but early playtests revealed a major issue: the movement felt flat and momentumless. Unity’s CharacterController uses a non-physics-based movement model, so it couldn’t deliver the sense of weight and acceleration we wanted.

To fix this, I rebuilt the system from scratch, creating a fully customizable, momentum-driven character controller tailored specifically to our game.

Movement Abilities

Early Development of Dash
Early Development Of Hover
Early Development of Grapple
At early stage of the development, I spendt great amount of time tuning how each ability feels in game. 
Dash:
As the most fundamental and intuitive ability in Boomer shooter, the coding for dash is very straightforward. Increase player’s speed in a vary short amount of time. To make the dash has more momentum, I also implemented a animation curve.

Hover: 
I identified three key issues, the first being ascent acceleration. In early versions, the upward speed was far too high. According to playtest feedback, the rapid ascent felt jarring and disorienting. To address this, I also implement clear audio and visual cues to warn players when they were about to lose lift and start falling.

Grapple: 
The philosophy behind the grapple is a bit counterintuitive at first, but once you understand it, it makes perfect sense. Much like a dash, the grapple simply accelerates the player toward the selected target, while rendering a rope between the player and that target to communicate the connection visually.
Finshed Version of Movement Abilities

Enemy Mechanic Design


Monkey Attack
Bird Attack
Dophin Attack






Personally, this is where I learned the most. Early in development, I focused almost entirely on player-oriented systems. But after multiple playtests, I realized there wasn’t enough meaningful interaction between the player and the enemies. So, leading up to GDC, I made significant changes to various aspects of enemy behavior and how they respond to the player.
Sketch of Enemy System
Enemy Concept Desig
terrestrial 

I used the terrestrial enemy as the blueprint, relying on Unity’s basic NavMesh Agent to chase the player. To add more variety and make encounters feel less predictable, I introduced a randomized movement speed, ensuring each enemy approaches at slightly different rates and creating more dynamic combat moments.
Early Development of Monkey
Code of Monkey
Early Development of Hippo
Early Development of Dolphin
Aquatic 


Aquatic enemies, such as the Charger (Hippo) and Jumper (Dolphin), are designed for fast, close-range assaults. They quickly close the gap between the player and themselves, creating sudden bursts of pressure and keeping the combat dynamic and unpredictable.
Since Jumpers are still using the Nav Mesh Agent script, which requires enemies to be constantly touch the Nav Mesh. So, I design a function to temporarally turn of the Nav Mesh Agent Script and use rigibody to lauch momentum based attack.
Jump Trajectory of Dolphin
Code of Jumper
Air-Borne


The old version of Air-borne enemies are like Terrestrial enemies who partols and chase after player at a constant level. However, while testing the game, I realize after a while, all birds just gather behind the player. So, I set each birds at a fixed position. 






Early Development of Bird 
Code of Bird 







To add more variety to airborne enemies and increase the challenge in platforming areas, I designed a sniper-type enemy that can inflict heavy damage from long range, forcing players to prioritize and eliminate them first.


Enemy Spawn

To design an efficient and reusable system for the team, I created a spawn point tool. Teammates can simply place it in the scene, select the desired enemy type, and the tool will automatically register all spawn points in the arena while tracking the number of active enemies in real time. This made level setup faster and more organized across the team.

Boss Fight Design


The final boss fight was a collaborative effort between me and my team, who focused primarily on designing the boss loop. Our goal was to create a culminating gameplay sequence that integrates all the mechanics taught in previous levels and tests the player’s mastery of every skill learned throughout the game. I design various different attacks based on player’s movement ability and ultimate.



Initiating the boss encounter. The arena changes to show hazardous areas.

The player must fight other enemies while the boss is invincible.

The boss’s AOE ring wave and linear wave attack.

The boss’s homing missile attack.

The player must fight other enemies while the boss is invincible.

One of the boss’s final phases, the player must close the distance and pet him.

VFX


Since one of the important goals that we want to do is subvert the tropes of boomer shooter games. So, regarding the visual feedbacks of enemies, I want to subvert the bloody and gory effect while keeping the direct visual feedback effect.
So, I drew inspiration from our story:
Animals turned evil by the effect of the evil goo.
The gun that player uses contains good goo which turns animals into normal. So, I decide to design all the effect revolves around the goo idea.
 
Early Development Of Goo Texture
Shader Graph of Goo Texture

Music


I composed original tracks for the game — one for the intro menu and another for the tutorial level.

For the main menu cutscene, I wanted a disco-inspired vibe. Since I’m not professionally trained in music, I collected and remixed sample clips to compose a classic disco-style motif that sets an energetic tone for the game.
Give it a listen:https://soundcloud.com/tyler-501173876/intro
For the tutorial, I used a auto generated background ambient noise to create a more mysterious vibe.




Give it a listen: https://soundcloud.com/tyler-501173876/tutorial