2021-06-18

Roll20 vs. FoundryVTT for GURPS

After using Roll20 for the 2-year DF Whiterock campaign, and using Foundry to run J.C. Connors' Hogwarts oneshot for two groups, I think I've got enough data to decide which to use for my next campaign.  To avoid burying the lede, I'll tell you that I prefer Foundry.

From the player's point of view, both VTTs are web-based, so if you have a computer and a supported web browser, you can play.  This is great compared to VTTs that require that every player install client software on their computer, because not all players are computer experts.

One difference is maturity.  Roll20 has been around for several years and is pretty entrenched as a popular VTT.  Foundry just hit the one-year anniversary of its release, so it's not brand new anymore, but it's not as mature.  In particular, right now we're in the middle of a transition between the 0.7.x and 0.8.x versions of Foundry, where the newer versions have more cool features but not all modules have been ported to the new versions yet.  So, basically, if you're already using Roll20 and you're happy with it, switching will cause you work.  Both products have marketplaces where you can buy things like tokens, but Roll20's is more mature and has more stuff.  Roll20 has a larger community of players who know it.

Another difference is the cost and payment model.  Roll20 is "freemium": it's free for basic use, but you have to pay for some features, like dynamic lighting and API access and more storage space.  If you pay, it's a subscription model (about $5/month for "Plus" and $10/month for "Pro", with a 15% discount if you pay for a whole year at once), so you'll have to keep paying periodically if you keep using it.  Foundry isn't free at all: you have to pay $50 for a license.  But once you have it, it's yours forever and you don't have to keep paying.  So which is cheaper is going to depend on what features you need and how long you want to use it.  If you're happy with the free version of Roll20, or can't afford a Foundry license, then free is good.  On the other hand, if you need any of the features that require paying in Roll20, and use it for more than a few months, Foundry's one-time cost is going to be cheaper than a Roll20 subscription.  Note that both VTTs are free for players: if the GM pays the cost, then any players hosted in the GM's games don't have to pay again.

Roll20 is Software As A Service: your games are hosted on Roll20's servers.  This has both advantages (there's less computer stuff for the GM to set up) and disadvantages (if their servers are busy hosting too many other games, your performance will suffer).  Foundry, on the other hand, is downloadable.  The GM has options: they can run it on their own computer, or they can go rent a server somewhere in the cloud and run it there, or they can use a service called Forge that's specifically aimed at hosting Foundry.

The ability to run your own server is nice, as you have complete control, but it also means you need to manage some things for yourself, which perhaps requires more computer skills than some GMs have, or takes time that the GM would rather spend elsewhere.  I chose to run Foundry on my Linux desktop, behind a home router, for minimal setup.  I had to setup port forwarding on my router for my players to be able to connect from outside my network.  And then I chose to setup a DNS name so I could tell my players "connect to hostname:port" instead of "connect to IP address:port".  I also had to setup accounts and passwords on my Foundry instance for all my players, a minor annoyance.  (Warning: Foundry's passwords are currently not stored in a cryptographically secure manner, so you want to be extra careful not to share them with anything else.  I recommend that the GM pick long random passwords for every player and put them in a password manager, then the players put their own password in their own password managers.)  For me, the big advantage of self-hosting is that, because I already automatically backup my desktop every night, I get nightly backups of my Foundry game.  If I mess something up, I can revert to a previous backup.  This gives great confidence to try things, knowing that no matter how horribly I mess things up, I can only lose one day's work.  So if I ever decide to move my Foundry instance off my desktop to a dedicated server somewhere, I'll make sure to do daily backups of that server too.

Another difference is the wealth of add-on modules available.  (Here, I use "module" to mean "code library" not "RPG adventure".)  Roll20 has been around for a long time, so it has developed support for a lot of game systems, but the JavaScript API support (which requires a Pro subscription to use) is somewhat limited.  Foundry has, in my opinion, a much better API, so there are already a ton of modules available, some of which do pretty impressive things.  General advice is start with the basics and not go crazy installing dozens of modules at first.  When I ran DF Whiterock in Roll20, I used one module to improve combat order tracking, and it was great.  For the Hogwarts adventure I ran in Foundry, I used a few modules: Dice So Nice for pretty animated dice, Actually Private Rolls so players can't see when the GM makes private rolls (as knowing that they rolled, even if you don't see the result, leaks information), PDFoundry for integrated access to my GURPS PDFs from inside Foundry, with hotlinking from the character sheets to rules references, and Turn Marker to put a marker under the active token in combat.  Plus Nose and Nick's unofficial GURPS system, which includes character sheets, importing characters from GCS or GCA, clickable skills and attributes on sheets, and a bunch of other stuff.  When I used Roll20, there were several GURPS character sheets available but I didn't feel like any of them were amazing, so we didn't really use them heavily, mostly using paper or PDF character sheets instead.  (One player did use a Roll20 sheet.)

