RISE FROM RUIN is a third-person, character-action game in which you take control of a massive, unstoppable monster. They aim to defend a vast, icy city from relentless, chaotic, hostile forces. The game offers bombastic gameplay and immense battles in which your sheer power is tested against ever-growing enemy forces.
Trailer
Design Reel
Key Wave System

Early in development of the Wave Defense game mode we used a simple equation to scale the difficulty of oncoming waves each round. While this was somewhat effective at increasing the difficulty, it couldn’t control the composition of each wave, only the quantity of enemies. This quickly led to both performance and balancing issues.

To remedy this, I came up with the Key Wave system. The intent of the Key Wave system was to allow a greater degree of designer control over each wave without needing to actually set values for every possible wave the player would face. Taking inspiration from Key Frames in animation, the Key Wave system works by interpolating wave data between the previous Key Wave and the next one. This allowed me to accurately adjust not only the overall quantity of enemies, but also the odds of each enemy spawning, how much that enemy would subtract from the wave’s budget, and if the amount of a particular enemy should be multiplied.

I also created a spreadsheet to accompany the Key Waves system for the sake of balancing. This spreadsheet contained all of the necessary values for each Key Wave ready to be imported directly into the game. In order to help ensure that each Key Wave was properly balanced I also created a full simulation of our enemy spawning system in the spreadsheet. This helped me visualize the likelihood of each enemy spawning in each Key Wave, as well as estimates for the total amounts of each enemy that would be spawned and how quickly they would be able to capture each of the objectives the player is tasked with defending.

Console Commands

One of my responsibilities when I joined the team was to implement a new dev cheat system to help with debugging and testing. Up until then, they were still using random keyboard buttons for the few cheats they had. I decided to remove all those random buttons and replaced them with a full in game debugging console that I made.

The console was able to both take string inputs from the user for each of the commands, and print out any debug text that we needed. I also included both a “help” command and an autocomplete system to ensure it was easy for everyone on the team to use.

Adding a new command was incredibly simple. Using the class I made, all the user needed to provide was the name of the command for the dictionary to use; a description to show in the “help” command; the format of the input for “help” & the autocomplete to display; and then the actual function the command should call. Commands were able to be created in any script and would automatically add themselves to the cheat manager. They were also able to take in up to three arguments of any primitive data type. This made them incredibly versatile and easy for anyone on the team to implement.
The Team
Will Rutherford
Sandbox Designer / Gameplay Programmer
Brigham Boice
Product Owner / Technical Designer
Caleb Secrest
Systems/Technical Designer
Isaac Eddy
Systems/UI Designer
Declan Lynch
Lead Level Designer
Ethan Visco
Level Designer
Megan LaForce
Narrative Lead / General Artist
Breanna Diodati
Art Lead / Character Artist
Benjamin Buscher
Animation Lead
Ian Whatmough
VFX Designer / Narrative Designer
Maxine Stutt
Narrative Designer
Jack McGovern
Lead Producer
Liam Harrison
Technical Lead / AI Programmer
Evan Norzow
Backend / Tools Programmer
William Box
Programmer
Peter Vander Rhodes
Assistant Gameplay Programmer
Danni Vecchione
Lead Sound Designer / SFX artist
Andres Sanchez
Composer (contractor)

