Six otters, one raft, and a river that never ends the same way twice.

You do not steer. The river does that. You decide three things, and everything else is consequence.

1. Who stands where

Your raft is a grid — a front row that takes the hits and a back row that throws stones from behind it. Otters standing next to each other link paws, and every otter's trait buffs only the neighbours it is linked to. A tight block is powerful and fragile. A spread-out raft is safe and weak.

Then a heron turns up, and herons ignore the front row completely.

So there is no correct formation — only a correct formation for what is coming. The game tells you what that is before every bend, and you can drag any otter to any slot while you drift. Rearranging is a decision, not a guess.

2. How hard the raft is pushed

DRIFT · PADDLE · CHARGE. Faster means more distance, more loot and more river-stones. It also means more foes and far more fish burned. The throttle is the difficulty setting, and you are the one holding it.

3. What the fish get spent on

Fish is food, shop, medicine and experience all at once. The raft eats every bend. Fish also buys gear, levels an otter up at the campfire, recruits a new one, and pays for the Cook's stew. Spending is starving. That is the entire economy, and it is why every camp is uncomfortable.

Wrecking is not losing

When the last otter goes down you wash up at the Holt with every river-stone you earned, every building you have built and every unlock kept. Spend, push off again, get further.

It autosaves at every single bend. Close the tab mid-river; the title screen will offer you RESUME THE RIVER, exactly where you left it.

What is in it

  • 3 leagues — the Shallows, the Narrows and the Maw — each with its own light, weather and boss
  • 6 otter kinds, each with a link-trait and an active skill
  • 14 river blessings, drawn 3 at a time after every fight won
  • 12 holt buildings, gated behind each other so the river opens up across runs
  • 8 pieces of gear, upgraded on the slot — so replacing an item never wastes what you spent
  • 3 bosses that summon reinforcements on a timer

Everything is earned by playing. No timers, no ads, no battle pass, no currency you can buy. There is nothing for sale in this game and nothing for sale outside it.

Controls

  • Drag an otter — move it to another slot
  • 1–6, or click an otter — use that otter's skill
  • W / S or ↑ / ↓ — throttle
  • M — mute

How it was made

Every pixel is drawn in code on an HTML5 canvas — no sprite sheets, no stock art, no engine. Every sound is synthesised at runtime by ZzFX (© 2019 Frank Force, MIT); no audio files ship with the game. The whole thing is 45 KB.

AI disclosure: the code and the store graphics are AI-generated and the written text is AI-authored, disclosed truthfully here and on every store this appears on. The sounds are procedural synthesis from code, not generative audio.

More from CSAF

Core Systems Asset Factory builds tools and games.
More of our work: csaf.itch.io
Also free, also in your browser: CHARGE BARGE · BANNERET: SUCCESSION · THE LAST FLOCK

More free browser games from CSAF

Every one of these plays in one click. No install, no account, and they all save as you go.

  • HALFLIGHT — Everything in the vault is decaying. That is what pays you.
  • PRISMHORN — You never cast a spell. You cast a rainbow.
  • CHARGE BARGE — Drive a storm-powered ironclad up an insane hostile coastline.
  • RUSTBLOOM — You never find the key. You forge it.
  • THE LAST FLOCK — Your army is a crowd you shape with movement alone — and it dies.
  • BANNERET: SUCCESSION — You never move a knight. You plant a banner.
  • STARCHART — Every voyage you fly is inscribed forever. The route you took IS the constellation.

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

Leave a comment

Log in with itch.io to leave a comment.