Border Reivers post-mortem

Ooh I get to write one of these this year! I always enjoy reading these after the comp. Beware this post has slight spoilers if you haven’t played the game, so read on at your peril.

Firstly thanks to everyone who has played and judged in the competition. For my own game particular thanks to those who have written reviews, both here, and in the authors’ sub forum, and elsewhere, including on Twitter and on websites. It’s all been hugely appreciated, and your comments have been enlightening and useful for me. Thanks!

I was delighted with my 46/77 place. It was higher than I expected, as was the game’s overall score. Best of all was seeing how many people had played and judged my game, which is a big advantage of entering IF Comp.

Origins of the game

I started writing this game over 20 years ago. I wrote the initial opening text - the part that appears before you start outside the castle - but that was it! I was planning to have a go at implementing it in Inform, but had to put it on hold. Then more recently after Inform 7 came out I thought I’d finish it. But it’s only in the last couple of years that I’ve worked properly on it, on and off, especially in the last year. I’m long-term seriously ill, with a MS-like neurological illness, so must work in snatched short bits of time. Game development is thus a very protracted process!

Firstly re the historical context, I’m originally from Hawick, a town in the Scottish Borders, some miles to the north of Hermitage Castle. Living in the Borders, and especially in Hawick, you’re immersed in the history of the Border Reivers. And so it was a natural thing for me to write about. I also have reiver ancestry in my family tree, proven by research. Including the Warden in this game, who was a real life character, as were many of the NPCs that I included. Where I didn’t do the reivers aspect justice is that reivers were particularly infamous for extensive raiding on both sides of the border, including their skills riding on their horses. As a castle-based game, with interrogations in one main location, that doesn’t reflect that part of their history. But the families in the game - especially Douglases, Scotts, Elliots and Armstrongs - are all Border clans and famous reiving families, and the inter-family rivalries were reflected in the NPC conversations.

Gathering a bunch of NPCs together in a single location for questioning defined the structure of the game. Given this premise it made sense to have the main part free-form, though I would ideally have liked to add in more mini quests and things for the player to do. And this was then followed by the end game where a multiple choice section tests the player to see if they can solve things. An alternative approach, which one playtester suggested, would have been for the game to be written as a choice game. That would be a valid approach, but would require very different coding, and skills that I certainly didn’t have then, nor now. How to trigger the end game was more problematic. I implemented it using a timer, but will reflect more on that later.

This was the first full IF game I’ve written, and I was still getting to grips with Inform 7, even if decades earlier I’d coded IF quests in MUDs. Learning Inform 7 was quite a painful process, to be honest. The natural language system suits me a lot, and I found the declarative rather than imperative style of programming a very natural fit for me, based on my Prolog experience in a computer science degree in the early 1990s. When Inform coding works as it should it’s great. But there was often “How do you phrase that?!” anguish, as the compiler complained again. Though things did improve a lot, I’m still nowhere near what anyone would call fluent in the language. I also found extensions intimidating and difficult to use as a newcomer. And sometimes they introduced unexpected problems. For example in the conversation implementation I found the Inform manuals relatively poor, and initially thought I needed to use an extension. But then I found some great table-based conversation code from Emily Short, which I could rework. This code also supported the game responding nicely if a player asked a NPC the same question twice, giving “They already told you …” the second time or later. That worked well, but using tables was prone to terrible runtime bugs. Thank you to the testers who picked up on one of those from a missing table. Another was caused by a legacy of a conversation extension included that I was no longer using, but which was interacting strangely with my table code. Again thankfully picked up by a playtester, and easily fixed.

Actually I should thank Emily Short here for her advice elsewhere on ways of approaching coding IF games, and how to finish them. I followed her tip of coding things so that you could play the game through to the end from early on in development. Then I would go back, and flesh out the room descriptions (there were a lot of placeholder bits of code to be filled in), objects, NPCs and the NPC conversation responses. I think if I hadn’t coded it in this play right through way I probably wouldn’t have got to the end of the coding process, instead getting bogged down in a single room, and an object, or something algorithmic, and not knowing what to do. As it was I quickly had a game with the core framework, and I could go and fill the gaps as I felt able to.

Preparing to enter the competition

Initially I was thinking of releasing the game on its own, not part of a competition. To be honest I was terrified by the thought of taking part in IF Comp! I have generalised anxiety disorder, and with my neurological disease also worsening with stress, entering a big competition like this seemed like a bonkers thing for me to consider. But then I thought about it again, and gave myself time to get used to the idea. About a year was enough. Entering the competition should be fun, and it would also have the significant advantage of opening my game to more players. Deciding to enter would also encourage me to finally this far too long in gestation game. I decided to enter a short opening game - my second game, but first released - into IntroComp 2018, which gave me a trial run at a competition. That seemed to go ok, so I went ahead, and entered IF Comp.