The time setting up the VTT can be dwarfed by the time setting up an adventure, though.  It really comes down to how much the GM wants to show on screen.  If you want to run a game mostly "theater of the mind" and not use maps or virtual character sheets, then you don't really need a VTT at all: any chat client with a dice rolling plugin will do.  If you do want maps, then the amount of prep time required is directly proportional to how many maps you want and how pretty you want to make them.  I don't have any artistic ability, so I scrounge the Internet for maps and tokens, using free ones if available, or buying battle maps or token packs I like from artists.  If you can't make your own maps and tokens, it ends up being a lot easier to run a fantasy game than other genres, because so many of the maps and tokens out there are aimed at that genre.  DF Whiterock was based on the published Castle Whiterock adventure, which came with black and white maps, so I ended up digitally ripping the maps out of the PDF adventure with the pdfimages tool, then using the GIMP image editor to trace the maps to create background images, then pulling the background images into Roll20 to make base maps, then doing my dungeon dressing by finding tokens for furniture, rubble, doors, etc. and placing them on top of the background maps, and then manually adding lines to show where walls blocked line of sight.  This was a lot of work.

Doing maps in Foundry is pretty similar to doing them in Roll20.  You create a "scene" which is just like a Roll20 map, then you pick a background image, then you can add "tiles" which are background images that sit on top of the map (like furniture) and "tokens" which represent actors (like PCs, NPCs, or monsters).  And then you paint walls for your map to block line of sight, and add light sources.  One advantage that Foundry has over Roll20 is that doors are specifically supported.  In Roll20 I spent a lot of prep time placing door tokens with line of sight blockers under them, and then a lot of game time manually swinging the door token to the side and removing the line of sight blocker when a player opened the door.  In Foundry, when you're placing walls you can designate part of the wall as a door (or a secret door, or a window, or a one-way door) and then players can interact with it: click to open or close.  (Unless it's locked, in which case trying to open it makes a noise, and the players know their PCs need to unlock the door in-game, at which point the GM can click it to unlock it, and then the players can interact with it as a normal door.)  The killer feature I'd really like is auto-walling, where the computer interprets the art and figures out where to put line-of-sight-blocking walls and doors.  I believe that's doable for simple maps and really hard for complex maps.  Of course, if you buy your maps from an artist that fully supports your VTT, they can create the walls for you.

Doing tokens in Foundry is also pretty similar to doing tokens in Roll20.  Foundry does a few things better.  For one, tokens come with a facing arrow, so if you play a game where facing matters and use tokens whose facing is not obvious, you don't have to manually add facing indicators to your token art.  For another, Foundry has the distinction between "prototype tokens" and "tokens".  Basically, the prototype token is the mold from which all tokens for a particular actor are forged, while the token is one instance of a token on-screen.  For a singleton character like a PC or a named important NPC, this is a distinction without a difference, so you can click a checkbox to say "link actor data" and establish a 1:1 correspondence between the token and the actor, so that for example if you remove some hit points from the token in scene 1, those hit points will still be lost for the token for the same actor in scene 2.  But for an actor like "generic spear-orc" where you might have 50 different instances of the token across different maps, you can drag as many of the token as you like onto the screen, and each will have independent stats based on the prototype.  Wounding one does not harm the others.  In both VTTs, tokens can have vision and lighting.

"Fog of War" is another feature of most VTTs.  The players can only see roughly what their PC should be able to see.  Roll20 supports a basic version of Fog of War by default, where the GM manually uncovers parts of the map.  Then it supports Dynamic Lighting as a Pro feature, where the GM spends a lot of time adding line of sight blockers, and players can see what their token can see, based on lighting and vision and line of sight.  Foundry inverts this: dynamic lighting is the default, but there is a module available that supports manually cleared Fog of War for GMs who prefer that.  There are also options for whether previously uncovered parts of the map should remain uncovered simulating the PCs remembering what was there, or should go dark again, forcing the players to remember (or map!)

