A narrative scripting language for games.

Every one of our games (and many others besides) has had one piece of technology that has remained constant, a bedrock that has enabled us to write literally millions of words of highly branching narrative: our scripting language, ink.

Getting Started

If you're new to ink, why not download Inky, our ink editor that allows you to play and test your stories.

The basics tutorial below has been written with a non-technical audience in mind, covering just the basics for people who want to write stories that they can put on the web.

And to see everything that ink has to offer, read the writer's manual, or buy the offical user's guide.

Basics tutorial Writer's manual The official guide

Inky

Write, test and export your ink stories all in one app.

ink - the language

  • Markup, not programming: Text comes first, code and logic are inserted within.
  • Simple, elegant syntax: Why not get a taste in the writing tutorial?
  • Proven: literally millions of words of content have been written for our own games.
  • Easy to learn, but with powerful constructs for more advanced scripting.
  • Conceived as middleware: a narrative engine designed to slot into a game engine.

Inky - the editor

  • Play as you write: The play pane automatically refreshes and reloads the choices you made.
  • Error highlighting, as-you-type.
  • Jump to definition: alt-click on a divert (they're like hyperlinks in ink) to jump to the target.
  • Export to JSON, ink's intermediate compiled format.
  • Export to web: Generates a page like this one, ready to be customised.

Unity and Unreal Integration

Our Unity plugin provides you with everything you need to get started with ink. It automatically recompiles ink files as you edit them, and even comes with a simple previewer that lets you play stories directly within the Editor, without writing a line of code.

Meanwhile, our friends at The Chinese Room have done the hard work of creating Inkpot, a container for ink integration within the Unreal Engine.

Unity integration Unreal integration

Open Source

ink, inky, and the ink-unity integration plugin are freely available under the MIT license - we hope that other developers make use of them in their own projects! We'd also welcome contributions such as bug fixes or other code improvements - just submit a pull request.

Ink Inky Ink-Unity integration

Sample Game

The Intercept is a game we built to demonstrate how you might build an entire simple game with ink and Unity. See how we like to structure our own ink files, and how easy it is to use the Unity plugin within a real game. We built the game in a couple days for a game jam!

The Intercept Read ink script View full source

Need help?

Feel free to drop by our Discord server and ask a question, either about how to write ink, the Unity integration, or anything else we might've missed! There is also a Discussions forum on GitHub:

Ask on Discord Ask on Github

Your game here?

We'd love to hear from other developers making use of ink. Let us know if you do, so that we can include a link to it on this page.

Drop us an email

What's the difference between inklewriter and ink?

  • inklewriter is an easy-to-use online tool to write basic interactive stories.
  • ink by comparison is a more powerful narrative scripting language that is primarily designed for professional game development, though it can also be used to write and share choice-based interactive fiction. It is also surprisingly easy to learn, though for ease of use it's hard to beat inklewriter!

Convert inklewriter stories to ink

If you'd like to convert your inklewriter story into an ink, you can use our online tool.

Support us!

ink is the product of years of thought, design, development and testing. If ink has proved useful to you, please consider making a donation to help us continue to develop the tool. Thank you!

Invisible link to Joe's Mastodon for verification Invisible link to Jon's Mastodon for verification