Welcome to this episode of “Scopique’s Stream of Consciousness That Hopefully Leads to a Point”.

On this July 4th here in the U.S., with all patriotic businesses closed or operating on reduced hours, my wife and I are at home, as we always are on account of both of us working for companies which have no physical presence for us to go to. Today, though, without work, my wife was Bored(tm). She’s not very good at hobbies and being a “vacation day” she assumed it would be filled with wall-to-wall merriment. Unfortunately, it’s raining, and 900% humidity, and other People We Know already have plans, and I am a notorious Do Nothing-er. We have done all of the shopping we need and want to do, so she was pretty much without purpose, and it was getting on her last nerve.

I thought maybe we could play one of the many board games I have accumulated but have never played, but then realized that she doesn’t like complex games. Oddly, I got it in my head that maybe I could teach her D&D or something, but then again, there’s a lot of “theater of the mind” stuff in involved with that, which I think is kind of on-par with the board games.

This led me to think about TTRPG pickup games. As a long-time GM, one of the things that always causes me to sweat is having to come up with situations on the fly — I know, responding to player’s desire to avoid the planned adventure at all costs is core to being a GM. I am blaming old age because I used to be good at it. Scratch that: I used to have plans to counter all inevitabilities. It’s literally because of sudden panics like those that I got into programming, in fact.

After high school and before college, I wasn’t playing TTRPGs much anymore. I still had all of my core rule books and game boxes and thought that maybe I might be able to get some games my freshman year (oh, how hindsight makes fools of us all!). With time on my hands that summer I thought that maybe I could automate aspects of a TTRPG with a computer.

This was 1992, or thereabouts, so computers were still mainly used in Business, or were in the home for pseudo-business purposes. Gaming was a massive driver of home sales, of course, and it was gaming that pushed improvements in graphics and audio. I had no idea what was involved in writing games back then because my entire programming history involved hand-typing programs from the backs of magazines that did little more than throw menus up on the screen. At that point I figured that a TTRPG character sheet would be “graphics-lite” as it was little more than a form that a user could fill out and somehow save, load, and edit. Given the ability to store multiple sheets, a GM could design a form and have a growing library for their TTRPG gaming sessions. With fast searching and maybe a table of contents, it would be a lot quicker than having to look up items or creatures or loot or encounters than it had been via indices spanning several hardcover books.

So, I did what any teen in the early 90’s did: I went to the warez sites. I found Visual Basic 6.0. I somehow managed to coerce my aunt into paying for an online course to help me learn it. The download of Visual Basic took all night; I had wheeled the home computer cart into my bedroom after everyone else had gone to bed, dialed into “The Internet”, and proceeded to spend 8 hours sweating through the process, hoping that there wouldn’t be some random phoneline disruption or realignment of the Earth’s magnetic poles that would nuke the entire endeavor. To this day I am still surprised that I got it all without incident in one go.

My goal was simple, at least in my head: create a Forms app that would allow a regular GM to drag elements from a sidebar and position them on a canvas. These elements could be named and designated for certain data, which would result in certain behaviors. When finished, the editor could flip to a usable version where the GM or a player would enter his or her data to be saved to the filing cabinet of characters, NPCs, or other items. Add in a search feature and a way to display results, and it would revolutionize the way (that I) prepped and played TTRPGs.


You laugh now, in this age of VTT excesses, but there was little to nothing like this back then. Looking back on what I remember, I think it might have even been a bit too ambitious for what both I and what Visual Basic could accomplish. I barely knew how to program — I remember being completely unable to wrap my head around the concept of “functions and arguments” for some weird reason — so creating an editable form with an editable form (Visual Basic was largely a drag-and-drop builder with code support) and then somehow saving and loading it was like particle physics to my elementary school-level education. Needless to say, it never got done, but believe me when I tell you that I tried like hell for a very long time.

I never really abandoned the idea nor the desire of such a thing, though. I have always loved Fantasy Grounds because it’s been more than a way to collate character sheets and display maps, with its in-engine module libraries and the ability to let GMs write their own without external apps. Very few modern VTTs offer custom form building even now, which blows my mind considering how many game systems there are, how many require the VTT to enter into a license agreement with the publishers, and how one might be able to get around such restrictions “for personal use”.

With the flexibility that the web and installable web apps offer, and with 30 years between Visual Basic 6 and where I am now, I thought that maybe I need to revisit this concept Very Soon. It would not be a full-blown VTT, because we are drowning in those, and people have more or less already taken sides as to which one is their favorite. This tool would be more of a side option, something that “old school” pencil and paper TTRPGers could use on a laptop or tablet for reference, organizing their encounters and loot, and whipping out a random NPC when the players catch them with their chainmail down.

Leave a Reply

Your email address will not be published. Required fields are marked *