One complaint I had about Roll20 is that it wasn't great for large maps: if you made the map too many pixels, you got warning popups about performance, and used up more of your limited storage quota on their server, and your players with slower computers might notice decreased performance.  This disappointed me because when I wanted a huge map for the Immense Cavern level, I had to break it up into multiple maps, which was more work for me and less seamless for the players as we needed to do manual map moves whenever their tokens crossed a map boundary.  It also meant that long-range battles didn't happen much.  Unfortunately, the Hogwarts adventure didn't feature any huge maps (the biggest one I made was about 100 yards by 55 yards and worked great), so I haven't actually stress-tested Foundry there.  (I mean to do so at some point in the future; feel free to remind me if I forget.)

In Summary:

  • Roll20 is cheaper if you only need the free stuff.  Foundry is cheaper if you want advanced stuff.
  • Roll20 is more mature.  So it has more players, more art packs, more D&D adventures, etc.
  • Foundry is more flexible in terms of hosting.  Roll20 is simpler because there's only one way.
  • Foundry supports doors.
  • Foundry has better APIs for add-on modules, and thus more cool and useful modules.
  • Foundry has better GURPS character sheets.
  • I like Foundry better and plan to keep using it for future games.

2021-06-17

Warlock's Tunnel, FoundryVTT, and GURPS

I ran J.C. Connors' Hogwarts adventure The Warlock's Tunnel for two different groups recently.  Using Foundry Virtual TabletopGURPS, and Nose and Nick's unofficial GURPS module for Foundry.  Here's a review of all of the above.

First, the adventure.  Without spoilers, in case you might want to play it.  It's set at Hogwarts in 1987, a few years before the first Harry Potter book.  A Hufflepuff prefect is missing, and the PCs should want to investigate.  (But will they?  You never know with players.)  The adventure is for 4 150-point second-year student wizards.  It comes with 7 pregenerated PCs, so the players can basically pick whichever 4 out of 7 they like, and go.  Though it should still play fine, just a bit easier or harder, if you have 5 or 3 players.  The pregenerated PCs are interesting, with various personalities, backstories, spells, skills, and Houses.  One of them has a pet Niffler.  One is an American who's recently moved to the UK and transferred to Hogwarts.  One is a prankster.  One is way too good a student.  Etc.  Very fun characters.

As an introductory GURPS adventure, it only needs the GURPS 4E Basic Set and GURPS Magic.  The various GURPS spells used have been given Harry Potter-ish names, and a few new spells are included in the adventure.  As an introductory GURPS adventure, it's a pretty good choice, as most people already know the Harry Potter background, so you don't have to explain too much backstory.  And you can mostly avoid getting too bogged down in rules, just "roll 3d6 and try to roll under this attribute or skill" can cover most things.  GURPS has a reputation for complexity, but the main rule to avoid problems is to not use all of it.  Just use what you need.  In this case, that's a few basic rules and a few spells.  And the characters are already made for you, which is the hardest part.  I don't want to go to deep into reviewing the adventure, because I don't want to spoil it, but it's your basic investigation / adventure story.  The adventure says you can play it in a couple of hours; both of my groups took about 4 hours, but everything is a bit slower over the Internet.  Overall, I think it's a good adventure, but suffers a bit from the "we're stuck so let's ask a professor for help" problem that's endemic to the Harry Potter universe.  If the PCs have any sense, once they realize their out of their depth they'll run to Professor McGonagall or Professor Dumbledore for backup.  If you're a real-life 12-year-old and you find out that horrible crimes are happening, yes, you should totally get an adult to deal with it.  But if you're the hero in a Harry Potter book, letting the adults solve your problems is no fun.  So the GM has to come up with reasons for the PCs not to do it that way.

