My childhood friends and I have maintained close relationships into adulthood, and our mutual love of games is a big reason for that. This fact has recently presented me with the chance to bridge the gap between my love and appreciation for playing tabletop roleplaying games with my friends and my want to grow my full-stack engineering skillsets to further improve my future career prospects – specifically through the use of Foundry VTT to set up a virtual space for us to play Pathfinder 2e together. While I won’t get into any of the specifics of how this process worked in this post, I’d like to spend some time in this post discussing the merits of combining your hobbies with your learning, as well as briefly introduce a topic I’ll discuss in a future blog post.

If you’ve ever used one of the more common virtual tabletops such as Roll20, Foundry is pretty similar in application – it’s a virtual space where you can play any tabletop roleplaying game. While you can’t physically see one another rolling dice like you would in person, the stakes of each roll often feel just the same as you wonder if your friend will land that killing blow, or succeed on his final death save and ward off death for one more turn.
One of the main differences between Foundry and other tabletop simulators is the level of customization you can perform with it. Foundry truly shines as a result of the hundreds of user-made modules that can be installed (and easily crafted on your own and eager to do so) to tailor your tabletop experience. The other major difference is that it’s a standalone NodeJs application that’s easily launched from a player’s computer, allowing other players to simply connect with an IP and port number if the host doesn’t want to spend any additional time setting things up.

However, the high degree of customization available to the game itself also extends to hosting the application itself – which was just one more reason for my friends and I to migrate over to it from Roll20. Since I had recently finished up a personal project setting up a rudimentary Raspberry Pi cluster so that I could have my own mini-home server, I decided I would learn a bit more about server administration by running our foundry server persistently there – and have a lot of fun while doing so!
While in hindsight the overall process wasn’t too difficult, I did encounter several hiccups, and thus learning experiences, along the way. Some of these experiences included learning how to properly configure a reverse-proxy and enable HTTPS for a website, running applications persistently as a service, and setting up sambda share over a network. The latter of these – setting up the sambda share – proved to be more difficult than it should have been with Windows 11, and it’s something I’ll write up a guide for in a future blog post).

Overall, setting all of this up was extremely beneficial to me. I was even able to take some of what I learned one night while working on this and apply it to something that occurred unexpectedly the very next day at my job. And if it hadn’t already been clear yet from the way that I talk about it, Foundry has also been an incredible environment for playing Pathfinder 2e with my friends. I don’t often find ways to combine personal hobbies with learning pursuits, but I remain overjoyed that I was able to do so here just in time for a new campaign!