Heya folks, Baggers here.
We are delighted to be mixing things up today with a guest post by the fantastic Celeste Bloodreign, co-founder of dddice. They are someone we have been working with during the development of the Symbiotes feature to make sure we were making something useful for real projects.
Without further ado, I’ll hand it over to Celeste so she can talk about the Symbiote they have been making to integrate dddice with TaleSpire
Building the dddice symbiote for TaleSpire
Screenshot from “The Nillvale Untouchables” every other Friday on twitch.tv/goblin_tuesday
Symbiotes are a unique take to third-party extensions that the developers at Bouncyrock are taking to allow the community to expand its functionality. The name symbiotes is very apt. Unlike other extension methodologies the symbiote is not subordinate to TaleSpire nor given free rein to change everything. Rather, TaleSpire allows the symbiote to run alongside (especially during full screen mode) and each can enhance the other via an API. Very symbiotic if you ask me! I’m not going to go into the technical details, you can get a much better explanation from the dev logs on the subject or in the official docs . I will, however, share my experience building a symbiote for my own app dddice! But first, a bit about me.
A Bit About Me
I am Celeste Bloodreign, co-founder of an online multiplayer 3D dice rolling platform called dddice. Our goal is to give players tools to create, share (and eventually sell) their own custom 3D dice to use in their RPG sessions. While thousands of players a week use our dice rooms at dddice.com for their game, virtual dice are only as useful as where you can roll them! I’m really excited about Symbiotes because I play pathfinder in TaleSpire with a group of wonderful people on twitch at Goblin Tuesday. We also use dddice to show our rolls on stream, so I just had to get it all working together!
Setting up the symbiosis
The core concept of a symbiote is a web view embedded within TaleSpire within which your app will run. The basic manifest defines a URL to load into this web view. For the most basic of basic symbiotes, this alone is very powerful. TaleSpire is most immersive when run at full screen. But then where do your other digital tools go?
We also used the syncMessaging infrastructure that TaleSpire provides to communicate between clients to coordinate which dice room to use.
You can also pack some code into the symbiote that doesn’t need to be served via a server you control, that is served from the local file system. For apps that don’t need to be network connected or could use the provided communication channels from TaleSpire this is a great alternative!
Greater than the sum of its parts
As I’m sure you all already know the Bouncyrock team is a wonderful group of people. Not just technically but personally. They were so happy to help and their docs were beyond amazing. Our symbiote dev experience consisted of updating our basic room code, the same room on dddice.com, to make use of the injected APIs to communicate with TaleSpire. The conversion was so straightforward. All of our basic infa just worked as expected. We ended up putting very little into the symbiote code itself, just enough to subscribe to the messaging infrastructure and pipe the data into our room code.
For those of you who already have a web app you want to let TaleSpire users embed in their full screen experience you will be up and running in no time. If you want to build something that really enhances the TaleSpire experience you will find the tools you need as well. You will be able to interact with all aspects of the game, the world, the boards and the players. The community of RPG tool devs are so, so creative. And my symbiote only scratched the surface of what is possible. I’m so excited to see what is to come!
The latest version of the dddice Symbiote can be downloaded here.
Installation instructions for those in the Symbiotes beta can be found here.