UNITY FPS PROTOTYPE

Unity | C# | Team Project — Project & Portfolio II

Wave-based FPS prototype — gameplay systems & data-driven weapon design

GAMEPLAY SYSTEMS SHOWCASE

CHARACTER MECHANICS

This project marked my first implementation of a 3D Character Controller. I engineered a modular movement system that handles gravity, sprinting modifiers, and jump physics.

I also implemented a flexible Buff/Debuff System. The controller tracks active status effects (like Speed Boosts or Damage Over Time), applying them via Coroutines to ensure temporary effects expire correctly without polluting the `Update` loop.

Wave-based Unity FPS prototype gameplay

GAME STATE ARCHITECTURE

To manage the game loop, I built a Singleton GameManager that serves as the central hub for the Wave System and UI updates.

The manager tracks the "Goal Count" (enemies remaining) and handles the transition between waves. It dynamically updates the HUD—syncing Health Bars, Ammo Counters, and Wave Numbers—ensuring the player always has accurate feedback on the game state.

DATA-DRIVEN DESIGN

To allow our designers to balance weapons without editing code, I implemented ScriptableObjects for the gun system (`gunStats`).

This architecture separated the data (Damage, Fire Rate, Range, Particle Effects) from the logic. It allowed the team to create multiple weapon variations (Pistol, Rifle, Sniper) simply by creating new assets in the Project window, streamlining the collaboration process.