← All work

LUX · Combat System & Hero Design

Designing the combat and hero systems of a roguelite FPS, balancing 40+ stats across 3 builds

role
Lead Systems Designer
team
4 people
duration
4 months
platform
PC (Steam)

tl;dr

In Lux you carry three heroes and swap between them mid-fight. I owned the combat systems end to end: three hero kits that each have a deliberate hole, four enemy archetypes built to shut one hero down, and the mana economy that makes every swap a decision.

Swaps per encounter
1.5 → 2.7
Playtests where "I felt smart" came up unprompted
6 / 8
Stats balanced
40+
Lux combat and hero design key art

setting the context 👇

What is Lux?

A roguelite hero FPS built at the NYU Game Center in Unity 6, by Ahmed Shuwehdi, Ashley Newell, Destin Piagentini and me, and shipping on Steam soon. Wave-based arena combat with permadeath: each run is a fresh attempt to push deeper. The hook is 3 heroes, 1 fight: you switch between three hero kits mid-combat. The roster is the weapon. The swap is the skill.

The problem

Hero shooters make you pick a hero. We wanted you to play all three at once.

Build a combat loop where swapping between Heroes feels strategic.

What's the goal?

Player goal
Feel smart for every swap: the move you make on one hero pays off when you become the next.
Design goal
An increasing sawtooth curve of difficulty. Every fight peaks, drops, then peaks higher than the last. The floor rises. The rhythm holds.

The core loop

4/s on Kalae−33Regen · 2/s · sourceRegen · 2/sMana · cap 100 · poolMana · cap 100Soul Swap · 33 · gateSoul Swap · 33Active hero · poolActive heroStatus carry-over · converterStatus carry-overLock · 2s · drainLock · 2s
The Combat System & Hero Design loop, simplified.

setting the scene 👇

What I owned

  • 01

    Owned combat systems end-to-end : economy, balance, status framework, enemy archetypes.

  • 02

    Balanced 3 hero kits anchored to one rule: no hero wins alone.

  • 03

    Designed 4 enemy archetypes : each engineered to neutralize a specific hero.

  • 04

    Tuned the resource economy across playtests ; one variable at a time.

  • 05

    Prototyped systems directly in Unity for live tuning during playtests.

Lux in play: first person on a rooftop arena, the swap and ability icons in the HUD corners
Lux in play as another hero, a ringed hand raised over red rooftops

starting with a reference

How the genre handles swapping

GameWhen you swapFeels like
OverwatchBetween rounds, on deathA counter-pick
Apex LegendsLocked in pre-matchA commitment
LuxMid-combat, by choiceA tactical decision

my design approach

Three pillars

Every system I designed for Lux was anchored to one of these three ideas.

  • P1 · Every hero has a hole.

    Each of the three heroes is the wrong answer to at least one fight. The roster, not the individual, is the unit of mastery.

  • P2 · The economy is the spine.

    Mana is the cost of becoming someone else. Tuning that cost was tuning the entire feel of the game.

  • P3 · Swapping should set up swapping.

    Status effects, ult charge, and life-steal carry forward across heroes, so the move you make on Angel pays off when you become Brawler.

How I tuned it

Change one thing. Playtest. Repeat. No overhauls. No tuning five variables at once. One isolated change, one playtest, rolled back the same day if the curve didn't bend.

getting into the design 👇

System 01 — Three Heroes, Three Holes

  • H1 · Kalae — the economy hero

    Ranged, sustained, with lifesteal that heals the entire roster. The safety net.

  • H2 · Manon — the commit hero

    200 HP, 40 dmg primary, 360° stun, 30-range positional swap. Kills tanks. Eats long range.

  • H3 · Antares — the mobility hero

    Charge-up beam, wall penetration past 30 charge, ride-able projectile. The only hero who can fight from outside the engagement range.

  • Design intent

    Each hero was designed with a deliberate gap - a situation where they're the wrong answer. Angel can't take a punch. Brawler can't fight at range. Phaser can't handle swarms. Those gaps are the combos. Every ability was tuned so that what one hero sets up, another hero finishes.

Hero stats

CharacterHealthPrimaryAbility EStat (E)Ability QStat (Q)
Kalae1505 – 40Freeze (forward)4 secsInvulnerable / wall pass5 secs
Manon20040Swap locationInstantStun (360°)3 secs
Antares1702Shooting star7 secsHealth orb15 secs

System 02 — The Combat System

Four enemy archetypes. Each one designed to neutralize a specific hero & to require multiple heroes to deal with

  • E1 · Charging Tank

    150 HP · 25 DPS rush · 3 sec charge window. Neutralizes Phaser. Forces Brawler engagement. The encounter that teaches new players which hero is for melee.

  • E2 · Swarm

    30 HP · 5 DPS · zigzag movement · spawned in packs. Neutralizes Phaser's beam. Forces Angel/Brawler AOE. Cheap individually, overwhelming in numbers.

  • E3 · Shooter

    70 HP · 10 DPS · 15-range projectile. Neutralizes melee-only commitment. Forces ranged engagement or aggressive positioning via Brawler's Swap.

  • E4 · Mortar

    100 HP · 30 dmg AOE shells · 1.5 sec flight time · friendly fire ON. Neutralizes static play. Forces movement. Friendly-fires other enemies if you bait the projectile.

Hero × enemy time-to-kill

Enemyvs Kalaevs Manonvs Antares
Charging Tank15 sec5 sec ↑ best30 sec ↓ worst
Swarm15 sec ↓ worst1 sec ↑ best5 sec
Shooter4 sec ↑ best12 sec ↓ worst8 sec
Mortar10 sec20 sec ↓ worst4 sec ↑ best

System 03 — Soul swap economy

ParameterValueIf playing Angel
Mana cap100—
Cost per swap33—
Swaps before empty33
Mana regen / sec24
Time to refill (full)50 sec25 sec
Swap animation lock2 sec, no movement2 sec, no movement

Status effects

The single most important number in Lux is 33 - the mana cost of one Soul Swap.

Angel is the bank. The other two heroes are the spenders. Players don't ask "should I swap?" - they ask "can I afford to?"

A status effect in Lux is a configurable object with three independent axes - duration, stacking, and control flags. A player on one hero can set up their next hero before they've even swapped.

That's not a combo between two players. It's a combo between you and your past self.

looking back

What did I learn?

Good systems design is invisible.

But it leads to strategic and fun game feel, which is the goal of a good systems designer

next case study →Hitwicket · Alliance Championship Event