Inkbound

A hand-drawn survivors-like roguelike in pure Rust. Every sprite, the paper, the font and the music are generated in code — nothing is loaded from disk.

Take a copy

Written in Rust on macroquad. The outlines are polylines bent by hashed noise and re-rolled eight times a second, the letters are a stroke font on an eight-unit grid, the paper grain is generated once and tiled, and the sound is synthesized into memory. This desk draws itself the same way.

Inkbound — drawn in ink, played on paper.

Download

Free, no launcher, no account, no telemetry. One file.

The Windows and Linux builds are a single executable — drop it anywhere and run it. The macOS build is Inkbound.app in a zip; the APK is sideloaded (adb install -r, or allow unknown sources). Saves live in %LOCALAPPDATA%\inkbound, ~/.local/share/inkbound or ~/Library/Application Support/inkbound.

Four pages of a sketchbook

Each page has its own doodles, its keeper and a final boss. Erase the keeper when the timer runs out and the page is yours: close the book, or keep drawing in endless mode until the ink runs dry.

What’s in the box

  • 24doodle kinds
  • 7bosses
  • 10weapons
  • 10characters
  • 8players in co-op

The run

  • Weapons fire on their own. You move, dodge, collect XP gems and pick one of three upgrade cards at each level.
  • 10 weapons × 8 levels over fire patterns — aimed, fan, orbit, aura, strike, sweep, rain, boomerang, slam, needle — plus 9 passive items.
  • Bosses built from composable moves: dash, volley, ring, summon, telegraphed slam, burrow, blink, boomerang. They enrage under 35% HP.
  • Elites, chests and floor loot: hearts, ink vials, eraser bombs, freeze crystals, vacuum scrolls.

Between runs

  • Runs pay out ink. The Sketchbook sells 9 permanent upgrades with escalating ranks.
  • 10 characters to unlock, each with a starting weapon and a trait — The Scribe, Doodler, Smudge, Eraser, Stormcaller, Origamist, Stamper, Rainmaker, Cartographer, Inkblot.
  • Endless mode: after a clear the wave table loops, doodles gain +100% HP, +50% numbers and +25% damage per cycle, and a boss turns up every two minutes.
  • Four procedural music loops (menu, game, boss, finale) synthesized at runtime, with separate music and SFX sliders.

Co-op, up to eight

Online

No dedicated server. Every machine runs the same simulation in deterministic lockstep and only player inputs travel on the wire — 60 ticks a second, three bytes per player per tick.

Host opens a room and shows a four-letter code (plus its LAN address). Join takes that code, or an ip:port directly. Room codes go through a tiny PHP rendezvous plus STUN hole punching and a best-effort UPnP port mapping.

Couch, or a mix

In the lobby, press Confirm on another controller to add a seat. Everyone shares the camera; nobody can walk off the shared screen.

Down, not out: at 0 HP a player drops with an “out of ink!” splash and a teammate standing next to them brings them back at half HP. XP can be shared across the table or kept per player, and revives can be switched off entirely.

One camera, one wave table, one pile of ink — and whoever is still standing picks the others back up.

Controls

Keyboard

  • WASD
  • ZQSD
  • Arrows

Move. Enter or Space confirms, Esc goes back or pauses, 1 2 3 pick an upgrade card, F11 toggles fullscreen. The mouse works on every menu.

Gamepad

  • Stick
  • D-pad
  • A
  • B
  • Start

Any pad the system recognises — Xbox, DualShock. Left stick or d-pad to move and browse, A confirms, B goes back, Start pauses.

Touch

  • Joystick
  • Tap

On Android a virtual stick sits under your left thumb and menus are tappable. A physical keyboard or a pad paired with the phone works too.