a rickety bridge of impossible crossing

i'm making a new game

🥇 Thanks to maya.land and goofpunk for sponsoring the blog! If you'd like to learn how to support my writing and get a shoutout here every Sunday, check the sponsors page. 🥇

(new rule: if I don't post on Sunday, shoutouts will appear in the first post of the week.)


See? New game:

twine game passage map

The original plan was to make a silly little yarn of a game in an afternoon, like Moon Miner 2085, but then I got ideas.

The inspiration happened when I saw I Do Not Want a Mastodon, a "one-page RPG" by Oliver Darkshire, boosted into my timeline.

I do not want a mastodon

(click here for the full printable version)

It's a cute little dice-rolling exercise about inheriting a pet mastodon (i.e. the actual animal) with some jokes about moving to Mastodon the social network. I like the idea of a one-page RPG so I thought it was cute. The author posted a template you can use to make a similar game with your own theme and tweaks to the rules.

My first thought is that the random event system would be good for a little Daggerfall fan game, because the quests are procedurally generated. My second thought was that it would be relatively easy to do a game like this in twine.

Well... I printed out two copies of I Do Not Want a Mastodon (double-sided print), and played two full games, and I realized that it wouldn't be any fun as a Twine game. You don't make any choices, and even the "special rule" doesn't involve any actual player input. It's a good excuse to roll some dice. I haven't gotten to do that much lately, so that was fun. But if I was just clicking a "roll dice" button there wouldn't be anything to it. I might as well have it simulate all the die rolls and just print out the results.

But I thought I could use it as a starting point. Daggerfall Mini (or Daggerfall Twine, I haven't decided which I like better) still involves three stats that start at 0 and max out at 10. The stats I chose are knowledge, influence, and trauma. Knowledge represents having the information you need to solve the main quest, influence represents the player's level, reputation and resources, and trauma is long-term physical and psychic injuries--no resting for 8 hours to be completely healed in this version (although there will be ways to heal trauma, it's just one point at a time for completing certain quests.)

The game will tell an ultra-condensed version of the Daggerfall main quest story where the emperor of Tamriel sends you to Daggerfall to solve the mysteries of Lysandus' ghost and the missing letter. There's a short little intro sequence where you escape privateer's hold and walk to Gothway Garden to buy a horse, after which you make hooves for Daggerfall City. In my version, you can't get into the castle until your influence is 10, so you're encouraged to go on quests for the guilds, temples and townsfolk in the city to gain resources and become better-known. You have to have an influence of 10 to gain an audience with the king and queen, and knowledge of 10 to solve the mysteries and finish the game.

Once you reach Daggerfall, your only option is "go on a quest". You're presented with two options, picked randomly from two groups of 6. So there are 12 quest options, which doesn't sound like a lot, but each one will have a couple different scenarios and a couple ways to resolve each. There will also be rare random events that can prevent you from getting a quest at all -- your character gets in a fight, someone offers to gamble with you, you accidentally spend too much time window shopping and are caught outside after dark and assaulted by King Lysandus' ghostly army, etc.

The idea is that the player probably won't win the first time they play, but they gain knowledge that will help them on subsequent runs, and there's enough random events that hopefully the player won't get bored, even if it takes them a few attempts to finish.

On a scale from micro to huge, this is a small-scale project. I can probably finish before the end of the year, assuming my enthusiasm and momentum continue. I've been a little depressed lately, as you can probably tell from the sporadic entries. I haven't quite been the same since getting covid. I'm not jumping to the conclusion that it's long covid, and physically I've made a complete recovery, but my mind just hasn't been quite as sharp and I haven't gotten joy out of doing things the same way I used to.

I have depression, like, the illness. I've been diagnosed and everything. And I've done a fairly good job of managing it. I've taken medication for it, but once I figured out how much of my depression was rooted in my ADHD and anxiety, and I was properly treated for those, I didn't need the SSRIs as much anymore. But managed depression isn't cured depression. Cured depression isn't a thing. I think dealing with something so unpleasant and feeling so bad for a week and half, combined with a lot of other little or big negative events going on, have got me feeling overwhelmed and dejected. When I'm depressed, writing doesn't bring intrinsic joy, and the blank page feels like an impossible hurdle. I tend to want to make posts on social media, because it's easy and I have a chance of getting a little validation for it, and I've deliberately set up this blog to have as little external validation as possible. I don't regret it, it's better for me in the long run, but there's a lot more inertia to overcome when my sad brain doesn't feel like I'm "getting anything" out of it.

Making a game is like writing, but with the added bonus of giving myself a lot of little problems to solve. Writing has problems to solve, but not concrete ones. Not ones where I get a little boost of good brain juice for making something work just the way I wanted to.

Here's a problem I solved: when you have a quest that sends you to a dungeon, I wanted it to randomly pick one out of all of the dungeons in Daggerfall province, for flavor. There's 268 of them. The wiki lists them in a 3-column table, so I can't copy and paste just the list. However, I learned that if I copy the whole table and paste it into a google docs spreadsheet, it's smart enough to separate it into 3 columns. Then I can just copy and paste everything in column A and Robert's your mother's brother.

If I want a twine passage to randomly pick one bit of text from a list of options, it looks like this:

My favorite fruit is the (either: "apple", "banana", "cantaloupe", "durian")

So how do you turn a list into the format Twine needs? You need a text editor that can let you do find-and-replace with regular expressions, which luckily xed (the editor that came preinstalled with my version of linux) can do.

screenshot

Choose the "regular expression" search option (here represented by a period and an asterisk) and in the "search for" box, I typed: (^.) The ^ represents the beginning of a line, and the . is a wildcard for any character. So it's looking for the first character at the beginning of the line, and putting it in (parentheses) means it's part of a group.

In the "replace with" box, I entered "\1. The \1 represents the first group in the regular expression, i.e. whatever's in the parentheses. (some versions of regex will use $1 instead of \1) I placed a quote mark before it, so it's replacing (the first character at the beginning of a line) with (a quotation mark followed by the first character at the beginning of the line). Replace all.

With that done, I needed to add the ending quotes and put the whole thing on one line, with commas in between. The next step is to search for \n, which represents "new line", and replace it with ", -- an ending quote, a comma, and a space.

screenshot

screenshot

Et voilà! That's how you turn a long list into a wide list. One of the many little problems my brain likes more than writing. At least, when I'm solving dozens of them in the space of a couple hours. Anyway, please look for Daggerfall Mini (or Daggerfall Twine) on store shelves wherever computers have shelves. 🦝

game screenshot (text not final)

#projects