EN /HU | Login

Inkwell

Inkwell is a point-and-click adventure framework for Go, built on Ebitengine. You register plain struct literals into managers; the library does input, rendering, dialog trees, cutscenes, HUD, themes and lazy asset loading. Your code only declares content.

What you get

  • SCUMM-era skeleton — scenes with hotspots and walkboxes, verb-based interaction, inventory and item combinations, dialog trees, cutscenes.
  • One pattern — every named entity is a struct literal passed to Manager.Register.
  • Composable actions — Seq, Par, If, Wait, Say, Walk, … with lazy conditions over flags, vars and inventory.
  • Widget-tree HUD — verb bar, verb coin, inventory, dialog box, speech bubbles, top bar, character panels, chat log. Anything Ebitengine can draw is a valid widget.
  • Themes and placeholders — four color themes and deterministic placeholder art, so a game runs with zero assets on disk.
  • Save, load, validate — JSON save slots for mutable state, plus a startup validator for every name reference.

Module path: git.teletypegames.org/engines/inkwell

The demo game "Morning Coffee" lives in inkwell-demo and consumes the library as a normal Go module.

API reference

The manual and the reference live in the source: the package comments explain how the pieces fit, and every exported type, function and method carries a doc comment — CI fails if one is missing. Every vX.Y.Z release tag builds them with doc2go and publishes them here: API reference (Go doc).

How it gets here: Go doc.