Monday, 17 April 2017

Blade Bind: Sparring

A few days ago I had a brainwave, and started working on a Blade Bind side-project — an automated duelling tutorial.

Teaching the nuances of the duelling system has been a concern of mine ever since I wrote it all down. While it makes perfect sense to me because I know it inside-out, it's important to get everyone in the group up to speed fairly quickly so they can get the most out of the game. I've considered making a tutorial video — and I still might, but I'm working with a sub-par setup for filming.

Then I thought about creating a "Choose Your Own Adventure" type tutorial, with text and graphics in a PDF, and using hyperlinks to jump from one passage to another. But in some ways that's quite limited (the player would only ever have the same "starting hand"), and in other ways it's massive (each possible card play creates a branching network of possible future plays that quickly becomes unmanageable).

Then I remembered Twine!

I've been noodling away in Twine for a few months now, trying to turn one of my old scenarios into a complex CYOA story. If you haven't heard of it, Twine is an app that lets you write branching interactive stories, but it also has the capability to handle variables and perform various functions. It's missing a few things I'd like (such as for-next or while-wend loops), but I'm learning to work around those.

Most excitingly, it actually has arrays and structures called datamaps, and functions to manipulate them, that actually make building and handling a deck of cards quite simple.

I'm writing the tutorial like a sparring match between you and Siân. She cajoles and encourages you, as well as explaining why things are happening and what your choices are. I'm hoping a few games will help people really get a feel for the duelling system.

I've made good progress in the last couple of days. At the moment I have all the basic functionality in place, and the main thing I still need to do is deal with all the places where you might play a Joker. Since you can play a Joker any time you could play a card, and a Joker lets you draw a new card, then play one from your hand to replace the Joker, and change its suit if you want, it requires a bit of extra handling. I'm trying to figure out if I can put all the Joker code into one passage and then just call it from wherever, but I need to make sure it won't cause problems with the way I keep track of which cards are in play.

Twine outputs the whole game as a single HTML file, so I can either find somewhere to host it online, or provide the files for download. Hopefully I'll have all the bugs ironed out in a couple more weeks!