Because I’d planned entering so far ahead I made sure to have fixed deadlines for playtesting starting. I didn’t want to rush that, and also wanted to give playtesters time. I got a few friends and family to playtest, but most playtesters were people who responded to my thread here, asking for volunteers. I can’t thank my playtesters enough. They all identified at least one unique thing to majorly improve, and together they made the game vastly better than it would have been. Not just in terms of the overall structure and framing mechanism, but obviously things like object implementation, better NPC conversation responses etc. The playtester responses were mixed, with some really liking the game, and others having much less of a positive experience. But they were all fair, and all gave constructive feedback that I could use to make things better. The game went through three rounds of playtesting, but I had a deadline, and that was its lot.

Doing the cover art for the game was a challenge. I’d probably have produced a better image if I’d got a proper designer to do it. But I wanted to use something based on an image of the real castle. I found a nice century old out of copyright sketch, which I then cropped, colour processed and inverted. That resulted in an atmospheric image of a castle in darkness, lit up by the red flames of a bonfire nearby. Which really suited the plot of my game. So that’s what I used.

And we’re off!

Once the competition started I was initially very nervous, but that eased as reviews started to come in, and I could see people playing the game online through the transcripts. I didn’t peek at the transcripts fully, but could quickly see the number of commands people had typed for each transcript, so could easily get a good idea of how many full play throughs there were.

Again the feedback was mixed for the game, though better overall than during the playtesting phase. One major critique, and I fully accept it, is that some people were struggling with the time limits built into the game. An alternative approach, that was suggested by some reviewers, would be to have had the plot move on by actions performed by the player. I agree with that, and would code it differently if tackling it now. A timer seemed like a good option to me, looking at the Inform manual, but it’s hard to cater for different playing approaches, e.g. whether the people ask a few questions of NPCs, or whether they set out to exhaustively quiz everyone about everything, and inevitably run out of time. So that’s a good game design lesson for me.

Another critique was the ending, which was described by many as too railroad-y. Again, this comes down to my inexperience, and what I could code in the time. Also by then I was feeling pretty worn out, and it was a practical compromise. But I agree that the player’s sense of agency at the end is not what it should be, and I’d write that differently now. And yes, as noted by some reviewers, all the endings are rather bleak, though some - the “good ones” - are less bleak than others. Though that’s also a reflection of life for the Border Reivers at this time, not least with the devastating impact of the Battle of Flodden that happened soon after.

With more time and experience I would like to have made the mystery part of the game more sophisticated, with more false leads, and more intrigue for people to uncover. As it was it was rather more simplistic than it should have been, ideally. I’m not a naturally gifted writer, finding coding much easier! So that side of things is a challenge for me, and I’m pretty pleased with how it turned out. But I’ve learned lessons from the feedback, and would do things differently if writing it now.

One thing I was really pleased about from reviews and feedback is that generally, with some exceptions, players found the conversation system worked well. I’d tried hard to implement that reliably, and include a lot of responses to different questions and variant keywords. Playtester feedback helped me make it more varied, and the NPCs more interesting. But I still had more work that should have been done on that. There were probably too many NPCs left as well, though, if you can imagine this, there were originally rather a lot more, and some were culled.

I was also delighted that people felt that they got a good sense of the historical setting. I’m an academic historian by training (with PhD), though not a specialist in this game’s time period. But I worked hard to try to make it reflect the era, not just in the plot, and people and what they talked about, but also in the fittings for the castle’s Great Hall, and the overall feel of the game.

Several reviewers threw up things that I really didn’t expect. For example a number pointed out, quite rightly, that if you identify whodunnit at the end of the game, that poses replay problems. I simply hadn’t thought of that! I’m not sure how I would code it differently to do that, but it’s a perspective that just slightly blew my mind, and went “Whoah!” So thank you again folks.

The authors’ sub forum and future plans

I mustn’t forget to comment on how supportive the authors’ sub forum here was to me this year. As a competition newcomer I felt welcomed, and supported, and encouraged, and part of a marvellous community. If I don’t enter the competition again next year I’ll miss that sub forum! It really was an unexpected joy, and I thank all those fellow authors who took part. Quite superb.

At the moment I’m finishing my IntroComp game Napier’s Cache from earlier this year. It’s another historical game set in the Scottish Borders, but a century later. That’s taking my limited good time and energy, so I probably won’t release a post-competition update of Border Reivers. But I’m applying the design and implementation tips from IF Comp feedback to the other game.

As a completed IntroComp game Napier’s Cache won’t be eligible for IF Comp entry. I do have another game - Arthurian setting - in early development, which would probably go into a competition, though maybe won’t be ready in time for IF Comp 2019. So next year I may be a full judge again, albeit missing the authors’ forum! But I expect to be back as a competitor in a future year. It’s been such fun, and I can’t recommend taking part highly enough.