When creating the dice roller for Owlbear Rodeo 1.0 our primary goal was to create something both fun and simple to use. This was the driving force behind the decision to make it a physics sandbox with one-click dice rolling. It's been a couple of years since we've worked on this version of the dice roller and we've gotten a lot of feedback over that time. With the work on Owlbear Rodeo 2.0 it's finally time to do a from-the-ground-up reimagining of dice in Owlbear Rodeo.
Easier Dice Rolling
In 1.0 the primary UI is a group of icons representing each dice type in a traditional d20 dice set. Clicking on one of these icons will immediately roll that dice in the 3D dice tray. So to roll a d20 you would click the d20 icon once and to roll 6d6 you would click the d6 icon six times. This was the simplest interface to roll dice we could think of but it had some drawbacks. Having the dice roll immediately led to some confusion for some users. Some users were also reporting that they didn't trust the initial roll due to dice hitting together and moving each other after rolling.
In the new dice roller the primary UI is a dice set. Clicking on a dice set will open a dialog that allows you to create a new dice roll with that set. The default dice sets represent a traditional seven piece d20 system in different styles (metal, wood, textured plastic, etc). This representation is pretty powerful because it isn't limited to a traditional d4 through to d100, instead we can mix and match any dice available into a custom dice set. This makes it a lot easier to support different systems that use other representations (like an additional d6 variant for a wild die in savage worlds). At the moment adding custom dice sets isn't exposed as a feature in the interface but it is supported in the architecture of the app to allow developers to take the code of the dice roller and make their own versions.
With the new dice picker you can now select the number of dice you want to roll by either clicking the plus or minus buttons or you can also use the text input to simply write how many you'd like. After adding the dice you can also add a bonus to the roll or you can select whether the roll should be made at advantage or disadvantage. The final step is to click the roll button which will roll all the dice for you.
To make things more streamlined we have a new recent rolls section in the dice dialog that will automatically give you a shortcut to the dice you have rolled recently. If you're playing a game like D&D which often means rolling the same set of dice in a cyclical way (rolling to hit, then rolling damage die and then rolling to hit again) the recent rolls section becomes extremely useful.
A New Way To Reroll
Being able to reroll dice is an important feature to us as you can often have abilities in games that allow you to reroll certain dice.
In 1.0 you could reroll a die by clicking and dragging it to throw it around the tray. While fun to do it did lead to some problems with possible cheating (nudging the dice just a little to roll on a number you wanted). In 2.0 we're making rerolls more explicit, instead of picking up a dice you can now simply select the dice by clicking it and then pressing the reroll button that appears.
When this happens all the other dice in the tray will be locked to prevent them from accidentally getting bumped and changed.
We've wanted to add sound to the dice in Owlbear Rodeo for a while but we've always wanted to do something special for it.
To make the dice tray really sound alive we have a dynamic sound system that reacts to how the dice are rolling in the dice tray.
Depending on whether the dice hit the wooden walls or leather base of the tray we play different sounds to match. To make sure the sound also matches the style of dice you're rolling, a plastic d4 will have lighter hit sounds compared to the low thunk of the metal d20.
The new sounds add a lot to the dice and I've certainly had a lot more fun rolling them now.
Here's a demo showing off some of the new sounds.
In 1.0 the multiplayer aspect of the dice was more of an afterthought. In 2.0 we set out with the goal from the beginning that you should be able to see everyones dice rolls at the table as they happen in real time.
Now in 2.0 when someone joins your room you can now see their dice tray exactly how they see it. By default this is as a small preview window in the dice bar on the left of the dice roller but when you click on this preview you can see their tray at full size.
To accomplish this we use a new deterministic physics engine which allows us to guarantee that all players are seeing the exact same roll. This means that the feeling of seeing a dice teeter on a natural 2 then fall to land on a 20 can finally be shared with the rest of the players.
We believe this adds a lot to the dice roller and are extremely happy to finally share the feature.
We also know that you may not want to share your rolls so we also have a hidden roll toggle that allows you to hide a roll from your players.
Another lesson we've learned over the last few years is that there are a lot of different dice systems in the tabletop space. Part of the design philosophy of the new dice system is an acknowledgement that we wouldn't be able to cater to them all with a single dice app. To accommodate this a big upcoming part of 2.0 is the addition of plug-ins that allow you to expand the functionality of Owlbear Rodeo.
To us this made dice a great fit for the new plug-in system as it meant that if you wanted to use a different dice system you could simply ignore our plug-in and create/use another one.
To make it easier for third-parties to expand on this system we will be releasing the dice system shown in this blog post as an open source project to demo some of the capabilities of the plug-in system.
As this new dice system will be released as a plug-in to Owlbear Rodeo 2.0 it will be released at the same time as the plug-in system. As of this month the core of the plug-in system is done and we're now working on polish and creating the various documentation needed to support a developer ecosystem.
We've got a lot more to share in the coming month so stay tuned.