I finished my last semester in college, I have only a couple credits over the May term to complete before I officially graduate. I submitted my senior project (the video of its functionality), I gave my presentation, I turned in my code, and I submitted my final report.

My presence… here on my blog, in the rpg blogging community, on the Internet in general… has been pretty minimal the last two years while I finished up my undergraduate degree. Now that my project is “turned in,” I’m free to continue developing it.

It will probably take me some time to get back into the rhythm of blogging, as I’ve been out of it. These days I have a couple things going on: my gaming group of some six years, any bit of game design that I might be working on, and now my project.

It’s the project I’m really here to talk about because that will occupy any “free” time I have for the foreseeable future.

So, by the end of the time allotted for my project, I completed the character generator and a dungeon layout generator. Character generation can also apply level advancement but this feature isn’t readily visible because nothing awards experience and no other reason is given to apply experience to characters. I’ve been thinking about some reasons outside of adventuring to create characters above 1st-level so I can show it off, but I’m at a loss for the moment.

As it is, dungeon layouts begin with a basic starting room and follow the 5e procedures for adding passages and chambers and stairs.

Here are some old screencaps:

Solid triangles indicate stairs connecting floors, ‘S’s indicate secret doors. Don’t mind the pink passages, I just color-coded passages explicitly marked as “dead ends” for debugging purposes. Green doors are “live,” while blue doors are “false” (which would have traps in the finalized version). Circles inside of rooms indicate what would otherwise be circular or octagonal rooms–it’s a lazy indicator because I haven’t coded non-rectangular rooms yet.

I recently implemented a function to check floors for the largest un-mapped area so I can begin to fill in blanks when maps are “under-performing,” room- and passage-wise. It was a pain in the butt because it’s been 6+ months since I had to write a Maximal Rectangle algorithm, and most of the stuff I code emphasizes framework/architecture/design, not… complexity. I don’t write a lot of algorithms because what the program is technically simple.

It’s just lots and lots and lots and lots and lots and lots and lots and lots and lots of simple stuff.

I’m taking a quick break from working on dungeon layouts ’cause I got burned out hacking away at the Maximal Rectangle finder, and I’m going to go back to working on character generation for a bit. I want to finish off some of the combat stats calculation so I can get Challenge Ratings working for NPCs. I had CR calculating in the second build but characters didn’t do quite as much (or as well) in that build.

Oof. There’s another big CharGen build coming, I don’t know when exactly. I need to update how character data is stored because keeping lists and sets of enums is human readable but annoying to save/load in the database, and the next database build I want to last for a good long while before I have to update it.

Future-wise, I want to work on spells so they can contribute to CR.

I have some other things I want to work on too:
– Plane/demiplane generation and management
– Item details (origin/maker, types, quirks, etc)
– Get the world/globe generator working so I can do:
– Region generation utilizing world information, so I can do:
– Province/settlement generation, which will aid in formalizing:
– Faction generation and management

So, a word on factions.

I raided the Wizards of the Coast archives for the list of published 3e Prestige Classes. I got name, book source, page number, and description. I say raided but really I just looked it up and manually keyed the entries. Sure, I could have scraped it but I excel at data entry. It’s one of the ways you can tell I’m not lazy. I also used the opportunity to skim the information and get an idea of what I’d be working with.

My thinking is this: maybe 1/100 characters in a PrC got there on their own, without help. For the most part, PrCs represent groups or factions, therefore the 700+ PrCs published in official WotC sources should translate to some 700+ factions. Until I get a chance to actually go over the list and create legit factions from the information found in the books (which I have to get out of storage), the PrCs will be placeholders.

I want to make it possible for a player to join -ANY- faction they might have read about in a source book. Hell, WotC published all those splats, I want to make that material accessible. For decades the thinking was that gamers who didn’t get to play D&D could at least read about it in the books… and so those splats contained more material than anyone could reasonably put in a campaign.

Well, I’m not reasonable. I’m going to find a way to make EVERYTHING fit.

I’m just getting started with Third Edition. I have plenty to go on, and I’m going to keep adding as I go. 3e Prestige Classes are just a start. I’m going to make factions for races and gods and monsters and pantheons.

Honestly, I need the world generator to help “partition” content into reasonable chunks for use in campaigns. What’s the use of 700+ factions if you can find all of them in a single world? Some of them you ought to travel to other worlds to encounter.

Some of the races and monsters listed in the sourcebooks are explicitly described as “native to an alternate world in the material plane.”