Show HN: I built a virtual tabletop for playing Dungeons and Dragons (diceright.com)
Diceright is a virtual tabletop for playing dungeons and dragons with friends on the web. You can watch a quick overview of how it works here: https://tinyurl.com/diceright. And there’s a list of the main features right on the homepage.
It’s a Ruby on Rails site that makes heavy use of action cable for keeping the maps and tokens in sync for all players. On the front end, I’m using HTML canvas for the maps and a js library called fabric.js for interacting with the canvas. Otherwise, just jQuery on the front end. I optimized it all to work on mobile too.
I built this as a side project for fun over of the past couple years. It took a lot longer than expected, but it was also a lot of fun. I did all the design / UX for it too which was a struggle at first but was a great learning experience.
Let me know what you think and if you have any questions. Thanks!
125 comments
[ 3.1 ms ] story [ 68.3 ms ] threadMan, so many things. I think maybe the hardest thing was really getting into the weeds of all the class/race features and modeling them all in a way that made sense to the user and would 'just work'.
There are features that add damage, but only under some circumstances. Features that change at different levels. Features where you get to pick between a few options and then they also change at different levels. Just a lot to model out. And a lot of hard decisions about how much to automate and how much to leave on the user.
Also, designing and building it all to work on mobile ended up being more than I expected because when adding new features I often had to go back and make it mobile friendly too.
Oh and doing the dynamic lighting (where you can add walls and lights to a map and 'see' what player tokens would see) was pretty tough because it involved learning some math to do those calculations. But that was also pretty fun.
There are a few bad tabletops out there. This one seems like it actually had a lot of thought put in! But it's hard to tell apart from the others at a glance. The videos aren't really readable on a phone and the paragraphs don't convey how each feature works.
And if you do get a chance to check it out on desktop, I'd love to know what you think.
But I'm hoping eventually Diceright will have enough 'killer features' that people will give it a shot anyway. Would be great if you guys would consider it once you finish your current campaign. Thanks!
https://github.com/kakaroto/R20Converter
Worth checking out if you could support one of those as an import target.
[1] edit: That I was aware of when writing this comment initially.
Foundry's upside is that it's extensible (modules), which increases traction and nurtures a community.
Most of the FOSS attempts will probably die if they won't take that approach (extensibility that is).
They recently released a more feature-rich cloud-based V2, but simultaneously released the source and self-hostable images for their V1.
Edit: I meant to add this initially but just forgot: https://blog.owlbear.rodeo/owlbear-rodeo-legacy-edition/
Edit: See https://foundryvtt.wiki/en/development/guides/pixi
Edit2: For an example of why gamedev toolkits don't necessarily produce performant, highly usable software, check out Dungeondraft (https://dungeondraft.net/). It's built with Godot and gets the job done, but as an application it's a total mess. I'm working on an alternative but (surprise!) it's a challenge.
> Foundry is selfhostable but it's a clunky proprietary node.js application and there's a ton of janky UI issues.
I don't think it's that bizarre when a genuinely good product gets this kinda reception. It's a thankless job
But, I can't understand if this is a subscription service or I can simply self-host. I don't want to sign up without having that information first.
you already did it which in a way means it's already paid for. just donate it. open source it? set it free
but it's your choice to make.
Think of Lord of the Rings (both because it's a good example to make my point, and because it's the source of a lot of the inspiration for D&D). All the fellowship are independently given a vague mission to go to Rivendell. They then decide, in Rivendell, to embark on a quest to take the ring to Mordor. Consequences split them up on separate missions along the way; in a D&D game, splitting the party is poor etiquette, but it's a good example of how your immediate next steps can change in unpredictable ways. The overall journey of any given character is decided by that character based on their circumstances and personal values.
Every group has their own style. The DM might be very strict or loose with his reading of the rules. Players could be more or less into the role playing aspect (do you have to do voices and talk in character or not). Ultimately, your character can do whatever the DM allows them to do. That might seem “unfair” but the DM is not your opponent trying to beat you, they’re telling a story with you.
There’s not really a win condition. Some groups play campaign modules which are pre-written stories the DM interprets for your group. Some make it up on the fly like an improv comedy group or nerd jazz.
I don’t really remember specific combat we remember the fun and stories we told, even if they’re pretty lame compared to just reading a book. But they’re our unique story.
And if I put a ton of time into D&D that looks like “3D printing terrain” or “painting miniatures” (which are cool little statues so have some inherent aesthetic value) which are also fun hobbies (in my opinion) vs “accruing lots of thin pieces of cardboard” or “number goes up on screen”.
^1: Your DM can define an end goal/win condition for your campaign, though.
That's...highly variable. Page 236 of the 5th Edition Dungeon Master’s Guide addresses three valid approaches with pros and cons (nominally to the dice, but because of the role the dice play implicitly to the rules as a whole) ranging from using the rules, stats, and dice rolls for everything, to using the DM’s narrative judgment for everything, to a hybrid blended approach. (Previous editions of the rules had similar license to the same range of approaches with different framing.)
It's not exactly accurate that the DM can change the rules as you go. The DM will sometimes say you can't do x or y, but a good DM doesn't do that capriciously. When I DM, I sometimes tell players flat-out "you can't do that", but it's because they've tried to do something which isn't possible in the fictional world (like if someone says they want to jump so high they land on the moon or whatever). Most of the time, when a player says they want to do something, they should either succeed outright (because it's not actually challenging for the character to do), or the rules of the game will give a clear way to determine success/failure. It sounds like you maybe didn't have a very good DM.
The most straightforward adventures that typically have a "win condition" are one shots/self-contained adventures from either WoTC or 3rd Party Publishers, like Curse of Strahd, Waterdeep: Dragon Heist, etc.
However, a lot of D&D groups I've played with might have characters die, but will rarely have a group "lose". However, because every group runs things a bit differently, a different group can drastically change how the game feels.
One thing to consider is that the DM you have can make a massive impact on your enjoyment of the game. I'd definitely encourage you to give it another shot, maybe with a different DM that more fits what you're looking for. But then again, it's also definitely not for everyone. We've had plenty of friend come into our group and just decide it wasn't for them.
rule breaking is a kind of error handling, to get the game on track, sometimes as a plotline, such as chaotic magic zones, it shouldnt be the rule to break the rules.
some groups have house rules, and long game history. if you were sat down in midst of a campaign thats confusing.
some people really struggle with being a dungeon master [DM], but each DM has to play to the group and keep it provocative for everyone.
whether hobbits, or eagles did it, it certainly caused a power vacuum, and the ensueing times would be the entry scenario to the next campaign.
Now, whether as DM or player, I enjoy it not as a game to win, but as a story to explore. Like an interactive movie. Even when I am the author of the plot as DM, I can't predict what my players will do, and it becomes an enjoyable discovery as they force plot twists from their end.
What we do currently:
Take a map from a PDF, load in Paint program (paint.net/photoshop/gimp/whatever), create a layer of BLACK over it. Share the screen. The DM slowly erases BLACK as we move and discover the map.
This way, the players cannot see the map. The DM can see the map. The players get to slowly discover the map.
We do dice rolls and type their output into chat. Our player sheets are player sheets, and we scanned and sent pdf's to DM. We keep group inventory via chat. Everything else is basically overkill, because it requires the DM to redesign maps via some web app and DM's already don't have time.
*edit
to be clear. we've looked into them all. the solution above is what we've now been doing for _years_ on our D&D game. Goddamn erake (our BBG).
I suppose it make a difference that we are playing Rappan Attuk and not a mainline D&D campaign. There's a lot less dungeon crawling in today's D&D, but Rappan Attuk makes up for all of it with about 600 pages of one dungeon.
I always hear the cursed phrase “I guess I attack?”
And that’s how I know the fight kind of sucks.
I often prefer "theater of the mind" over maps as that can be much more open-ended and encourage creativity. Many of the D&D podcasts use "theater of the mind", and they are great (special shout out to naddpod.com)
In the 70’s, that space was much less populated, so pencil and paper RPGs might have been the best small tactical games people could get their hands on (not everybody wanted to sell their houses for Warhammer miniatures).
D&D is rooted in a dice and miniatures, wargame, light on the scenario building
https://en.wikipedia.org/wiki/Chainmail_(game)
enough people liked it, and enough model,miniature, hobby was around that it held, and became more embellished over time.
It’s a very complex and interesting game to play. Unfortunately newer editions have gutted this gameplay by removing xp for gold (thus removing the default goal of most dungeons) and removing all of the procedural dungeon crawling rules. The tabletop form is still superior to CRPGs as your ability to interact with the world itself and overcome challenges in interesting ways is only limited by your imagination and ability to creatively apply the tools available to your character.
Not every story has to be about emotions and intrigue and a contest of minds. Sometimes you meet a monster and kill it, and loot its corpse and the only thing that's missing is taking a selfie next to it.
Then again Call of Cthulhu is one of my favourite games. I guess it's fun seeing things from the other side of the fence sometimes. But still, it's not all about feelings: you can tell a great story about how you keep running from madness-inducing monsters.
With Diceright (and Im sure with other VTTs), my goal was to help streamline certain aspects of the game so players can focus on the fun stuff. Mostly around combat and tracking all your character details. So for combat, on Diceright, you can target enemies when you attack and then when you damage them, the player gets an alert with a CTA to apply the damage - so players aren't always asking, wait who did you attack? How much was the damage again?
And on the character sheet side, with a standard character sheet, I've often found myself looking at my AC or one of my stats and not totally remembering how I got to that number. Diceright keeps track of all your bonuses for you and shows you how your stats were calculated.
Those are definitely all things you can do on your own, but it can be nice to have a computer automate them for you.
Again, totally agree that the system you've got works. Just sharing some of my considerations when I went into building this.
Two things that would make this tool easier to use:
1. Let me manually tune the grid in the VTT to the size of the grid in the image, either by selecting one square and having the system adjust the size and position of the grid to that, or by selecting some number of squares and specifying how many squares I selected, which would give a more accurate measurement.
2. Let me draw rooms with a box tool as well as walls with the wall tool, and let those rooms (by default) snap to the grid. Extra points if I can create a box and then add new vertices to drag out a less boxy shape (i.e. to add alcoves, cutouts, etc).
I haven't yet seen a VTT that can handle grids and boxes and rooms automatically, but as soon as someone figures out how to do AI or machine learning-powered map analysis to turn an image of a map into a (mostly? partly?) usable setup (with tweaks to be done afterwards) is going to get a lot of attention.
same idea starting black and slow reveal, laptop,and 2nd display, with players around the table.
the enviro sounds came later.
I wouldn’t suggest you change, but to suggest this method is in any way superior to actually learning the tools and how they work is ridiculous.
And if a DM can’t spare the hour or so to reach parity with this method, that’s gonna be a long term problem for the table.
We've found no VTT tool that can do basic fog of war _without_ loading in a bunch of other features we simply don't need.
Is it superior? I never said that, I said that the feature set was overkill.
A long term problem? Like I said above, our game has been going for _4_ years.
A big problem with these tools is the assumption that your players won't do something you didn't plan for. Which the system I described deals with well. Our DM has many times spent hours planning our game only for us to spend the entire time slot in one location, or deciding to go somewhere else. When that happens, all he has to do is roll out the setting for us to use our imaginations, or to load up a new image and black layer and share it, 5 - 10 minutes tops.
So do you just play online with strangers? Or do you also play in person?
Ah, that were great times back then...
I'd join as many RPG reddits, forums and discord channels as you can find and then just periodically scout to see if you can spot any emerging trend and ride the wave. I personally reckon it's only a matter of time until there's some show on par with Critical Role's popularity but for detective RPGs, superheroes, sci-fi, Cthulu or whatever.
Which somewhat limits the room for disruption in that (D&D-specific, not RPG VTT more generally) market.
The other option is to make it game agnostic and focus only on the map part.
It strikes me as slightly ironic, since games like 40k are traditionally extremely high $ investment hobbies, so seemingly a good market for the side-hustle tech crowd.
I really don’t think games workshop has the corporate culture to catch this wave though, which makes the prospect of a IP lawsuit a big deterrent to even OS work.
Msg me if you want a link to my last pass at it as a react app. Got slowed down figuring out how to offload work onto the server efficiently, and also daunted at the prospect of translating all the simpler unit rules into JSON. Of course, with LLMs, that task just became about 1000x easier :)
Unit rules are a special problem--Wahapedia has a csv download of unit and weapon rules.. I think there were several thousand in 9th edition.
If your game is centered around maps and minatures, is it also centered around combat? Just curious to find out how other people play.
Over time, I have started moving more towards the shared storytelling aspects of the game. Currently in our game, we do a light combat mix, where we only really enter combat once every 3 or 4 sessions.
Generally, it's nice that there are so many different RPG systems out there now so people can really find the ones that fit what they like.
We sometime play "dogma" scenarios where you are: a geriatric near 1st lvl , a 12 year old 1st lvl thief etc. but i'm getting old so these days its a social happening and not an all out drinking slugfest
So one of my goals with Diceright was to make it as welcoming as possible to new players (not really an easy task given how complex DnD is). To that end, I wanted to make it easy to sign on and get started, right away. And I wanted to make it easy to use on your phone. Foundry has a ton going for it, but it does require initial work to get set up and it can be a bit clunky for someone who's never used it.
Similarly, I wanted to make character creation as seamless as possible. On Diceright you just pick your classes and all the features get added automatically and rolled up to your overall character sheet (and of course you can modify anything you'd like). It's easy to make characters quickly and at the same time, you never lose track of where features or stat bonuses come from.
All that being said, Foundry as a ton of stuff that Diceright doesn't have yet, so I'm not trying to say it can go toe to toe on features. More just giving how I think my overall approach differed.
There's a true virtual tabletop: Jeri Ellsworth's Tilt Five, where the players wear AR goggles and see a 3D tabletop game world. Players look at a tabletop mat which provides an alignment target and neutral background. One of the more workable AR systems.
[1] https://www.laptopmag.com/best-picks/best-virtual-tabletop-s...
Our is a live 3D, free, no hassle online D&D VTT with a marketplace of hundreds of free miniatures. You can also play in 2D if you don't like 3D with top down, and isometric view.
You can see all the tokens on our Marketplace here, https://rolltable.app/marketplace
You can just do your own Show HN.
I've been using this site for a little over 3 years now and I was wondering the same thing about replying with my own VTT web app.
LG 27" Libero Monitor
https://www.lg.com/us/monitors/lg-27mq70qc-s-ips-monitor
Also this one looked interesting but the price point was a bit higher and it seemed locked to their app store:
https://infinitygametable.com
Couple of suggestions from a heavy user of Roll20 ...
Too many menus and all look slightly different: you have left and right panels, the menu and the hover tool bar. Put the menu at the top of the right panel and, if you close it, have a simple < button at the top right to open it again. This would eliminate the weird space between the Action Widget and the right sidebar. Could the right and left action bars be merged?
There appears to be no way for the DM to fix a mistake such as a player accidentally ending their turn early.
Some data entry tasks (e.g. setting character scores) have unnecessary steps, like I have to click "Set Strength" instead of just having a pull down. And I have to set each stat individually and click update instead of setting all 6 and then have one update button. Stats really should also have a point buy and standard array options, most people I know use one of these.
Same will spell selection ... each spell slot is a selection instead of a "Pick 6 1st Level Spells" or "Pick 2 Cantrips" multi-select.
[ < v Add Tokens ]
Yeah, for the player the left bar being the "battle log" and the right bar being their character isn't a bad UX if the rest of the clutter is reduced.
Perhaps add a notification icon for when users need to be made aware some result is ready for their review/acknowledgement.