StoryBytes is the name I use to refer to the narrative game engine I've built into my games; originally built on my own scripting language, and later developed around inkle's Ink scripting language. I originally built my own ink compiler (mica-ink) until the feature set of Ink reached a level that was suitable for my needs, whereupon I started using blade-ink.
The two applications I've released of that name, storybytes-android and storybytes-desktop are simple story viewers built to demonstrate the usage of the Java Ink runtime.
StoryBytes is a very simple Android application, built using Kotlin and blade-ink.
It includes two simple Ink "games":
-
Cloak of Darkness: The eponymous "Hello World" of interactive fiction.
-
The Intercept: A short IF game from Inkle, demonstrating how the Ink script works. The source code is available online.
The original StoryBytes application was built mostly to experiment with code; this version got added because I've seen a few questions on Android over the years and thought it would be relatively easy to whip something together (which it was, since I've already built similar applications several times).
At the moment, there are no plans to work further on this, but if you have ideas for improvements or additions, feel free to contribute by sending in a pull request or opening a ticket.
Things that would be nice to add:
- Built-in support for inky tags such as # IMAGE, # CLEAR, and #RESTART. I almost have this built in already (use commands that do this in P&T2), so this should be easy to add in.
- Settings for different visual stylings (e.g., a Dark theme, etc.)
The easiest way to build this, is to import the project into Android Studio, and then using "Run > Run App" to build and run the Android application.
If you just want to use it, the app itself can be downloaded directly on the Google Play store (for free, of course).
The android application creates a new directory in your internal file storage called StoryBytes. If you want to use the app with your own Ink scripts, you can simply place the compiled ink json files generated by inklecate into that directory, and use the app to play them.
If you want to use this app as the base for releasing an own app with an ink file, don't forget to change the package name in the code so that your own app does not get into conflict with the free StoryBytes app on Google Play. Also, I would remove the code copying the assets file to the internal storage, and just read your own ink files directly from that directory.
This is licensed under the MIT license (for consistency with the rest of the Ink ecosystem). If that is too restrictive for your use, ping me. In general, if you use the source code for something, I appreciate it if you let me know.