ink by inkle
Whilst undergoing my KPI meeting, when talking about being a Tools programmer, I was pointed to an awesome tool that was recently released; ink by inkle. ink is a really cool, and very helpful tool, initially made for the narrative writers of inkle’s games: 80 Days and Sorcery, but can be integrated into any narrative-heavy game by anyone.
Both of inkle’s games has had one piece of technology that has remained constant, a bedrock that has enabled them to write literally millions of words of highly branching narrative: by using their scripting language, ink.
Tools are used on almost every game for many different tasks. Many tools are specific to the game and are custom programmed for that game, and it is the tools programmer’s job to write the tools that handle these game-specific tasks.
The latest version of the language, the one I was pointed to, improves on the elegance of its syntax and adds some powerful new features. ink‘s best added feature in this version by far is that a whole new compiler was made for it, from the ground up in C#, and that it has been moved over to Unity and the whole thing has been put onto GitHub.Why this is so cool is that inkle has made a custom tool for use in their games, but have now made it open source for anyone and everyone to use! Having it work very easily (and it does work very, very easily) in Unity means that the best feature of the latest version, having an open source GitHub repo, means that other people using this tool makes the tool so much cooler!
The Introduction to inkle in WritingWithInk.md in the Documentation folder of the GitHub repo is:
ink is a scripting language built around the idea of marking up pure-text with flow in order to produce interactive scripts.
At its most basic, it can be used to write a Choose Your Own-style story, or a branching dialogue tree. But its real strength is in writing dialogues with lots of options and lots of recombination of the flow.
ink offers several features to enable non-technical writers to branch often, and play out the consequences of those branches, in both minor and major ways, without fuss.
The script aims to be clean and logically ordered, so branching dialogue can be tested “by eye”. The flow is described in a declarative fashion where possible.
It’s also designed with redrafting in mind; so editing a flow should be fast.
How cool does that sound? It may just be me, but this is a really cool tool, which interests me a hell of a lot. Check out the GitHub repo of ink here. I will be testing it out in my next holidays for sure, and will get back you after I have had a good play around with it in Unity.
This is Daniel Jochem, signing out.