Our second edition of Community Spotlight highlights none other than Youness Alaoui, more commonly known as KaKaRoTo, founder of The Forge VTT hosting platform as well as some of the most widely used modules in Foundry. He created the Beyond20 browser extension, enabling integration with DnD Beyond, as well as these well-known gems: The Furnace; Permission Viewer; Let Me Roll That For You; Polyglot; PopOut!; Trigger Happy and more!
Questions for KaKaRoTo? This article is paired with the Foundry Reddit, which is hosting an AMA (Ask Me Anything) with KaKaRoTo *HERE*
ALSO: This Saturday, May 1st at 1PM Pacific the Foundry Discord will be launching the very first episode of an official Foundry VTT Twitch series called “Hammering It Out”, which will feature KaKaRoTo! Tune in to the Foundry VTT Twitch channel to catch it.
FHub: How did you get started with Roleplaying Games? What is/are your favorite RPG(s)?
KKRT: This might come as a surprise, but I only discovered TTRPGs a few years ago. I had heard of D&D before of course, but never really knew what it was exactly. I think I’ve discovered what D&D was through the Netflix series Stranger Things and through The Big Bang Theory, and that brought back a lot of memories for the Choose Your Own Adventure fantasy novels which were my favorite books as a child. I was always a big fan of RPG video games, and to me, a video game’s value is in how well the story is told and the connection to the characters; so once I realized I could play any character I wanted and build my own story with infinite possibilities, I was hooked. I first started reading the Mistborn RPG rule book, as I already had it and I’m a huge Brandon Sanderson fan, but the learning curve was a bit too steep and I didn’t know anyone else who had read the Mistborn books, so I turned to Dungeons & Dragons 5th Edition.
I asked my sister if she knew anyone who would like to play. She got her World of Warcraft guild friends to join and we formed a group of 7 players + DM. Nobody wanted to be a DM so I nervously volunteered. I started watching Critical Role to try and learn about how games should be. We tried Lost Mine of Phandelver first, which didn’t go so well (due to my lack of experience and trying to emulate Matt Mercer), then we switched to Curse of Strahd, which was a much better experience. I DMd that game every week for a little over two years before the evil Strahd was slain.
My favorite RPG is D&D 5th edition, with Curse of Strahd as the game I loved the most because I’ve lived it for 2 years. I haven’t read a lot of the other D&D books as I don’t want to spoil anything and I still hold hope to be a player in a long term campaign once time permits. I also can’t answer a “what is your favorite” question without also giving a shout out to the Final Fantasy VII video game which made me fall in love with the RPG genre itself.
FHub: What’s it like to run The Forge? What took you down the path of running a VTT hosting platform?
KKRT: It’s exhausting, LOL! What took me down this path is probably insanity. I love Foundry, obviously, but as I’d been very active in the Foundry discord early on, I’ve found myself helping people try to get their routers configured over and over again and it was annoying having to answer the same questions all the time. I don’t like to repeat myself, so if I see a question get asked too often, then my instinct is that it means something needs to be fixed and made easier for the user. My very first contribution to Foundry has been to add support for UPnP to automatically open router ports so users didn’t need to do it manually anymore. That helped a lot but for some people, it wasn’t working and manually port forwarding was simply not possible (router is buggy, their ISP blocked the connections, they weren’t tech savvy enough to figure it out, etc…) and the usual answer we would give was “setup a server on AWS”.
One day, I had to setup a server on AWS myself, and that drove me crazy! The amount of complication and new terms and googling I had to do was insane. It took me hours just to get it done, and I realized that giving that answer to users who didn’t even understand how to do port forwarding in their routers was clearly a poor solution. I felt bad for having ever given that advice. There had to be a better way. I started thinking of a service that would bring the Roll20 user experience (in how you sign up, click a button and get started right away) to Foundry, lowering the barrier of entry and bringing with it features that are simply impossible to achieve in a self-hosted environment, like the automatic user management and invitation link system. At the time, I was also brainstorming a way to switch Foundry from one world to another automatically based on the URL you try to access. I merged both ideas and that’s where The Forge was born. I worked on it for a while, then that became the only thing I was doing.
For nearly a year, I’ve worked an average of 16 hours a day, 7 days a week. I had some short periods where I dipped to 12 hours a day, or I would “take the day off” (meaning I’d only do about 4 hours of work), but adrenaline had fueled me throughout the whole year. I wanted to provide a service that I would be proud of, one that I would be happy to use as a user. A quality service with great features that does more than just setup a server for you, one that enhances the experience as a whole and is affordable. I’ve worked so hard on optimizations that we were able to provide some unparalleled performance to users while offering the most affordable service with the most features and value.
I’ve recently had to adapt from being a software developer to being an entrepreneur, a business owner, a boss and about a dozen other titles. Managing projects and people and learning about payment methods, VAT, accounting, international law and more has been a challenge. The truth is that I hate that job of a CEO, and I would much rather be writing code all day every day, but I’m a bit stuck taking care of this business at the same time. By the end of the day, after having spent 8 or 10 hours just responding to emails and messages, I’m too exhausted to be writing code, so that was a bit depressing. Thankfully I now have some great people around me who are taking on a lot of that workload, so I can have more time doing what I love: adding cool features! I heard the term “the accidental entrepreneur” and I found it funny, because that’s what I am. I don’t regret becoming an entrepreneur, and I am extremely proud of everything that I’ve achieved, but yeah, I’d like to have more time to code.
FHub: What makes The Forge and the Forge community special?
KKRT: The Forge itself is special because it provides a unique user experience and brings Foundry Virtual Tabletop to the masses. Foundry was created with a self-hosted purpose. That meant sacrifices had to be made in the design, so users that are self hosting, whether at home or through a cloud provider or one of the other hosting partners, are unfortunately stuck within these same limitations. We’ve worked hard in the past year to break away from those limitations and provide a more cloud-oriented hosting solution that increases the performance and security beyond what you could ever get by running Foundry locally.
We simplify the experience of hosting, so that anyone who can afford a license can pick up and play a game, regardless of their background or technical knowledge. We have a massive focus on convenience which makes us the easiest hosting platform out to use and we go above and beyond with our features to make it even better than the core Foundry experience. Whether it’s the assets library, the game and user manager, the Bazaar, or the upcoming D&D Beyond integration, we want to make everything about your games easier and better.
With all due respect to the other hosts and what they bring to the table, we think we do a better job than any other hosting service in letting you do what’s important: playing with your friends.
Our community, especially our creators, have been huge contributors to our success as they have unified on our platform, allowing us to offer content that’s been long-divided, all on one service.
We have the only marketplace in the Foundry Virtual Tabletop scene; a generous marketplace that works hand-in-hand with our creators, whether they offer free or paid content. These creators trust us to sell their products and offer an alternative to their typical Patreon services, and we cannot thank them enough for placing their faith in us.
I’ve often said that we are not simply a hosting service for Foundry, despite what some people might think. We are a VTT platform that is powered by Foundry VTT. Anyone can host Foundry, whether on their machine, on a cloud provider, or on another hosting service, but nobody can offer the user experience and convenience that The Forge is uniquely positioned to provide. If you’ve ever used Beyond20, R20Converter, or any of my many other tools and modules, you’ll know what I mean. It just works, and you finally get to spend your time actually playing the game.
I’ve recently had to adapt from being a software developer to being an entrepeneur, a business owner, a boss and about a dozen other titles.— KaKaRoTo
FHub: How did programming become a part of your life?
KKRT: This is such an interesting question, as programming feels like it’s always been part of my life. I remember typing away at BASIC and QuickBASIC when I was probably 6 or 7 years old. My father was teaching me and I guess that’s where I got the bug for it (pun intended). I tried learning C++ when I was around 11 years old but I only had the “Visual C for Dummies” book. I didn’t have a PC at the time but I stubbornly tried to learn the language, not realizing that the book was just teaching me about the Windows application, not the programming language.
I first learned how to actually create something using code when I was in high school. I was maybe 16 years old and I had a programmable calculator (the TI-83). I was addicted to the “Snake” game on a Nokia phone belonging to one of my friends. I didn’t have a phone, but I had my calculator, so I decided to program that game into it. I figured that I should be able to do it…how hard can it be? That was also the time I learned about reverse engineering, because without realizing it, that’s what I was doing since my calculator didn’t have a user manual and there was no internet back then. I had to try and figure it out on my own.
I tried every one of the functions in the calculator’s menu until I learned what each function did and how I could use it. Once I knew how to program the calculator, I made a clone of the snake game and had a ton of fun!
When I went to university I studied computer science, then switched to software engineering. I joined the aMSN project, a FOSS (Free and Open Source Software) clone of the MSN Messenger client, and started to contribute as I wanted to add new features. That led me to more reverse engineering (of the MSN Protocol, authentication mechanisms, as well as an audio codec Microsoft used for voice messages). Eventually, I became the project leader for aMSN for 10 years, I joined Collabora, a software company that specialized in FOSS, and I kept hacking away on cool projects whenever I could. I mostly specialized on Voice Over IP technologies and low level network libraries. I was also pretty active in the PS3 hacking scene, trying to help PS3 homebrew game development emerge. I then left my job and became a consultant which allowed me to work on many different projects, the most prominent being Lulzbot, where I worked on Cura/Marlin (3D printer software) and Purism, for whom I worked on coreboot (open source BIOS) and reverse engineering the Intel FSP and Management Engine.
FHub: What advice would you give to module developers or even folks thinking about learning to code?
KKRT: As counter intuitive as it sounds, I would say “don’t ask for help”. I know that most teachers would tell you “don’t be afraid to ask” or “there are no stupid questions”, but I realize that in my case, what has honed my skills is that constant fear of being laughed at, or the fear of me asking a question and someone answering with the obvious answer. You don’t want to receive a LMGTFY answer, because that can be embarrassing, and also because the other person’s time is not worth less than your own. Do the work and try to find the answer on your own rather than counting on someone else to look it up for you.
For example, you wouldn’t ask “how can I open the token config dialog”, because you already know exactly where to find the answer: it’s right there in the Foundry code, since you know Foundry opens the token config dialog at some point, you just have to find where and how it does it. By being given an answer, you will tend to apply it then forget it, but by actually looking for the answer yourself, you will not only remember it more clearly because you suffered to find what you wanted, but you will also learn other things at the same time. While this takes longer than asking the question, it also saves you time in the long run because the next time you need something, you’ll be much more likely to find it quickly than asking the question of someone and then waiting for an answer. Even if you don’t find your answer, you’ll have learned something else along the way and you’ll have honed your skills. By using this kind of methodology (RTFM*+RTFS**) for years, you’ll become a better programmer.
I would say this applies both to veteran programmers and people looking to learn. In both cases, you need patience, passion and dedication, and you will look for the answer, find it and continuously get better.
*RTFM = Read the Freaking Manual
**RTFS = Read the Freaking Source
FHub: What features would you like to see further developed in Foundry? What does the future look like for Foundry and the Forge in your eyes?
KKRT: I think Foundry’s features are very complete and most of the new features at this point are just adding on an already amazing product. I mean, did you see that upcoming overhead tiles feature? It’s just an awesome feature that adds extra value to Foundry and I can’t wait to play with that.
One of the features I’m personally most excited about in Foundry is improvements to the Compendiums. This is something that I’ve touched on at my Patreon as one of the things I wanted to improve. I wanted to write a module for it but never got around to it. I think there is a lot of promise for what we could do with compendiums, making it easier to use or for creators to create modules with great content in an easy to manage way for players and DMs, and I can’t wait to see the improvements that Foundry will bring to the compendiums in a future release.
As to the future of the Forge and Foundry, I would love to see an even tighter integration between the two. So far, I’ve mostly been working on top of Foundry, handling the infrastructure around it in order to bring it to a state where it appears nearly cloud native. I’d like to work even more closely with Foundry on providing such an integrated solution, and provide improvements to the Foundry platform itself. I’ve written quite a few modules for Foundry to improve the quality of life of the DMs and players, and if I can do more of that, leveraging new abilities that the Forge provides, then I think that would be amazing.
I think Foundry’s features are very complete and most of the new features at this point are just adding on an already amazing product.— KaKaRoTo
FHub: What’s next for KaKaRoTo?
KKRT: Hopefully, a nice vacation on a beach somewhere! Haha!
Seriously though, I have so many plans that I don’t think I could get to do everything in a single lifetime. I’m getting quite a bit of excitement with the recently released beta of the D&D Beyond integration with The Forge, so I’d like to work a lot more on that. There is so much potential there, with a compendium browser and search tool, a character builder and all sorts of tools that could be built around the D&D Beyond API that I’m using with The Forge.
I also have some cool integration plans with Demiplane, and of course, my long awaited Time Machine feature for World Builder subscribers. I’m also noticing many artists struggling with the technical aspects of creating and distributing modules for Foundry and I’d like to be able to bring to the artist/creator community the same sort of convenience that I was able to bring to the users of Foundry.
I’d also like to spend a bit more time on Beyond20, maybe add some new amazing feature that will blow everyone’s mind! I’ve kept maintaining Beyond20 (shout out to Aeristoka, who has done a lot of the heavy lifting) and we’ve had some nice features recently, like the hotkeys support, but I feel like there is so much potential there. I have a few ideas that get me excited, but I don’t want to say anything just yet….
For more information from KaKaRoTo on programming and software development, you can visit his blog. For access to his R20 Converter (and much more), you can support him via his Patreon. Huge thanks to KaKaRoTo for making the time to speak with us!