Project Overview
Suck It Up is a fast-paced isometric action game created during a 48-hour Global Game Jam at SCAD Savannah, where it won Best in Show. 
As one of two project leads, I focused on developing core gameplay systems, controlling project scope, and managing revision control via Perforce. 
After the jam, we spent six weeks refining the game and were chosen by SCAD to represent Savannah in the Georgia Game Developers Association Best in Georgia competition. 
System Overview
To support Suck It Up’s fast-paced, chaotic gameplay, I built a fully modular destruction framework that artists can drop into any scene without writing a single line of code. Every breakable prop inherits from our “PlaceableObject” base class, which handles all damage and shatter effects at the material level. 
We designed it during a major crunch with only about a month of development time remaining, so simplicity and robustness were critical. 
Artists set up a new destructible in four quick steps: create a material instance, assign the prop’s albedo (color) map, verify the mesh pivot sits at the bottom center, and place it in the world. Out of the box, the system assumes the most common settings, so in most cases an artist only needs to choose the mesh before the prop is ready to break. That streamlined workflow let our level designers iterate on office environments at speed, knowing every object would respond the same way when struck.
Material Breakdown
When a destructible prop is struck, a Blueprint Timeline automatically drives its Dynamic Material Instance’s ScaleAmount parameter, smoothly ramping the value from zero to its peak and back down over a brief interval. This ramp controls the intensity and duration of the wobble without ever touching the shader code—designers simply tweak the timeline curve to dial in how quickly and how hard the object jiggles.

This timeline drives the "ScaleAmount" Parameter quickly to 1, and then back down to 0 over the course of .6 seconds.  Combines with the wobble effect, it creates a very convincing yet stylized damage reaction for all actors in the scene.

Sine wave wobble on different meshes

Damage System integrated into gameplay

Close up of the Destruction System in action

Modular Effects for Quick Integration

Each destructible prop also blends in a world-aligned crack mask that becomes more pronounced as it takes damage, providing an immediate visual cue for players to gauge an object’s remaining health. By projecting the crack texture in world space, we eliminate any dependence on individual UV layouts, so artists don’t have to re-UV existing meshes to support this effect. 
To break up visible tiling and add organic variation, a stylized noise pattern is layered on top of the crack mask, ensuring each crack network feels unique across dozens of props without any extra art iteration.
I developed a reusable Niagara VFX system that adds a fine, mesh-driven dust burst to any destructible prop. As an object’s health drops, the emitter scales its spawn rate proportionally, making each hit feel increasingly impactful.
By sampling the prop’s static mesh surface, particles automatically emit from the actual polygons so you never have to create a separate effect for each asset.
Finally, the actual break-apart sequence is driven by two additional parameters. A Scale value rapidly enlarges the mesh, no sine-wave required, giving an immediate “pop” as it shatters. 
Simultaneously, a Destroy Amount parameter applies a world-aligned noise mask to dissolve the mesh out, creating a quick, stylized fade. Because the noise projection is world-aligned, it works on any mesh without needing custom UVs. Together, these controls make the entire destruction pipeline extremely flexible and modular.