Guest Dev Log: Celeste Bloodreign - dddice.com
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?
2nd screen? Sometimes your pointer can’t break out of the full screenyness easily . Alt-tab? I’m told full screen apps don’t crash on alt-tab anymore, but superstitions die hard. So just having a tool loaded on the side is amazing. Becoming one with the host Just that would be cool enough, but on top of all that TaleSpire injects a JavaScript API to let you interact with the software. For dddice, I wanted to make sure you could see the roll results whether or not the symbiote is expanded, so we integrated with the chat message API. Making a message when a roll comes in.
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.
Conclusion
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!
Guest article written by Celeste Bloodreign, co-founder of dddice. Connect with her on Discord, Twitter, or YouTube.
The latest version of the dddice Symbiote can be downloaded here.
Installation instructions for those in the Symbiotes beta can be found here.
icycalm
icycalm
·GooseKid
UserGooseKid
User ·Also I don't use Foundry or Fantasy Grounds, so I prefer this development of Symbiotes over those. Good work team, keep it up!
icycalm
icycalm
·GooseKid
UserGooseKid
User ·You clearly dislike Talespire, so move on. Go somewhere else.
Don't lurk obsessively. Take a deep breath. It's okay to let go.
dripthedm
Userdripthedm
User ·Sure Talespire has a lot of growth to be done before launch but you are absolutely wrong about not being able to get any roleplay out of it. Especially for a remote game, being able to let the players use the heroforge minis they designed is one of mine and their favorite parts, as well as being able to edit the battle scene on the fly so what was once a cave of spider webs can quickly become an inferno? Peak TTRPG fun
Maybe try playing sometime?