← All Posts

Designing Combat in EchoQuest — Classes, Abilities & Server Authority

Combat is the spine of any RPG. If it doesn’t feel right, nothing else matters — your quests, your loot, your world — none of it lands if swinging a sword feels like clicking a spreadsheet. So when I sat down to design EchoQuest’s combat system, I had one rule: every hit has to feel deliberate.

No Auto-Attack. You Swing, You Aim, You Commit.

A lot of browser RPGs lean on auto-attack. You click a monster, your character starts swinging, and you go make coffee. I didn’t want that. EchoQuest uses manual-trigger melee — you press the attack button, your character swings, and that swing either connects or it doesn’t. Player skill matters. Positioning matters. If you’re standing in the wrong spot or you mistime an ability, you eat damage. That’s the deal.

This makes the game harder to play than a tab-target auto-attack RPG, and I’m fine with that. The tradeoff is that when you pull off a clean fight — dodging a boss telegraph, landing a Chain Lightning on a packed group, timing your heal perfectly — it actually feels good. You did that. Not a timer.

Server-Authoritative Combat — No Cheating, Period

Here’s where it gets technical. EchoQuest is a multiplayer game, so every single hit is validated server-side. The client sends “I want to attack this target,” and the server decides if the attack lands, calculates the damage, applies defense, rolls for crits, and sends back the result. The client never decides how much damage it deals.

This is non-negotiable for any multiplayer RPG combat system. If you let the client report its own damage numbers, someone will modify those numbers. Server-authoritative combat means the server owns the truth — health, mana, cooldowns, position checks, all of it. It’s more work to build, but it means I can run a fair game without spending all my time fighting cheaters.

The Six Classes

EchoQuest has six classes, each with a distinct identity and playstyle. I didn’t want six flavors of “hit thing, thing dies.” Every class should feel different to play and bring something different to a party.

Warrior (Echo of the Sentinel) — Your classic tank. 150 HP base, 5% crit chance, and a kit built around AoE damage and defense buffs. Warriors are the front line. They take the hits so everyone else can do their jobs. Their abilities focus on taunting enemies, buffing their own armor, and dealing cleave damage to groups.

Mage (Echo of the Arcanist) — Glass cannon with crowd control. 80 HP but 150 MP and a 10% crit chance. Mages stay at range, lock down groups with AoE, and protect themselves with magic shields. They’re fragile if something closes the gap, but devastating when they have space to cast.

Rogue (Echo of the Shadow) — Burst damage and mobility. 25% crit chance and 12% base evasion — the highest of any class. Rogues are about getting in, deleting a target, and getting out before the rest of the pack notices. High risk, high reward.

Cleric (Echo of the Warden) — The healer. Every party needs one, and Clerics are the reason your party survives dungeon bosses. They specialize in healing, protective buffs, and anti-undead damage. In a game with Necromancers running around, having a class that’s particularly good at destroying the undead adds a fun dynamic.

Ranger (Echo of the Wilds) — Ranged DPS with utility. Rangers deal consistent damage from a distance, set traps, and buff the party’s crit chance. They’re the reliable damage dealers — not as bursty as a Rogue, not as flashy as a Mage, but always putting out numbers.

Necromancer (Echo of the Void) — The weird one. Lifesteal, debuffs, and summons. Necromancers sustain themselves by draining enemies, weaken targets for the rest of the party, and raise the dead to fight alongside them. They’re a support-DPS hybrid that rewards players who like managing multiple things at once.

The Damage Formula

Behind every hit is math, and I spent a lot of time getting this right. EchoQuest uses hyperbolic defense scaling: damage_reduction = defense / (defense + K), where K is a constant that controls how quickly defense scales. This means defense always helps but never makes you invincible. A character with 100 defense takes meaningfully less damage than one with 50, but you can’t stack defense to the moon and become unkillable. There’s always a minimum of 1 damage on any hit — nothing is free.

Shields add a block mechanic on top of this. Block chance caps at 50%, and when you block, the attack deals half damage after defense reduction. So a Warrior with a good shield and high defense is genuinely tanky, but a big enough hit still gets through. This keeps fights interesting even for the beefiest characters.

24 Abilities — 4 Per Class

Each class has four abilities, all cooldown-based. No mana-gating on abilities (mana is tracked separately for Mage spells) — if your cooldown is up, you can use it. I wanted the decision to be “when do I use this” not “can I afford to use this.”

The ability types span AoE damage, projectiles, buffs, debuffs, heals, and summons. A few of my favorites:

All 24 abilities are data-driven and editable through the admin panel, which means I can tune numbers, adjust cooldowns, and add new abilities without deploying code. This has been huge for balance iteration.

Party Combat

EchoQuest is multiplayer, so combat had to work in groups. When you’re in a party, XP is shared across members, and loot distribution is handled through configurable loot modes. The goal was to make fighting together feel rewarding, not like you’re competing with your own teammates for drops.

Party dynamics also change based on composition. A Warrior–Cleric–Mage trio plays very differently from a Rogue–Ranger–Necromancer squad. The tank-healer-DPS trinity works, but it’s not the only way to play, and I like that.

What’s Next

The combat system is solid, but there’s more to do. Boss encounters are getting more complex — armor break phases, telegraphed attacks, and mechanics that require actual coordination. More abilities are in the pipeline to give each class deeper decision-making. And PvP refinement is on the roadmap — the server-authoritative foundation makes it possible, but balancing six classes against each other is a whole different challenge.

Combat is never “done.” But the foundation — manual input, server authority, distinct classes, honest math — that’s the part that has to be right from the start. Everything else is iteration.

— Bruno

Play EchoQuest now →