Director/Designer | Spire of Trials

• Founded the studio and 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.

Spire of Trials - Game Design Document
Spire of Trials - Sound Track

Blocking System

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.

Communicating Complex Combat in Limited Space

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

Players misunderstood this feedback.
Some confused it with taking damage.
Others didn’t connect it to enemy intent.

The signal existed, but the meaning didn’t land

What Didn’t Work

Next, I introduced a blinking shield indicator at the bottom of the screen to show where the player was being attacked.

This helped significantly.
Players understood it was defensive information.

However, many players weren’t looking down there consistently during combat.

I needed more reinforcement

Grounding Feedback in the Player Space

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.

Visual, Animation, and Audio Together

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.

Easing Players Into Complexity

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.

A Readable Foundation for All Combat