Director/Designer | Spire of Trials

• Led a six-person team through a four-month development cycle.
• Designed the core combat loop, including the three-lane shield system, directional attacks, timing, and telegraphs.
• Built the full Unity codebase: enemy state machines, attack systems, shield logic, UI, input, and weekly integrations.
• Directed music design and implementation, including themes, layering, and in-engine transitions.
• Led QA iteration to refine combat and encounters, contributing to six local indie awards, including Best in Show.

Blocking System
01
Communicating Complex Combat in Limited Space

Spire of Trials needed to convey a large amount of information with very limited screen space.

The player had to understand:
Where enemies were
Where attacks were coming from
What type of attack to use
Where they were attacking
Where they were blocking.

The core challenge was that attacking and blocking happened in the same space.

Players had to stand in the same slot as an enemy to attack, but defend against attacks coming from potentially different slots.
Some enemies could even attack any of the three slots, regardless of their position.

This quickly became overwhelming.

02
Grounding Feedback in the Player Space

My first approach was to flash the side of the screen where an attack was coming from.

The signal existed, but players misunderstood it.
Some thought they were taking damage.
Others didn’t connect it to enemy intent.

Next, I added a blinking shield indicator at the bottom of the screen.

This helped players understand it was defensive information.

But many players weren’t looking down there during combat.
The feedback was clearer.
But it still wasn’t reliable.

03
Visual, Animation, and Audio Together

To improve readability, I layered multiple signals:

Enemy wind-up animations that hinted at attack direction

Positional sound effects that played on the left, center, or right channel based on incoming attacks.

Each element helped on its own.

Together, they created a readable combat language.

04
Easing Players Into Complexity

Rather than explaining everything at once, I used enemy behavior to teach the system.

Skeletons only attacked directly in front of the player, establishing the core attack and defense loop.

Slimes attacked across slots, teaching players that enemies don’t always strike straight ahead.

Goblins spawned only in the center but attacked left or right, reinforcing directional awareness and prediction.

With just these three enemies, most players could infer how the system worked.

05
A Readable Foundation for All Combat

This structure became the foundation for every enemy in the game.

Players learned to:
Predict attack directions
Defend intentionally
Understand combat flow without UI overload

By layering UI, animation, audio, and enemy design, I communicated complex mechanics without adding clutter.

The UI didn’t just display information.
It taught players how to read the fight.