Tinkering around with different virtual table-top applications this morning, I realized one could make an entire app just around rolling dice. They’re such complicated little objects, and we use them in so many ways, that making a robust system for virtual dice actually has quite a lot of requirements. Of course I have no time to execute a project like this (though it is totally within my wheelhouse), still I found it entertaining to write up a list of all the things I’d want out of the perfect virtual dice roller.
3D – They’ve got to be 3D rendered, and bounce around, and occasionally have those exciting moments when it just tips over onto a different face than what you expected. The nearly-a-20 is just about as exciting as the natural 20.
Render Anywhere – Ideally, the app would consist of a pretty slim little bar of buttons to roll the dice, which would then render wherever I want. This should include options for:
- On top of my entire desktop, rolling around over all other applications.
- Constrained to the bounds of a single monitor for those of us with multiple.
- Constrained to a specific window of my choosing. In which case other windows should render on top of the dice. But in this case it should be any window – eg, on top of my whiteboard app or my chat window or whatever.
- Ability to open a blank “dice tray” window, either private or shared (see “Networked” below). Kind of the same thing as above, but creates its own window rather than using an existing app window.
Customizable – I should lots of options for what my dice look like, whether that’s old school pastel with chipped edges, shiny metallic, or whatever. I want to choose a default look so you can tell my dice from another player’s, and I want to be able to re-create my special lucky black and gold English d20 (which I bought on my first trip to England).
Basic object permanence rules – dice should behave like real physical dice:
- They stay in place after being rolled, until I click to remove them back to my virtual dice bag.
- A button to clear all my dice, all dice from a specific window, all dice everywhere, and maybe a toggle to auto-clear on each new roll.
- They can be moved around after being rolled, or turned to show a different face.
- Ownership can be transferred to another player.
- They can be organized into groups, with options to operate per-group (re-roll, clear, ungroup, etc). Thinking of what’s needed to play Fiasco here.
Sharing – I should be able to connect to other players so we can see each other’s dice and have shared rolling surfaces. Each player can specify where and how to render the shared surface (eg. in this specific window, across my entire screen, etc.)
Synchronization – Rolling animations should be synchronized so we all see exactly the same thing. When someone’s d20 hesitates and then tips over to a “1”, we should all see that at as close to the exact same time as possible.
Spaces – We should be able to have shared space where we can push dice around, change ownership of dice, etc, but also private dice trays that others can see but not touch.
Platforms – working on as many different kinds of devices as possible would be great. Maybe I want to use my computer screen for the VTT and have the dice app running on my iPad sitting next to me on the table. Maybe including a web version would be nice too, for those players who can’t be bothered to install yet another app. Probably the web version would limit to display within its own browser pane.
Audio – dice should be able to make a pleasing clatter when rolled, but also I should be able to turn that off when it drives me nuts.
Bonuses – it would be nice if I could roll 1d20+4, and see the natural roll of the die, plus maybe a little overlay that shows the final value separately.
Tallies – if I roll 20d6, it should show the total somewhere for me automatically. This should update if I re-roll all the 1’s.
Well, that’s all I’m thinking of for now. It would be pretty sweet I think to have this as a separate stand-alone app, so it could be used alongside whatever other tools you want to use for online gaming. Unfortunately most virtual dice are just another bullet on an already very long list of features for virtual table tops, which I think means they are often not as feature rich as I’ve outlined above. But if by some miracle there already exists an app that does all of the above, please let me know! I suspect not, as otherwise surely we’d all be using it already, right?