An Analysis of Roll 20

In my last post I talked about how I wanted to create my own take on Roll 20. I won’t explain what exactly Roll 20 is in this post, because if you aren’t familiar with Roll 20, this post is likely to not make much sense anyway.

Instead, this post is going to mostly be a long list of things that have been bothering me about Roll 20, and how I plan on doing it differently. This list is in no particular order.

Mediocre Voice Support, on by Default

Roll 20 voice chat is on by default, but in my experience nobody actually uses it. Instead of being useful, it’s a thing that you have to teach everyone how to turn off when they first join. If they don’t, you receive their voice twice and it creates some supremely bad audio.

My version just won’t support voice/video chat at all. If you want that, use Google Hangouts, or Skype, or Discord, or whatever else. They do a better job than I would do anyway. By not taking on the voice/video chat problems, I can also cut development time and cost of running the service!

Really Quite Horrible Character Sheets

I use Roll 20 for both Pathfinder and D&D 5E. I use Pathfinder as a DM and 5E as a player. The character sheets in both piss me off every time I use them. For 5E, I have used two different character sheets. The first was horrifically slow. The second is much faster, but I almost constantly run into things it just cannot deal with, such as adding a custom class that isn’t your first class. My character recently took a level of Rune Scribe, a first-party class that’s part of Unearthed Arcana. This is my twelfth character level, but if I put it into my official character sheet, it lists it as my main character class. And I still can’t figure out how to make Eldritch Blast actually work in a reasonable way.

So I’ve mostly decided to use custom macros in Roll 20 rather than use the character sheet. (Sounds familiar if you read my last post, yeah?)

The Pathfinder character sheet is more complete and I rarely find things I can’t make work. It’s just slow. And there’s a few cases where it doesn’t recompute something correctly, or it adds things slightly incorrectly so I have to add arbitrary 1s to untyped bonuses so make the math work out right. At least it supports that sort of number fudging, but it necessitates my players doing all the math themselves to confirm that the character sheet is doing it right, then trying to come up with the right place to add that arbitrary bonus.

Oh, and then remember why they put that bonus in every time they level up.

So how I am going to do this better? Simple.

First, all character sheets are going to be first-party. Why are there two 5e character sheets? Because character sheets are community-created. Community-created sheets are nice, in theory, but in practice I think they haven’t worked out particularly well.

Instead, there will be (at least at the beginning) a single first-party character sheet. How will it support everything? It will be based on a combination of Dicecloud and my own bot character sheets. Dicecloud is fairly rough, but its overall philosophy is brilliant and worthy of emulation.

Annoyingly Lax Permissions

There is no way of preventing users from drawing on your maps. Every game I’ve been part of has had at least one person who thinks they are funny drawing things on maps. Sometimes I’ve been that player. Being able to restrict that has been requested many many times and the official answer has basically always been “get more mature players.” I find that answer to be unsatisfactory.

Layers Are Annoying To Use

Roll20 has three layers — map, token, and DM. The map is for things like the base map that rarely/never changes. The token layer is for things that move around like your tokens. The DM layer is for things that are hidden from the players. When a monster burrows into the ground or is stealthed you might be tempted to put them on the DM layer.

Unfortunately to interact with anything on the DM layer you have to switch to the DM layer explicitly. Then switch back to the token layer to interact with anything on the token layer. This makes using the DM layer for anything except for map labels just annoying enough that I’ve stopped doing so. This is a UX problem with a relatively simple fix — just let me click on DM-layer things no matter what layer I’m on.

Programming is Godawful

There are two programming languages in Roll 20. One requires a paid account to use and that one looks like JavaScript. It allows you to alter token stats and all sorts of other really cool stuff. But you have to pay to use it.

The free language isn’t just the same as the paid language with some features removed. No, no. It’s an entirely different language that is god awful. You sometimes surround your actions with { and }. Sometimes when you start nesting things you need to escape your {s and }s so that they are interpreted correctly.

Here’s an example directly off of Roll 20’s tutorials:

?{Name of Query|Label 1,?{value1|Label 1A,value1A|Label 1B,value1B}|Label 2,?{value2|value2}}

I may have just thrown up in my mouth a little.

The solution to this is obvious and something Roll 20 itself could do (admittedly with a painful transition period): give the free users a version of the real programming language, possibly with some features removed. I have not decided how much power will be exposed for free (at the point where I’m recreating Roll 20, realistically I am going to have to have some way to make money), but I’m definitely not going to give my free users a worse core language. That’s just obnoxious.

“No Token Selected”

Putting macros into your toolbar in the most obvious/documented way requires you to select your token before you can use it. For players they usually are in control of a single token, yet they have to have that token selected to use their macro. For a DM that macro is often designed for a single token, but again we have to selected it.

This is a relatively small UX issue that has big repercussions. That’s the underlying theme with my hatred of Roll 20 — it’s almost entirely easily fixable UX issues that add up to a very annoying experience.