Tenkiwi is Now Open Source


The last year has been an interesting experience for me as a game developer just starting out. The headline - I'm finally feeling like Tenkiwi (my virtual tabletop for no-prep + GM-less storytelling games) is stable enough to release open source. After detailing the new functionality there, I'll take a moment to review how Tenkiwi has evolved over the last year and where it might go next.  

Opening up Tenkiwi

Tenkiwi has been missing two key features since I first planned it out: 1) ability for others to test out their own games and 2) ability to scale out to more than one or two games at a time. This weekend I've had a chance to work on both those problems a bit. 

Custom Games

This is still a little hard to use and disabled by default, but can be unlocked with the code "custom". From there you'll need a prompt template, all of my games have one you can clone to try out, but after cloning you'll need to publish as a TSV file, which I've documented here: https://gist.github.com/therabidbanana/c0145b650a5e02ab2ae79e778f423e13



If you want to try it out and run into any problems, feel free to reach out in the community and we can figure it out!

Improving Storage

Tenkiwi is meant mostly for one-shot scenarios, so it keeps active games loaded in memory. This is cheap, but unfortunately Heroku likes to reboot machines every 24 hours, which would mean some games get wiped out if they start at the wrong time. I've been using a nifty library called Duratom as a backup channel to store games to a database until they are officially ended. Unfortunately, the size of old games not properly garbage collected from testing grew to the point where it was over limits for free usage and Heroku Postgres gets quite costly when you start needing to pay.

I've decided to change tactics and use S3 to store games instead. This involved splitting out each game as its own Duratom which was more complicated than it should have been, but now games not garbage collected will be able to sit in cold storage for a while rather than having to sit around in memory taking up space forever. 

You said Open Source?

Tenkiwi has a server component (Clojure, currently hosted on Heroku) as well as a client-side component (built in cross-platform React Native using Expo, the actual views written in Clojurescipt).

Tenkiwi Server: https://github.com/therabidbanana/tenkiwi

Tenkiwi Client: https://github.com/therabidbanana/tenkiwi-client 

If you want to learn more about how you can work on it or use it for your own projects, stop by our Discord community: https://discord.gg/qCRRaJ2MBj

Reviewing the Year

Tenkiwi has grown a lot from the early prototype pushed to Heroku a little over a year ago. It started with being able to play Descended from the Queen games via the website (https://play.tenkiwi.com). The goal has always been to make it easy for friends to jump in on Zoom and play without really having to know much about the game ahead of time. 

I wanted to make sure there are no accounts to sign up and get started, just a simple input for "Name" and "Lobby Code" so people can hop into a virtual room together. Using the phone as a second screen to interact and play with has been a great way to get people that have never played an RPG to play, especially since Descended from the Queen games are so lightweight!

Unfortunately I'm not great at mobile user experience (or design in general), so after getting frustrated with usability I started to look into porting to something that would allow me to deploy as a native app and take advantage of existing open source libraries for building prebuilt components. I settled on Expo so that I could compile my existing Clojurescript and keep iterating on it. 

The focus on improved usability by going with "native" apps has allowed me to find some neat React Native libraries and add more complexity to the games without overcomplicating the code. A couple of the key features I was able to add were libraries for multiple tabs and parts of the application that can be swiped in and out of view. With React Native Web, I was even able to backport these to the online version and export to Itch.io!

These new features allowed me to start experimenting with new game types, including my Cooking Competition in Space game called Culinary Contest. Branching out, I started looking for other types of games that fit the prompt driven experience - participating in a couple of jams to build out Outsider Blues (a solo game) and This Mission is Redacted (an experience based on External Containment Bureau). 

What's Next for Tenkiwi

In 2022 the biggest goal is to get some other people playing with the platform, especially for their own games. I know there's huge potential for game developers using smart phones as more than just PDF readers. Apps can be a way to automate away all the tables and dice rolls, letting people jump right into storytelling games and start playing. I don't necessarily think my games are the best example of that - but I'm excited to keep iterating on it and improving it! 

I hope to revisit the underlying gameplay of This Mission is Redacted and refine it into some sort of SRD, like I did with Culinary Contest. I feel like it's still missing some elements would help make gameplay more interesting and fun to play with. 

I'll also be participating in a couple more Jams and seeing if they can fit back into Tenkiwi - next up is the Threads of Lachesis jam, underway right now!

Files

Tenkiwi Play in browser
Version 13 Jan 23, 2022

Leave a comment

Log in with itch.io to leave a comment.