Learning Ink: Part 1: Installing Inky and Common Terms

InkLogo

 

Learning Ink

 

Ink is a scripting language for creating interactive fiction like choose-you-own-adventures and other vast, branching stories.


Installing Inky

Ink can be used with Unity, but is best learned with the all-in-one app, Inky. Builds exist for Windows, Mac, and Linux systems.

Go to the releases page and download the most-current build. (For Windows and Linux, open the archive file. On Mac, open the DMG and move the app into the Application folder.)

1_Ink

Run “Inky” on Windows and Linux. On Mac, open the App in the Applications folder or Launchpad.

Once open, Inky will display two panes: editor and preview.

Editor

2_Editor

The editor pane shows the code as written. It has code highlighting and line numbers.

4_Wrap

The scripting language, as written in the editor pane, also has wrap-around.

 

Preview

5_Preview

The Preview pane will show the compiled code moments after it is typed and run by Inky. It constantly updates its contents and shows the most recent preview of how the code will look when compiled for player usage.

The Preview pane will always show the End of Story as well. This is the true ending and is added when an author does not explicitly added it.

 

Common Terms

The Ink scripting language uses many common terms to describe itself. These are based on the idea of code in Ink being a kind of thread that is spun by an author and “read” by a player.

Flow: The entire code of a project

Knots: Sections of code created by the author

Stitch: Sub-section of a knot

Diverts: a movement between knots using the arrow, “->”.

Weave: Collection of gather points and branching path encapsulation

Example

6_Example
Example of Ink Code
7_ExampleCode

Output of Example Ink Code

 

 

GitHub Gist Version


/*
Hello World Example
Uses a knot and divert
*/
This is a simple "Hello, world!" example.
// This is a divert
-> hello_world
// This is a knot called "hello_world"
// (Knots cannot have spaces.)
=== hello_world ===
This is a knot. We arrived here via a divert.
This entire project is its flow.
// The flow ends with a divert to the knot END
-> END

view raw

hello_world.ink

hosted with ❤ by GitHub