Website logo Michał Daniel

Storytelling Engine

Android app for telling character driven kinetic stories 📖.

Google Play Store Github Releases
Screenshot of the main menu Screenshot of the characters talking Screenshot of narration text box

What is it?

Storyteling Engine is a native, easy to edit, base Android application for creating character driven kinetic novels.

The application adapts to the script in the JSON file where you can easily define characters, scenes and used sound effects. Other changes can be made by editing selected configuration files and images in the resources and assets directories. The entire application is open source and can be adapted to suite your project.

The available demo application shows all current capabilities of the "engine" - it is an example of what it can be used for and a helpful starting point for editing.

Features

  • Native Android applicaton written in Kotlin using best mobile development practices
  • Entierly driven by the JSON defined script
  • Automatic character, background and text animations
  • Character speach bubbles for dialog driven stories
  • Full screen narration messages
  • Scene background music, leave, enter and message sound effects
  • Robust, easy to configure About section
  • Automatic saves and chapters unlocking
  • Chapter selection and rewind menu
  • Music and sound effects volumes settings
  • Text size and screen reader accessibility options
  • Final credits roll

Usage

To create your own game based on this application you will need the Android development environment and some basic programming skills.

For adaptation, just edit the JSON scenario, images and sounds in the assets and resources directories, and several configuration files associated with the structure of the Android application. Then use Android Studio rename feature to change package name and remove any mentions of my name, developer name and contact information.

The application is written in Kotlin and uses the MVVM architecture pattern. Further editing is easy by modifying the layout XML files and the corresponding view models.

More information on JSON structure, important files and editing is available in the repository README file.

Support

Report a bug 🐛

File a bug reports or request new features.

General questions and feedback ❤️

Email me or contact directly if you have any questions, suggestions or general feedback regarding the application or this website.

About me

I'm Michał Daniel, an application developer currently living 💀 in Kraków, Poland 🥟. I work on mobile and desktop apps, love free software, and I'm interested in security 🔐 and privacy 🕵️.

Mail: contact@michaldaniel.eu
Telegram: @morningbird
Other:
Show PGP public 🔑 block [Download]
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFhRms8BCACgZMq4D+SfMNGvsOxeOL1JUTj+LmG5eWECDMcIdJqDmtnjaUAD
4oj72iAxJBB1B4u7pFkYQesTSP1xJpGLE2ZtyzW3raktIsxRts3N+KaEvBoiXCeh
Lyq34n4/HRkdosUZZldVUDTcRKBzU2PcfqREqlhux8aRfHdGe6JmnuZ0llXDSm+w
kJqVR+IJU4MjrNPISsaDaaYwc4ZoEAC+HhfHa1Tr2phcVscH3NsxF0Hw1dZNL5yF
8TU+zvEXWp4ncQ6ywGbjeDxu1Km7ZXNTwWkdRm7VLEK7p3yy3MFK/0bFpq5SGxvQ
eTe5S/pPmgbkU8un5FwhWQ/gDUjz3u3ZAgVbABEBAAG0KE1pY2hhxYIgRGFuaWVs
IDxjb250YWN0QG1pY2hhbGRhbmllbC5ldT6JATgEEwECACIFAlhRms8CGwMGCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOJXCmzuWUqbiHMH/A0amZu50hxE1BBK
c3+vn8BjzX6b2nW0TDesLfMPpRighQCgicVMrG7B/RnMCfM91LOoiUHrjwtPuDUe
8cVX7YrVwg0oFa8IeXmAj0c8JtQ/P8DNpVXQK2MUqHPtLLkFVy+OUbeoUnfdxEZT
9eQhma24gZIARHMhoFww3hlBdVD6KlkJ+6AaiG/qXN6OFwoNqYhZgfPWoDh/Mrdt
/HTL3UPG6oxe4fmHdkPQ8otZsJk96fi1Ccv9M2KP4AWDHgaDDWlPyM/IMum4LK9F
zqEGcjfcQSrw1wgK5bT1/hEYK9s6fBITK+cLRVsy5P9gllNWsXrrNMIm7B4fLC3o
G5QyKiG5AQ0EWFGazwEIAMiO9iOBJ3mahzrE3keaojC0QlKH0wcIcPOKPuq0bJuM
P1gbeKJ7lLKhyIcgbaZRCAnT74crx3F/+mi/n5Cq/USe6WV1VU5yAaQR479mRpqZ
7FaoefLQgJ+sbHRFTmAmhHlmYQKrusXhnM3KNyqhWdxO/OLTaImSZsNu1KdrzPpQ
NoqUJnvisL5Iqrev4KrJDvJd6RHey/eiRGniVSO3rdS8ChQ2BJBXavVohb4I+xXJ
6nkMihJ8Edig/uPIGUjriCw2Q4dQ+96L42kYUDpwxzJJyqkEF/aRHKRgTPrPCV8V
6m/PrcGdpK5UWYstnqIAMiDNjLLTEQLncYx3dtcCGu8AEQEAAYkBHwQYAQIACQUC
WFGazwIbDAAKCRDiVwps7llKm+m4B/0Syr8ANRwinymyHR0elzJ69epk8D+VnMnZ
OCh0bD7eT7JvtpoCga0UUaHhsL0zg50GaGmjDstHdQtNNoVk+08/BoKezLtcCZQW
Zu9zSj3/Y1OWhRrWqwob47mC3BzLu4q3NifhTts/ooPTHgTiBM4bp8zHDVF0wWpR
+lgWttmoz6ipFwwIpEuXtJZSZX1MbZ+SAIEkIkqtzvqLiB4BKbLFVIgkkFNZ70md
x8xZIl5oNUr+h9igu0iGxGaaXFLNaM/oDeJ6cv/hJ6JaW7PplbPASwx6vDPzt7//
mhXYpH2XDkflKzjorI82auU9MzWBxRqgrn5Hwq/nBk4v6SWQncw2
=IX5q
-----END PGP PUBLIC KEY BLOCK-----