(As an aside, J.C. Connors has a bunch of other free oneshot adventures available at 1shotadventures.com.  They are surprisingly professionally put together for free adventures.  Most of them are for GURPS, but some also have versions for other systems like D&D or Call of Cthulhu available.  A couple are solo adventures in case you don't have a gaming group handy.  Check them out.)

How does GURPS work for Harry Potter?  Pretty well, I think.  GURPS has a bunch of magic systems, but the most basic one, used here, is spells-as-skills.  Each of the kid wizards has a dozen or so spells, not too overwhelming, and then a dozen or so other skills.  If you want to cast a spell, you roll 3d6 and try to roll less than or equal to your spell skill.  If you want to use another skill, same thing.  If you want to try a skill you don't have on your sheet, you're free to try, but defaults are usually around IQ-5 or DX-5, so your odds of success are not great.  Of course the GM can apply modifiers ("You want to try to use your Animal Handling [Nifflers] on an animal that's nothing at all like a Niffler?  Fine, roll at -4."), but that's most of it.

How does FoundryVTT work?  Well, there are a bunch of intro videos on YouTube.  But basically it's a virtual tabletop, like Roll20 or MapTools or Fantasy Grounds or Owlbear Rodeo or...  The good thing is that this adventure comes with tokens for the PCs and some major NPCs, so you don't have to make them.  And it also comes with a bunch of picture handouts, which Foundry lets the GM show to the players.  The bad thing is that it only comes with one map, so if you want maps, the GM has some work to do.  I've run a lot of GURPS in Roll20, and a bit in MapTools, and so far, after only running one adventure in Foundry, I like Foundry better than either.  Once you load up Nose and Nick's unofficial GURPS module, you have GURPS character sheets, including import from character generation tools like GCS or GCA.  You can click on a skill or attribute on your character sheet to roll against it.  Foundry supports maps with hexes, not just squares.  It supports token facing, with a built-in facing arrow so you don't have to add one to your tokens.  And token vision, lighting, etc. are built-in.  As are a bunch of token status modifiers for GURPS, like Stunned, Prone, Nauseated, Shocked, Kneeling, etc.

The first group I ran the adventure for were experienced RPG players who hadn't tried GURPS before.  They all grasped "click on the skill to roll against it" immediately, and that's as much GURPS as they needed to learn.  We used Jitsi for voice and video with that group, and it worked great.  The second group were mostly GURPS veterans who hadn't tried Foundry before.  We used Discord for voice, no video, and it also worked great.

Minor issues: tokens don't have vision by default.  You need to click "token vision" to let them see, which is annoying.  I forgot to assign one PC token vision, so that player had problems seeing things until I fixed that.  Then I only fixed it on one copy of their token, not on their "prototype token" that would be used forevermore, so the problem came back when the players moved to another map.  Eventually I got it fixed right.  Also, setting up lighting for each token can be a bit of work, so for the maps that were dark, I just turned on map-wide global illumination once a couple of PCs cast Continual Light spells, to make things simpler.  (I would not do that in a more hardcore dungeon crawling game, but this is a light fluffy oneshot about young student wizards, so not annoying the players too much with limited light radius seemed like the right call.)

As far as Foundry modules go, Nose and Nick's GURPS support for Foundry is under rapid development, but already really solid.  It doesn't support quite as much automation as some of the Foundry D&D modules do, because GURPS doesn't have a free System Reference Doc with rules that you are explicitly allowed to use like D&D does, and Nose and Nick want to keep Steve Jackson Games from getting mad at them for automating too much, but it supports the basics like "click on a number on the sheet to roll 3d6 and try to roll under that number" and "click on a weapon's damage to roll that much damage."  And that's most of what you need.  (If you want to add tables that they have deliberately left out to respect copyrights, like the critical hit table or reaction table, it's not that hard: Foundry makes it easy to add rollable tables.)  Other modules we used include PDFoundry (PDF viewer built into Foundry, so you can click on a rules reference on your character sheet and bring up that page of the rules, if you own that rulebook in PDF form), Dice So Nice (animated dice flying all over your screen), and Turn Marker (put an animated marker under the token whose turn it is in combat so the player hopefully notices and goes before you have to remind them).

Overall, I enjoyed this adventure and will probably run it again in the future.  It's a good simple short demonstration of GURPS.  I was also pretty happy with my first experience using Foundry to run an RPG.  Thanks to the authors of everything we used.

Next up: I'd like to run another J.C. Connors oneshot, Who Tracks the Steps of Glory, because it's Star Trek and I haven't run a Sci-Fi game in a while, so I need practice with stuff like high-tech ranged combat and starships.  After that, I want to run a GURPS Traveller campaign.