Forbidden Lore Design Diary #3: A Void With Walls

Know what’s more interesting than moving around an infinite void? MOVING AROUND A MOTHERFUCKING DUNGEON THAT’S WHAT!

Build it and they will come

Granted, when the dungeon is completely empty, it’s not THAT much more interesting. (I’m the red “@” sign. That yellow one? That’s Larry. He’s just chilling, don’t worry about Larry. He’s just happy he didn’t wind up embedded in the walls again.) But, still. There are places I can go, and places I CANNOT go! And I’m generating this shit at random, just like a proper roguelike!

Still following the script, though things are getting sophisticated enough that I occasionally had to debug when I miscopied something. (Already learned that Eclipse’s in-line syntax checker can be fooled a bit easier than I’d prefer and is prone to reporting false errors that look alarming but that don’t actually prevent the code from running. Grr.)

I should probably use my next coding session to spend some quality time with a Python tutorial. I’m more or less following along, but I think it’s time to get myself a bit better grounded in the basics of that language.

This is coming together fast. I imagine it will come together a whole lot LESS fast once I hit the end of the scripted tutorial and have to, you know, decide some shit for myself. Still. This is cool as hell.

Forbidden Lore Design Diary #2: Something Runs

Installed a bunch of shit, including Python 3 and C# runtime environment. Hardest part was getting the Python plugin working for Eclipse; I had some cruft that I needed to clear-out before things would update properly.

But, it’s running. I do love me some syntax highlighting.

Getting the environment set up properly is actually a pretty major mental hurdle for me. I’m a clumsy sysadmin, and I never know how long something is going to take. I tend to do a lot of flailing around in the process of getting all the pieces into place. And given that my brain is always looking for an excuse to quit on the grounds that it’s just too hard and who KNOWS how long everything is going to take, the infrastructure is a great place for shit to fall apart. Let the project fail before it even began.

But it has begun. Suck it, brain.

I followed the first page of the tutorial. It’s all copy-pasting, but I am trying to follow along. I largely get it; at the very least, it’s providing a solid example for me to work with, and I tend to learn best when I get to do. This tutorial does do a pretty solid job of explaining WHY I’m copying what I’m copying.

I’ll probably want to detour into a proper Python tutorial, though, just so I can get a proper introduction to how the language does things. Still, this should give me a pretty solid frame of reference.

I got an executable running! Created a blank field for an “@” symbol to just kinda hang out it. Right now that little guy is basically Janet chilling in her void.

Look at that pimp motherfucker just hanging out in the middle of the screen

I even made made him move around.

Not gonna lie, this game kinda sucks right now

Someday, that “@” is going to be a wizard running around shooting fireballs and raising the dead and exploiting the lower classes and shit. Baby steps.

The tutorial ended by advising I put everything into source control. I’ve been doing software long enough to know that yeah, that’s a solid move.

I COULD have just set up a local repository, but fuckit, let’s stay optimistic. I’m putting this sucker on BitBucket, where future collaborators shall someday be able to access the project. There was a bit of confusion logging in, as BitBucket has been acquired by Atlassian, and I found my proper login credentials AFTER Atlassian made a new one for me. So, two accounts!

That’s gonna confuse the tits off of me someday, I can feel it.

I’m using git, which is also what I use at my day job. I’ve never been in love with git; I find it to be a little impenetrable, and every once in a while I need to hit-up someone smarter than me to unfuck whatever I just did. But what the hell, it’s just me on this project, so it’s not like there are going to be merge conflicts.

Took a little wrangling to get my existing code pushed to BitBucket, but it’s in there. I even managed to do it using Eclipse; here’s hoping I can keep right-clicking my way to source control victory.

At some point, I really need to organize my thoughts on The Fun Bits of the game. But for the time being, I’ll keep plugging through the tutorial.

This definitely felt like progress.

Forbidden Lore Design Diary #1: The Foundation

Many years ago, a friend of mine set aside a ton of money so he could take a year off of work and make a go of it as a game developer. He failed. I’m pretty sure a big part of the reason he failed was that he insisted on creating every aspect of his game from the ground up, and … you guys, programming is REALLY hard. Unless you’re doing something absolutely rudimentary, you want to minimize the amount of actual work you have to do yourself.

So that’s my first decision: what am I going to base my game off of? I could dig around for some open source game that kinda sorta does what I want to do and start modding it, but I feel like that may be farming-out TOO much of the work. I feel like too much of the game is going to be opaque to me (unless I take the time to dig DEEP into the code base), and I feel like I could find the existing code working against me just as easily as it works for me. Besides, if this starts getting good, I don’t want it to be “It’s a reskinned TuxDungeon: Dragon Slappers but with a cool skill tree.” I don’t want to create the fucking thing from scratch, but at the same time, I want it to be fundamentally MINE.

