Shape Slasher Logo

Shape Slasher

In Spring 2025, I was the teamlead and head programmer for Shape Slasher, a platformer where each time you play, the map is procedurally generated, making the experience different every time. I handled the art and music direction and help give the game a consistent visual and audio style. I also handled the UI and procedural map generation algorithm the game uses.

Role Team Lead & Gameplay/UI Programmer
Team Size 25 Developers
Duration 3 Months
Engine/Tools Unity / C#

Map Generation

To make each run feels distinct, I created a two-pass procedural generation algorithm that separates dungeon layouts from specific room placement. The first pass uses a random-walk strategy with constraint checks to build the grid arrangement, using backtracking loops to handle dead ends. The second pass looks over the layout to swap standard rooms with focal points like boss, shop, and challenge rooms. To maximize efficiency given the tight scope, the algorithm selects from a pool of pre-built rooms and places them after a layout is decided.


Combat System

For combat, I implemented a system which uses 2D box colliders to handle separate hitbox and hurtbox logic. Decoupling this from the player or specific enemy components let me have environmetal hazards that interact with damage events as well. I synced combat colliders with attack animations using Unity's Animation system, exposing damage and knockback variables to give designers more control.


Enemy AI

All enemies, including the boss, use a state machine combined with trigger boxes and periodic raycasts. When the player is outside the detection threshold, enemies navigate idly and send collision-avoiding raycast along ledges and walls. When a target enters the trigger's bounds and a line-of-sight raycast hits, depending on contextual factors like the target's location, attack cooldowns, and if they were recently attacked to determine their moves.


Credits/Concept Art Menu

To show off team contributions, I wanted to showcase unused concept art assets in its own menu. I collaborated with our UI artist on a split-screen layer showing credits with an interactive gallery. To handle the unconventional asset alignment and sizing, I programmed a scroll rect control script that takes menu navigation inputs and automatically centers the selected concept art button while not using the scroll rect's bounds to not go off-screen.

Back to Games