
Colossal
Is a Titanfall meets Halo; multiplayer first person arena movement shooter with giant pilotable mechs!
Built in the Unity 3D Engine
Programmed in C# using Visual Studio
3D Models created using Blender
Sprites hand drawn in Adobe Photoshop
Technologies Used
Photon PUN 2 (Multiplayer Networking Solution)
Various low poly art assets by Synty Studios
Mech Pack
Nature Pack
Sci Fi City Pack
FPS Animation Framework - KINEMATION
Third Party Assets Used
Jump To Section
Design & Gameplay
Code
Design Goals
Fluid, Skill-Based Movement: The movement system is designed to reward player skill, with mechanics like wallrunning and bunnyhopping that are easy to use but hard to master.
Dynamic, Engaging Combat: By combining arena shooter elements with power-up pickups and loot drops, I want to create fast-paced, engaging battles that encourage exploration, strategic positioning, and constant action.
Team-Oriented Gameplay: The down state and revival system encourages teamwork, ensuring that every player’s role is meaningful while allowing for strategic comebacks.
Aggressive Play with Tactical Depth: Every game mechanic—from movement to combat to loot pickups—is designed to promote aggressive play while providing the tactical / Mechanical depth necessary to keep the game interesting for both casual and competitive players.
Fun Gameplay: Fundamentally, the game needs to be fun. To emphasize this goal, I’m incorporating systems like the “Lootsplosion” from Borderlands. When a player dies, their weapons, items, and abilities explode outward onto the ground, creating colorful, glowing loot drops. This not only rewards players with valuable items but also makes the death of a player feel impactful—players become their own loot box. This design adds an element of excitement and keeps the action moving, as players scramble to gather dropped gear and power-ups, reinforcing a fun, chaotic gameplay loop.
Why I Started This Project
I got into game development because no modern FPS titles were scratching my movement shooter itch. Tired of the same-old options, I decided to create my own. My journey started with a passion for building content in other people’s games—whether making levels in Little Big Planet, crafting Minecraft hub worlds, or modding levels for Titanfall 2. With this background, game development felt like a natural next step. Little did I know, it would lead me down a rewarding rabbit hole. After almost 5 years of various projects, I finally felt ready to create my own movement shooter—and that's how Colossal was born. Drawing inspiration from my favorite franchises like Titanfall and Halo, I’m putting my own spin on the genre to create a fast-paced, dynamic arena shooter.
Project Breakdown
Advanced Momentum-Based Movement
Wallrunning, Sliding, and Bunnyhopping for fluid movement.
Quality-of-Life Features like Coyote Time and Jump Buffering to smooth out advanced maneuvers.
Arena Shooter-Inspired Combat
Dynamic Level Elements to keep gameplay fresh / Unique between levels and encourage different strategies.
Item and Power Weapon Pickups that reward exploration and strategic combat.
Hero Shooter-Inspired Mechanics
Mechs with class-based loadouts, adding variety to gameplay.
Down State System where teammates can revive each other, adding depth to team dynamics.
Movement System Design
The movement system prioritizes fluid, fast-paced gameplay that rewards player skill and adaptability.
Pilot Movement: Inspired by games like Titanfall and Apex Legends, the pilot features classic mechanics like wallrunning, sprinting, sliding, and jumping. The system is tuned for fluid transitions, with features like coyote time and jump buffering to help players execute advanced moves even with imperfect timing. The goal is to be easy to play but hard to master, allowing for responsive, skill-based actions.
Mech Movement: Mechs focus on heavy mobility with sliding and mantling, but lack wallrunning and jumping, making them slower and more grounded. This creates a distinct contrast between pilot and mech movement, allowing for quick role transitions based on the situation.
Design Goals
The movement system encourages aggressive play, promoting fluidity and environmental interaction whether players are on foot or in a mech, allowing for seamless transitions between the two and rewarding skillful navigation of the battlefield.
Weapon, Item, and Ability Pickup System
The pickup system enhances the fast-paced, action-oriented gameplay of arena shooters, adding layers of strategy and dynamic combat.
Weapons: A mix of projectile, hitscan, and melee options, each with unique range, damage, and fire rate. Limited ammo forces players to cycle weapons, encouraging varied combat strategies and adaptability.
Items: Limited pickups like health packs and power-ups offer quick recoveries or temporary buffs. Their scarcity creates tension, encouraging players to make strategic decisions on when and where to use them.
Abilities: Power-ups like speed boosts, deployable shields, and damage boosts enhance movement and offense. Strategically placed, they promote aggressive play, encouraging players to take risks for high-reward boosts.
Design Goals
The system fosters tactical decision-making and aggressive play, with pickups acting as incentives for players to move, adapt, and fight for mechanical advantages, preventing passive gameplay and encouraging constant engagement.
Mech Design Overview
The mech class combines powerful combat with tactical decision-making, encouraging aggressive play and team coordination.
Upgrade Cores: Power-ups unlocked by holding key zones, granting short-term buffs like increased damage or speed. This system promotes map control, team coordination, and dynamic combat.
Titan Healing Cells: Consumable items that restore health at the cost of vulnerability. Their use rewards strategic positioning and timing, discouraging passive play and promoting active sustain between fights.
Downed State & Revival: Mechs can be revived by teammates if downed, adding a layer of teamwork and giving players a chance for comebacks. This promotes aggressive support and strategic risk-taking.
Design Goals
These systems encourage constant aggression, tactical positioning, and resource management, ensuring that players stay engaged and always have meaningful decisions to make during gameplay.

Code
Weapon System Overview
My weapon system uses a data driven approach; utilizing Unity’s scriptable objects to store unique weapon definitions and a custom weapon factory pipeline to compile weapon behavior at runtime. Additionally I took advantage of various programming design patterns for this system such as the Factory Pattern, Strategy Pattern, Decorator Pattern, and State Machine Pattern.
Weapon Definition Stores plain language weapon stats such as
Name, damage, fire rate, projectile count, magazine size…
Behaviors: Everything any weapon in the game can do is defined in an interface based set of distinct behaviors. These behaviors can stack on top of eachother to create complex blends of weapon behavior
Weapon Factory: Takes in definitions and decides which behaviors to use for the new weapon.
Weapon State Machine: Handles runtime control of weapons with simple states such as “Idle”, “Active” and “Reload”.
Design Goals
This system allows for new diverse complex weapons to be added easily and since this system creates weapon behavior during runtime; it opens up the future possibility for weapons which change their behaviors during runtime based on for example power ups or abilities.
Weapon Factory
The weapon factory holds create methods for each type of behavior within the weapon system. Including the primary fire behavior (left click) alt fire behavior (right click) and reload behavior. Each is defined independently of one another with their own stack’s of interface based behavior implementations.
When a weapon is created it passes in its definition to the WeaponBehaviorFactory to have its behavior’s decided for it.
For larger code snippets see my GitHub Repo
Behaviors
Each hold the implementation behind each type of behavior a weapon can use. These hold an “inner” reference to another IWeaponFireBehavior to allow for the creations of stacks of behavior; where each layer can perform its functionality before calling it’s inner behavior.