A tactics game wrapped around a visual novel. Thirty painted characters who plot, plead, fall in love, and betray each other across a twenty-nine-battle campaign with seven endings — every one of which you can still lose.
Play Ravage →The story opens on a filmed coup, and every major boss gets an entrance and a finale. Critical hits cut in, promotions change a fighter's look, and between chapters the squad sits around the fire.
The opening coup
The throne hall
Story between battles
Boss entrances
Critical cut-ins
Boss finales
Promotions
Best of the battle
The campEvery choice in battle is a posture. A ready stance counters a charge. A brace soaks the inevitable hit. A sword cuts a shieldbearer down — but a spear behind that shield gets you first. Then the swords sheathe and a full visual novel unfolds: thirty painted characters, a story that splits into seven paths, romance, humor, and the kind of plot twist you'll text your friend about.
Ravage isn't combat with cutscenes wedged in. It's a hand-painted visual novel that happens to have one of the meanest tactics engines we could build — thirty named characters who plot, plead, fall in love, and betray each other across more than a hundred painted expressions. The campaign turns on whether you trust the wrong person at the wrong moment.
Halfway through the campaign, Amar finds out who his parents really are. A few days later, on the ship to the coast, he has to decide what he's going to do about it. Five of the seven paths fight on to the end of the war, each with its own climaxes and its own finale. Two walk away from the war entirely, and the game lets them.
No gacha, no menus inside menus. Each system is small enough to teach in a sentence and deep enough to argue about for an hour.
Sword beats spear, spear beats shield, shield beats sword. Bows ignore the dance — and pay for it up close. And one late ally's lens ignores everything, answering armor with light.
Ready a counter-zone; brace defensively; or stay neutral and swing first. Your stance changes every adjacent fight.
Move, strike, or take a stance — two to four AP a turn, and a promotion raises the tempo for good. Turns are short. Decisions aren't.
Forest, rubble, and obstacles change defence and line-of-sight. The map is half your strategy.
At the campaign's hinge, Amar chooses one of seven answers to his own name. Five fight through to divergent finales; two walk away from the war — and the game honors the walking.
Every commit is on GitHub. Every system is small TypeScript. Procedural fallbacks for every asset.
Each battle has its own map, its own mood, and its own music.
Palace Coup
Mountain Pass
The Final Stand
Orinhal
The Cliffs of Para
The MonasteryWhat's live today is the whole game: twenty-nine battles on a full run (thirty-five across all seven paths), seven endings, an eight-strong endgame company, promotions into every Tier 2 class, and a soundtrack where every track earns its place. From here it's polish, not promises.
Every battle, every path, every ending. Suspend a fight mid-turn and resume it later. A guided first battle. Animated sprites for every class and every boss, story cinematics, boss finales, and painted portraits with living expressions for the whole cast.
Difficulty modes at New Game, and balance tuning from real runs.
An itch.io release, then Steam, and the HD-2D presentation experiments if the appetite holds.
No paywall, no ads, no account required — twenty-nine battles and seven endings, start to finish. If it was worth a few hours of your evening, you can put something toward the next one.
☕ Buy me a coffee
Amar and Selene — the night the war stopped being someone else's.