Learning to make games has been above all an exercise in reimagining my creative process. It’s not quite like writing, which is something I’ve always been able to see the shape of. I didn’t write my books in exactly chronological order, but I always had their final result in mind, and in that way could pretty straightforwardly work toward a finished product. Essays and articles I almost always write from top to bottom, a habit that’s proven somewhat incompatible with my ever-loudening editor brain, which makes me stop at every sentence and polish up three drafts before it allows me to proceed, if I have the energy to at all after that. I don’t know if you can blame the job for it, so much as getting older, more sure in some ways and less sure in most, these last few years, all of it. Whatever the cause, it makes my writing stilted and self-conscious and a nonzero part of why I want to experiment in this new medium for a while is to try to outmaneuver it.
Making games is not like knitting, either, although it’s a lot closer. There, too, you start at the beginning, the cast-on edge, and work through until the end. But sometimes, more often than not, I surprise myself and don’t go the direction I’d originally planned; the last sweater I made, finished in late January, began its life as a sort of anonymous band, cast on years ago for some murky, dresslike reason. By the time I picked it back up in earnest, I’d completely forgotten my original intentions, and after some further knitting and frogging and reknitting in other directions, it’s sort of an Argo of its former self, all the same yarn with not a single original stitch still intact. It’s cute; cropped, made from black merino wool I think Aude took from the free table at her work for me, a somewhat limited quantity in a somewhat thicker weight than I’d ordinarily choose. The final product has almost nothing to do with what I first envisioned, if there had been anything at all, but it feels like a good use of the materials I had on hand; it feels like I did right by them.
By virtue of its rules and rigidity, knitting gives me some room to play, to experiment, to consider the step-by-step puzzle of what I’ve got and what I’d like to wind up with. If this, then that, if this, then that, all the way from the first stitch to the last. Coding is like knitting with little bits of data, a material whose texture I haven’t yet figured out — it’s finicky but powerful, logical but maddeningly opaque. I don’t think I will ever master it like cotton or comma clauses, yet it’s still very fun to play with.
I know the scale and shape of a writing or knitting project, how they feel when they’re working well and when they’re not. I know none of that so far when it comes to games, and that means that I don’t have a clear horizon to work toward; in turn, I don’t yet know what a proper atomic unit of progress looks like. I don’t know how to build in room for player choice, or how to structure a plot, or which comes first, the logistics or the creativity. I want to have grace with myself here — I’m a beginner! I just found out about the existence of for-loops! Arrays and data structures are something that exists and I sure do know what they do, kind of!! — but I’m impatient, and above all I’m scared that I’ll run out of energy or motivation or just like, JUICE before I get anywhere with any of this. I only just got it back. It’s been making me feel like myself again. I would be so, so sad to see it go away already.
For the last couple weeks I’ve taken a bit of a detour from my main project (which is a misnomer because it’s just like……..a disparate collection of drafts) in order to figure out what amounts to a workflow tool. That sounds extremely unsexy but maybe so does all of this.
The engine I’ve been using to make games (aptly called Game Maker Studio) is great for me in many ways, but it has a pretty cumbersome approach to storing and displaying text. I’ve set up Peyton Burnham’s branching dialogue system, which is as elegant a solution as I’ve found within Game Maker itself at my current skill level; while I think I could build a whole game this way, and probably will, it just doesn’t feel natural to write within, to flexibly accommodate the branching choices and paths that make a game a game, at least to my mind. No matter how far I may want to run from writing, I do want to have an easy-as-possible conduit for it.
After smashing together a couple of tools (turns out “easy-as-possible” still meant learning about the existence of 3.5 new things: the even more aptly named Yarnspinner language and Crochet interface, as well as the Chatterbox and Scribble libraries for Game Maker1) , I think I’ve got something that works. I can reliably feed text from a simple, flexible external system into my game; I can even dictate a fair amount of my game’s flow and logic from within that system. It’s not perfect by any stretch — if anyone wants to help me figure out how to convert the code I have so that the player can select options with the arrow keys rather than by tying each choice to a number key, I would be eternally grateful2 — but it works, and it’s mine, and it’s helping me start to picture how I could possibly ever build this. Just a series of if-thens, stitches, words, one right after the other, until one day there's something there.
Huge ups to Juju Adams, whose thinking and open source projects have been genuinely invaluable to my learning process
It seems like it should be so easy — it’s a tweak I’ve made before with no problem — but I’m running into an issue understanding (at least) one of Chatterbox’s built-in functions. I would also accept advice on converting my current dialogue system so that it can be fed JSON files, a concept I am essentially pretending to understand.
Hey Alanna, glad you’re making some progress in a way that you’re enjoying! Where’s your code hosted? I don’t know anything about Game Maker and I can’t promise I’ll get anywhere answering your questions but I can poke around in the code and see if I can figure it out for you 😊