Tinta, _another_ ink language runtime for the playdate

Announcing Tinta 1.0.0
(that's "ink" in portuguese) aka "Inkle's Ink narrative engine in native-lua"

This port is specifically targetted at Panic's Playdate console system (or any system able to run Lua5.4, which sadly exclude Löve2D at the moment).

Find the code and the instruction to install the toybox at Release 1.0.0 : Feature complete runtime engine · smwhr/tinta · GitHub

It is slightly different from Narrator (the existing Ink engine) in that it is actually a 1:1 port of the original c# code and includes all the feature of the original runtime (threads, flows, external functions etc.), albeit is a little slower.

Hope it'll be as useful to the community as it is to some developpers I support.

An example game (very rough prototype) is available :


AMAZING! Thanks so so much for that!
When I did the Narrative port, I really barely knew what I was doing, being my usual self hacking things until they kind of work, and just wanted to share.

Having this tool is going to be super helpful for narrative game makers around here.

If that's fine with you, I'll mention this post on my Narrator thread, and link to your project GitHub page on the Playdate-Narrator one :slight_smile:

Looking forward to use this!


And I think Narrator is still faster for the simple use cases !


Just leave a (sort of) guide for anyone trying to use ink on playdate... I've been testing other solutions as well.

Note that I did contribute to tinta but my tests should be unbiased. Basically, I tested each solution with the placeholder ink (once upon a time there were two choices...) to see if it works with the a minimal branching story, and the crime scene ink to push it to its limits.

  • Narrator: Faster than tinta, features limited. It is a better choice if you don't push ink to its limits.
  • Tinta: most feature complete, but has performance trade-off. (The code mimics c#). If you do crazy stuff with ink this might be the one to go.
  • Inkcpp: it should be the best when you want performance (it has minimal
    allocations and doesn't use GC like lua does), and if you are OK with setting up c++ environment and do some modifications on inkcpp (otherwise it won't compile). However crime scene ink didn't work, so there might be something missing from the feature set. UPDATE: It has been patched and now the crime scene ink runs fine but not on the actual device.