Development Blog (semi)random.thoughts()

First Alakajam entry & Ink engine

Last weekend I participated in Alakajam for the first time. The theme was "Falling" which I (as well as several others) interpreted as "Falling in Love".

Thus my entry became Interactive Fiction. You can play it here.

What I want to talk about here is the engine behind it: the way the story is shown on screen and interacts with the player. Even though this is a game jam entry, I tried to create something a could re-use at a later date.

Writing the story


The story is written in Ink: a dedicated branching dialogue language created by the great people from Inkle Studios. As the Ink language is very rich, it's very easy to write a branching story. Furthermore, the language supports variables and control logic, making it possible to create an actual game using the language. I used both these features to name the characters and have your fiancé react to your earlier choices.

Getting Ink on screen


Now, it's very well possible to play Ink using Inky (a dedicated text editor for Ink). However, I chose to use Unity mostly because I wanted to support WebGL. I used Unity-Ink integration as a basis. I decided to use Unity only as a presentation layer: there is no game logic within the Unity/C# code: it's a pure display engine. You can download the Ink story here.

Features of the display engine


The Alakajam version of the display engine supports:
  • Showing lines of text (off course);
  • Showing choices;
  • Inserting additional new lines (normally ignored by Ink) using the (NEWLINE) word in the Ink story;
  • Inserting "speech pauses" using the (PAUSE) word in the Ink story;
  • Starting/changing music using the #music: [piece name] tag (including cross fade).



I've been working on improving the engine. In particular, I wanted to add:
  • Smoother scrolling text;
  • Displaying knots as chapter titles (in progress, this is a stub).



I liked doing IF during this jam, so I will probably revisit the genre and this engine again in the future.

We value your privacy. This site collects only information required to provide you this Service. For more information, read our privacy policy.