As for me, Ink was an epiphany. The whole idea of separating game narrative and game presentation seemed so great to me. That’s when I decided to build my own game engine, which will use Ink as a scripting language. It took much longer than I expected…
I started building Atrament in 2017 as a tool for myself. However, after several refactorings, the result was still not satisfying. And only when I started to actually build games with it, the puzzle clicked, and in late 2023, Atrament 1.0 was quietly announced. Since then, it has come a long way, and the latest version of Atrament, 2.3.1, was released in October 2025 - thanks to IFTF support.
Briefly speaking, Atrament is a game engine (primarily for choice-based games), which uses Ink as a scripting language, and HTML+CSS+JS as a presentation layer.
What features does it provide out of the box?
- nicely looking web user interface;
- special Ink tags to control game flow and presentation;
- custom markup: blocks, tables, headers, info boxes, progress bars, and so on;
- interactive UI elements: buttons and inputs;
- customizable interface elements: toolbar and overlays;
- multimedia support: images, sounds, music, and video;
- configurable state management: autosaves, checkpoints, saved games;
- customizable CSS styles, color themes, and fonts;
- built-in debugger to watch/edit variables, run Ink functions, etc.
The Atrament project can be exported as a:
- single HTML file, similar to Inky web export or Twine;
- web application (actually, it’s a PWA, so it can be installed from the browser)
- standalone executable for Windows, Linux, and macOS.
Full documentation with a quick start how-to is available here: https://atrament.ink/
To see what game made with Atrament can look like, see “The Coiled Crown” gamebook adaptation. The full source code of the Atrament project is available at GitHub.
A screenshot from a game:
The development goes on, and there will be more features in the engine. Stay tuned!
