During the last few days of an unexpectedly home-bound halfterm, I’ve been enjoying building the world of Steam Highwayman III. Juvenile gangs, powerful opponents and dangerous criminal allies have all slotted nicely into place. My graph is showing some tiny growth (after a long, long hiatus) and I’ve been able to share a few passage excerpts on Facebook.
But something also possessed me to reload some of the first pieces of Steam Highwayman I ever wrote. Well, specifically, I reinstalled Twine – the interactive fiction software I’ve used this year to collaborate with a game developer on an as-yet unreleased educational title. My current version was somewhat out of date and had stability issues – it kept crashing – and I expect to have to use it again next year.
The reinstalled program discovered some files I thought I had lost: old, unfinished (of course!) versions of what I have since called ‘Twine Highwayman’. I loaded them up and, though incomplete and missing some of the parts I remembered best (like the ability to rob any passing steam carriage and collect jewelry, or the procedural pub menu system), they still showcase some of the original ideas of the project. Some made it through into book format and others didn’t.
I wrote the programming behind Twine Highwayman in Autumn 2016, creating some really crunchy and idiosyncratic code in formats so inefficient and hard to understand that I have since lost the ability to read them. Nonetheless, the core of the game – for it is a game, not a book – still functions. Take a look, if you like.
It was playing Inkle’s 80 Days – something far beyond my ability to emulate – as well as the excellent Fabled Lands Application (since renamed Java Fabled Lands) that inspired me to give this a try. Considering I had zero previous experience of Twine, I don’t think I did badly. But it was the feature creep (a system for automating the weather… and the phase of the moon… and the mood of antagonists…) that killed the project and convinced me to limit my ambition to a good old, paper gamebook. I’d mimic Fabled Lands, that’s what I’d do. I’d keep it simple and achievable. I wouldn’t attempt to surpass my models, just to match them. I definitely wouldn’t write something 50% longer… Oh, well.
Breakthrough! I’ve rewritten my inventory system in Steam Highwayman to make something much, much more streamlined. Discovering that I was able to display a passage named after the nth string in an array, I’ve moved onto creating a passage for each generic object and giving the reader the opportunity to read about it whenever they open their inventory. The same passage, when displayed within a passage tagged “shop”, gives the option to sell that object.
I always wanted to have variation within the game’s prices, so objects fit into one of six or so categories, and shopkeepers and fences will offer you better prices on some of those categories – eg revolutionaries will give you more for weapons, engineers for tools, hungry people for food.
Now that I’m writing it down, it looks like a minor matter – but I assure you, it’s not!
I’ve also included a photo of a (glitchy) version of what I hope to display in your ‘legend’ section – a list of the deeds of the day and your past deeds. Simply because I’m pleased that it now registers when you have been attacked by a deer.
It’s been a good day astride the velosteam. I’ve created a 2-part mini quest that introduces you to one of my Factions, the Compact for Workers’ Equality. You’ll want to watch out for their posters in urban locations and their supporters in pubs everywhere…
And on the technical side, I’ve been using help on the twine forum to embed a map for the first time. This was one of the first things that I was asked for, so I’ve managed to get the first version embedded as Base64 encoding, whatever that is. It now sits in your inventory just above your pocket watch…
I’ve moved my demo from a separate demo-map into the top left corner of this ‘real’ bit of my old neck of the woods. The demo extends up towards Stokenchurch and beyond Christmas Common, which is the entrance point for your story.
I’ve returned to Fabled Lands as a stimulus for my Steam Highwayman writing. I like the short, pithy passages that leave a lot to your imagination. However, there was never a great deal of conversation in those books and I find dialogue fits into a responsive text very naturally – in fact, it’s one of the easiest and most pleasurable things I write. So I’ve drafted this encounter with a gipsy family: Barsali’s Caravan. It gives a flavour of the style of mini-quests I’m intending to include as you explore the world of Steam Highwayman. Different options would be available to you depending on whether you have collected certain objects, or have certain skills.
I’ve also just begun experimenting with customising colours on Twine, the tool I use to create this.
I’ve now completed a demo map to explore on your velosteam: 14 passages or ‘rooms’ that respond to the order and time in which you visit them, generating unique text and interactive traffic events. I haven’t got any graphic interface for this yet – it exists purely as the relationship between passages. But I have sketched it here to help you locate yourself:
One of the underlying ‘vanilla’ engines of this story was always to be your ability to rob any passers-by, either creating story-lines as you become despised or hated by particular groups or simply making easy money. This means that in true open-world fashion, you will need to be able to interact with all the traffic that comes your way.
At the moment these interactions are very rough, but essentially different sorts of road (main road, road or lane) and different times of day (day/night) will be more or less likely to generate different classes of traffic (pedestrians/farm vehicles/goods vehicles/guild vehicles/locobuses/private steam carriages etc). You may be able to hail them and get rumours or rob them – reminiscent perhaps, and purposefully, of the sail ahoy mechanic in Sid Meier’s Pirates Gold.
I intend to keep working on this demo map until all the major modules are working. So far we have:
A weather generator
Health and wound counters
A rudimentary fight system (not yet plugged into the encounters with traffic
A fence where you can sell items (with still some bugs)
A pub where you can rent a room
Locals who will give you a rumour to investigate (and the space for many more)
Characters who will remember you
A wreck engine that will leave destroyed traffic at the side of the road
New today – the ability to wait somewhere until nightfall or morning
I mean to finish writing Squire Lynch’s quest, finish the interactions with the guild engines and create a quest at a nearby steam fairground. Still haven’t done anything about my pistol engine…
Also I’ve got some lineation and matching issues with the generated text in my passages. I’m slowly building more reliable templates so that in a completed version, everything should look seamless. Other bugs include:
Unwritten encounters with private steam carriages and quest vehicles
This morning I’ve been working on those priority checks – the variables that will test whether you’ve visited a location before, what factors will influence the generated text there and the counters that generate time, the phase of the moon and the weather. I’m going to head out to do some of the creative part soon, thinking about the way I want these passages to sound and look.
I had a long chat with my brother Jack about this and we agree that there’s no point having long passages of description clogging up a reader’s enjoyment of what is essentially a story. In the Fabled Lands series, passages are typically around 60 words, and that suits a smartphone fine, so I’m hoping to extrude the all the vital information in a few pithy sentences.
It’s been a good morning. I’ve been teaching the locals at the Sign of the Spyglass to gossip – as well as to keep track of your visits there. Should they tell you of the wicked Squire Lynch, you should find a new quest opening up, in which you dole out some justice to an overbearing landlord.
Most of my recent writing has been coding systems that keep track of various story variables, so it’s nice to be starting on writing a mini-story within the tale. However, though I’m sketching dialogue and event options there are a few things I need to complete before you’re able to to stop Squire Lynch’s speedy chariaeoli, defeat him in a duel, humiliate and rob him.
The high-level code that decides, when you visit a location, what variable-generated information to give you. These are pieces like descriptions of the weather and scenery, designed to be wrapped into the particular writing of any specific passage. I want every visit to every major to be unique, tailored to the time of day, state of the sky, and the various random chances of other traffic on the road.
I need to complete my engine allowing you to fire a gun.
I need to complete my guilt engine – the tracker that will remember every sin and misdeed committed in the name of your own wealth or even for the good of the poor… It will all be significant later.
These are what I’ll be working on for the next week or two. Using variable text to create interesting and significant passages is really my aim. Many interactive fictions dispense with description because a reader skips them naturally, hurrying to the action. I’m trying to embed important information and other options within text. If it rains, that will effect your ability to chase a high-speed steam wagon. If you’re in a wood, you may have simple sub-quest options related to objects you carry – such as cutting wood or finding a particular mushroom. I hope to give the reader the ability to complete actions in any reasonable place, rather than at a specific quest location.
I’m spending a lot of my writing time working on an interactive fiction project, Steam Highwayman, written using Harlowe 1.2.2 on Twine 2.
This morning I has mostly been building a process by which the protagonist can suffer, bandage and heal wounds. This should slot into my story so that the reactive text remembers if and where you were wounded, editing your options in seamless prose.
And a scar on the eye may unlock the option of an eyepatch. Oooh, Intimidation+1, eyepatch,
The ground shakes… A season begins… Not obviously, since autumn always slips out from beneath summer’s train. Seasons are never well defined.
But in the few months since I’ve last written on here, a lot has changed. And now I’m about to take a new journey.
My friends know a quick way to get me excited is to ask me about IF – interactive fiction – or CYOA – Choose Your Own Adventure – the genre defining series. And over the summer I got very excited and spent about 15 full writing days learning to use an IF software tool called Twine, writing a non – linear Steampunk time – sensitive role playing interactive novel, simply called Steam Highwayman.
I’ll write a lot more about it soon, but the key to my excitement with using Twine is that it provides me with a very natural writing environment, meaning that my productivity and fluency were as great during those 15 days as at any time in my life. And the finished result published in html format, meaning that it can be read easily in a Web browser.
I’ve learned a small amount of html and css from the work I had earlier this and at the end of last year editing a website for Mary’s and then building my own. But if I can up my game, the prospect of downloadable CYOA apps that combine my love of writing with modern technology awaits me.
I mean then to be spending time learning more CSS skills to create a good looking page, learning how to use android studio to create an app that will use one of my finished-ish IFs, and then to release it here.
Will I succeed? God knows. How long will it take? I don’t mind. Because whether or not I’m posting a downloadable free IF within the year, entirely written and produced by me, I know I’m learning a lot. And that feels great.
In Psalm 119 it says “Blessed are they whose ways are blameless, who walk according to the law of the Lord.” There’s nothing to blame in my desire to explore and create and I know that anything done for the glory of God can be an act of deep worship, so I’m looking forward to meeting Him and walking with Him along His road this season.