This is what led me to the conclusion that Forbidden Lore is going to be a roguelike. Smoking procedurally-generated monstrosities in a procedurally-generated world is roguelikes’ core skillset. The graphics tend to be dirt simple, which is good, given that I have no faith in my artistic skill and would just have to buy or commission any unique visual elements anyway.

I poked around a bit and found r/roguelikedev, which makes me absolutely feel like building Forbidden Lore as a roguelike is indeed the correct decision. Here’s an entire community of devs! These people have contests where they build a game in seven days! There’s even a tutorial on how to build a game from a common toolset!

This looks like exactly what I’m looking for.

So. Looks like there’s a tool called tcod that provides a shitload of relevant functionality. It’s written in Python. I do not know Python. This does not daunt me; I’ve been a code monkey for 25 years, and I’ve heard Python is a perfectly good language. Time to learn me some Python.

My personal machine a Windows 10 laptop I purchased a few years back; should be a perfectly good dev environment. Doesn’t come with Python on it, but I don’t expect installing it to be too much trouble.

My favorite IDE is Eclipse. I’m sure there are better ones out there, but it’s the one I’m familiar with, and I know (generally) how to make it work with a relative minimum of wrestling. Beats vim. Quite certain there’s a Python plugin for it.

That tutorial seems to have a pretty solid list of all the things I’m going to need to put in place before I get to work.

Right. Let’s install some shit.

Forbidden Lore Design Diary #0: Hello, World

So I think I’m going to write a roguelike.

I want to write a video game. This scares me, because I know myself. I know my tendency to have an idea I love love LOVE and then, when it fails to take shape more or less immediately, lose interest and become unable to make myself push it any further forward. I mean, what’s the point? I’m not going to finish it. I never finish it. Tabletop games, short stories, novels, doesn’t really matter. What’s going to make this any different?

Justice. Justice is going to make this different.

The Social Justice Playthrough now stands at 111 entries. I’m probably going to be going through it a lot more slowly now that I’m taking on this massive project, but still, that’s immense. I think I’m actually going to explore and blog about EVERY ENTRY in a 1700+-item bundle. It’s gonna take me a few years, but I really think I’m going to do it — because it’s FUN.

I didn’t set out to do 111 entries, I just did one. And then another. And then another.

I can do big shit. I just have to get out of my head and, you know, DO IT. Stop procrastinating. Stop vacuuming the cat. Stop finding ways to fiddle around the fringes, stop preparing myself mentally for the not-at-all inevitable failure, and just take the next step.

So I have this idea for a game. In broad strokes, it’s similar to my still-in-progress tabletop game Our Shattered World, but from a radically different angle. You’re a wizard, and you’d like to get better at wizarding. Problem: nobody likes wizards, on account of how they sorta blew up like half the world fifty years ago. Doing wizard bullshit is burn-that-fucker-at-the-stake illegal if you do it within the boundaries of civilization.

But the ruins of the old civilization are where you’re going to find the best information about wizarding anyway. So, off you go, to make a “wizard’s tower” (really just whatever semi-intact building you can find with a tarp over the leaky bits — you’ll work on it) on the border of the Demonlands.

From there, you’ll mount excursions, hopefully bringing back both knowledge and artifacts of the old world that you can sell for, like, food. However, all that shit is just lying around for a reason, and they don’t call ’em the Demonlands because they’re trying to attract heavy metal bands. You’re gonna have to put your developing skills to work against whatever nasty shit you find.

What kind of arcane power is available to you? You have no fucking idea. You know a rudimentary spell or two, but that’s it. Everything else is long vanished. Not only do you not know any better spells, you don’t know what spells you might someday be able to learn.

That’s the hook: the skill tree representing your spells is unknown. It’s not merely hidden: it’s procedurally generated. Every world will have its own unique collection of abilities, with a randomized rogues’ gallery of monstrosities to use them against.

The meta-game IS the game. There’s no point looking for a how-to guide for optimizing your character. Figuring out how to build the most efficient arcane wrecking machine is up to you.

And if you find some combo that, in any other RPG context, would be nerfed as soon as the devs notice how obscenely fucking overpowered it is, congrats: you’re winning the game. Now get out into the wasteland and win all over some demon’s stupid demon face.

Welcome to Forbidden Lore.