Ruben Calderon's Portfolio
System Design
Player Systems
Player State Manager / Input Controller
Attached to the Player is a State Machine that restricts or changes input behaviors based on what the user is currently doing. Also responsible for the input controller & associated physics management.
Player Upgrade System
Using hashmaps and static classes, the Player is able to affect their base stats and swap abilities through our inventory system by picking up and equiping Augmentations.
Shopkeeper & Economy
Players gain points by defeating enemies & clearing rooms, shopkeeper sells weapons and Augmentations.
Weapon Systems
Primary / secondary switching, aiming, reloading, etc.
I'm responsible for the game's foundational weapon system. Everything from aiming, to weapon management, to animation timings.
Ricochet & Boomerang Bullets
Using vector normals, I've created a mechanic that allows projectiles to bounce off of walls. This also works for enemies to bounce as well.
Melee Combos
While the melee system wasn't necessarily stale, I wanted to add a combo system to elevate the more powerful melee weapons of the game. I had to make this customizable so that the power of a melee weapon was dictated by its combo potential.
Scalability
Weapon & Bullet Data
Through careful architecture of scripts & scriptable objects, our weapon system became easily scalable. Iterating and testing different experimental weapons became quick, resulting in nearly 30 different weapons and 10+ unique bullet types.
Enemy & Player Data
Similar to the weapon data, our acting agents needed to be quickly iterated through. Again, using scriptable objects, testing variations on enemy speed, durability, and even intelligence became very intuitive.
Map Generation Customization
The map generator has a robust system for restricting certain room types, connection types, and general sizing / layouts. This allowed us to rapidly test different types of progressions we want the user to experience.