Every timing-duel tells you that you lost the exchange. This one tells you why — to the millisecond, on every single input.

THEY THREW LOW · YOU ANSWERED GUARD · 197 ms LATE · GRAZE · the answer was RISE

And that same measurement is the difficulty system. Your reaction time is measured while you play, and the next opponent's wind-up is a multiple of it. There is no difficulty slider, because the game is already reading you.

The opponent shows you its read

It builds a model of your verb frequencies, your signed timing bias, and — separately — what you do when your poise is nearly gone. That model is drawn on screen at all times, and it persists across deaths. Your reputation precedes you.

An opponent that studies your habits is the exact mechanic players accuse of cheating. It is only fair because you can see it.

Six verbs. Only three are ever on the menu.

Which three depends on who holds the line. Nobody holds it: you both attack, and the winner takes it. You hold it: you attack, they answer. They hold it: they attack, and you must answer.

Being unpredictable is a resource you buy

Every verb costs poise. A verb outside your groove costs up to 1.85× as much — so you cannot simply be random, you have to pay for it. Six wards re-price the same six verbs, and the last one inverts the tax so repeating yourself is what costs. Changing ward wipes the groove you have worn.

48 duellists, and every mask is a readout

A wide eye means they learn you fast. A deep brow notch means you get warning. Split cheek-marks mean second intention. A near-closed halo means you will not outlast them.

Every duellist's mask is generated from that duellist's own eight fighting traits and from nothing else, out of 40 hand-authored motifs across 8 palettes. Looking at an opponent is reading them.

Losing a bout costs the bout

Wards, unlocks, roster progress and the roster's read on you all persist. It is never a full restart.

Controls

  • / W — HIGH when attacking, RISE when answering
  • / S — LOW when attacking, DUCK when answering
  • / D — THRUST when attacking, GUARD when answering
  • TAB ward · ENTER fight · ESC help and options · M sound

Free, plays in the browser, no install and no account. Keys are rebindable; screen flash and shake can each be turned off.

Hand-written HTML5 and a bare canvas — no engine, no framework, no third-party asset. The music and every sound effect were synthesised for this game.

More free games from Core Systems Asset Factory

HALFLIGHT · PRISMHORN · RUSTBLOOM · STARCHART · OTTERBOUND · CHARGE BARGE · THE LAST FLOCK · BANNERET: SUCCESSION
The whole CSAF catalogue — games and developer tools

We also make the parts

Core Systems Asset Factory builds pixel-art packs and engine tooling for developers. If you build games as well as play them, these are ours:

Plus plugins and editor tools for RPG Maker MZ, GameMaker, Unity and Unreal — the full catalogue is here.

Development log