Open Roller, Project Diary 1

Open Roller, Project Diary 1
Photo by Carlos Felipe Ramírez Mesa / Unsplash

What is Open Roller?

Open Roller is an early development tool for accessing open source role-playing game content in virtual tabletops.

Example use case

You're playing a remote game of Dungeons and Dragons, using You have a spellcasting character and some of their spells are taken from the Kobold Press sourcebook, [](Deep Magic for 5th Edition). To cast one of these spells, you click the Open Roller button in your browser, filter to Deep Magic... and search for your spell. Finding it, you can one button to share the spell the description in Roll20, or another button to directly cast the spell in Roll20.

The same principle can be used for any open content which the API can return. Some things you'll be able to hook into a dice roll, some things, share description will be the most useful action.

If you're thinking "That sounds like Beyond20, but for Open content" - you have the idea.

Why build Open Roller?

Largely for the love of the hobby, and for a low-stakes software project, but with some other goals too.

Demonstrate a Useful Consumption of the Open5E API

Open5E is an open-source project built to make Open Gaming License (and similarly licensed) Dungeons and Dragons 5th Edition compatible sources more readily usable by players and those who wish to make tools for players. In other words it makes free to use content for D&D freer and more usable. You could call it digital humanities for gaming. I really like this project, and would like to play a small part in proving the concept. I've done a tiny bit of code for it too, two tickets worth, but this is the next thing I'd like to do with it.

As such, Open Roller will initially be a consumer of the Open5E API for all it's content. I'll be using my own instance of the API, during development at least, so I can only ever accidentally DDOS myself.

Help Promote Indie Publishers

It makes it easier for players to discover indie content, and introduce them to the good people behind it.

Have Fun Playing With It

I'm making something I would use.

How To Build It

The first iteration of Open Roller will be a browser extension, compatible with Firefox, Chrome, and hopefully a few of the Chrome-powered browsers too.

UI Library

For UI logic and talking to the API, I'll be using Svelte via the latest SvelteKit. I've used Svelte to build a browser extension before. It's small build footprint and practice of only shipping what javascript is necessary, and not "shipping the library" like React or Angular make it appeal to me for extension development.

The last time I did this I had to frankenstein the hell out of some Rollup configs to make things work the way they wanted. Two really excellent things have happened since. SvelteKit now uses Vite for config and build, which suits me a lot better. And a wonderful person has made an adapter, sveltekit-adapter-chrome-extension for Svelte for the express purpose of tailoring it's output to be compatible with Chrome and Firefox. I couldn't believe how quick to spin something up it was.

Prototyping Steps

  • Get Open5E content rendering in a Svelte-based browser extension - Done
  • Successfully pipe a spell from the browser extension to Roll20
  • Do the same with an item description

Once that's done, there's something there that can be played with, and it will be worth thinking about UX design.

If the code doesn't turn out too embarrassing to show anybody, I'll make it public too, in the spirit of the other projects mentioned here.