15 July 2013

[myGameDev] Ava Martin VS. The Binarist Hegemony

This weekend was iamagamer.ca's inaugural Game Jam weekend, where participants - both at the main hub in Vancouver, and those around the world participating remotely - worked for 48 hours to create a game based on the theme of "Strong Female Protagonist." I was one of those folk squirreling away at a game - and I got one finished, no less! You can play my game, Ava Martin VS. The Binarist Hegemonyby clicking here, and you can read about its development below!

Day Minus-One

This Game Jam wasn't my first - I've previously participated in the 48hr Global Game Jam in 2012 and came out with The 41st Tale, and I recently finished Sophie Houlden's week-long Fishing Game Jam back in May of this year, ending the week with The Loch: A Scottish Fishing RPG (which is currently in Beta testing and will be available soon!) As such, I knew that, although preparation wasn't important (or recommended) for taking part in a game jam, I decided to do some research into what I could use to make my game the day before, just so I didn't spend half the day getting familiar with a new game engine.

Initially, I'd considered making the game for the jam in GameMaker Studio, which I'd recently worked through a couple of tutorials on; but I wasn't 100% comfortable with that, since I already had a plan for a GameMaker game laid out for later in Summer, and I want to try to broaden my horizons a bit by designing games using lots of different software, engines and tools. I discovered GameSalad in a thread elsewhere on the internet, and, having heard it was fairly accessible, decided to go with that.

GameSalad, as it turns out, is very easy to use, and most of the work comes down to placing Actors (characters, NPCs, and any other on-screen elements) onto a Scene (a level or menu screen), and then dragging-and-dropping sets of Behaviours onto those actors. Those Behaviours are split into conditions (such as "when this key is pressed", "when this attribute equals 5", or "after 5 seconds") and actions (such as "move this actor in this direction", "load this scene", or "check if this attribute has changed"). Although it might be somewhat restrictive for people with a fair amount of programming knowledge, it's fairly accessible for people without that knowledge, although it often does require some creative workarounds as solutions for problems, which often demands that you be able to work out the flow of your program step-by-logical-step.

Day One

The night before the Jam started, I couldn't sleep - because Scotland had basically turned into a hothouse, and even with all the windows in my flat open, I was melting in the heat. So, although I'm sure it could be considered cheating by some by-the-book Jammers, I spent most of the night thinking up ideas for what I wanted to do with my entry for the Game Jam.

Like a lot of designers, when I'm coming up for ideas for a game, I usually end up trying to create The Perfect Game right from the get-go, and then having to jettison parts of the game as development continues and I start running out of time - which often meant that the ideas that helped bring the game closer to The Perfect Game would be missing, and I'd have been as well making a much smaller, more humble game  in the first place. I was determined not to do that this time round - I wanted to do what I did with The Loch and start small, by saying "if I can just get one basic action in the game implemented that helps bring the player towards some ending, I'll be happy, and then I can build on that if I have time."

My first few ideas were too ambitious, among other things. I ruled out a side-scrolling beat-em-up with a woman martial artist early on - it would be too difficult to hand-draw animations for a character in 48hrs and still make a compelling game, plus it came very close to the common practice of making female characters "strong" in terms of their physical fitness, which I didn't want at all.

After tinkering around with GameSalad the night before the Jam - and, crucially, discovering that gravity was both built-in to GameSalad's scene system AND could be altered - I remembered an idea I had a few months ago that came kind of out of the blue, of a platformer where the gravity was constantly changing - and, for whatever reason, my brain took that moment to connect that thought to an even older idea I'd had about making a superhero that had gravity-based powers, allowing them to perform all sorts of acrobatic stunts. Those ideas fused together into what would become my game.

I fleshed out my main character a bit after that, since I wanted the character themselves to match the themes and setting of the game. Recently, I've been becoming more aware of the type of characters that I (and other folk in the West/Global North) tend to create - and it's that recurrent intersection of demographics that continually crops up. White, able-bodied, young, attractive cisgender heterosexual men.

Now, because this was a Game Jam all about female protagonists, I'd obviously never considered making the character male - however, it often goes unsaid that any game protagonist is likely to be white, able-bodied, young, attractive, cisgender and heterosexual. People from all manner of marginalised groups have stressed the importance of having characters that look like them as a means of receiving equal representation and consideration in media, and, knowing that, I'd feel pretty uncomfortable if I continually churned out the white, able-bodied etc. characters that we've come to expect from the games industry. So, I set about creating a character that I felt would give some representation of people from minority groups, as well as fitting into the game, setting and theme.

The result was Ava.

I'd like to say that there was a meaningful train of thought behind deciding to make Ava a Black trans* woman, but it was nothing more than, "why not?" Trans* women of colour are frequently underrepresented in media, after all.

Ava's name initially came from a placeholder name that I'd given to the main character Actor in GameSalad when I was setting up - I'd chosen it because I remembered it from working on The Loch: A Scottish Fishing RPG, when I was looking up the most commonly-chosen names for girls being born in Scotland in 2012; and later I realised that it was the first three letters of the word "avatar", which was a happy synchronicity. It seemed to fit the image of the character I was developing in my head, so I kept with it.

Some placeholder art saw me through the first half of the first day, where I wanted to get the bulk of the game's physics and mechanisms in place first, but by the end of the first day, I'd already designed and drawn what I wanted Ava to look like.

The final image of Ava was a little sketchy, but since you're continually pushed for time during a game jam, I didn't want to sacrifice a lot of time getting a perfectly-polished image, at the expense of having no game to use it in by Sunday evening. Plus, the small screen resolution (480x320) meant that I'd have to shrink the image down anyway, so most of the sketchiness would be largely reduced.

I implemented most of the game's physics early on, which meant adding in behaviours that determined that, when Ava hit a platform at a certain angle, she would flip around to match that angle so she could stand on top of it, and the game's gravity would adjust accordingly - so, if Ava hit a platform at a 90 degree angle relative to 0 degrees, she would be standing horizontally, with gravity pushing her to the right. This added a whole new way of moving about in a platformer game that I really loved - it meant that you had to kind of "rotate" how you thought Ava would move, how she would turn when she landed - because if she only manages to hit a corner of a platform when gravity's direction is changing, she may not land on the platform at all, and just fall.

While I was implementing the gravity system, though because of the way it was implemented, a problem loomed on the horizon; whenever Ava touched a platform, she'd rotate to a specific angle, and the direction of the force of gravity would too. But, if Ava hit the wrong side of that platform, gravity wouldn't push her towards it - it would push her away. If she landed on a horizontal platform from above, gravity would act downwards, and she'd stay on the platform; but if she hit it from below, gravity would remain pushing downwards (relative to the scene), and she'd just fall. So, I realised I'd need two types of platforms, laid edge-to-edge, so they could adjust the angle of the force of gravity correctly.

When I made those platforms, I decided (simply because Ava was trans*) to make them pink and blue, the colors of the trans* pride flag - which then reminded me of the red and blue colors on magnets, and how we refer to things like the head of a cable as "male" or "female"; I thought it was interesting that we forced these categories of male and female on things that didn't have a sex or gender, and that the gender binary had parallels in things like science.

I'd also had a number of ideas about the win and lose conditions for the game, and how players would win it - I really wanted to design monsters that resembled fusions, amalgamations and interpretations of "male" and "female"-ness (something I touched on in A Silent Hill Queer-y), but I realised it could well send the wrong message - that transsexuality and intersexuality were something monstrous, strange and alien - if I didn't have time to implement ways of showing that that isn't the case at all. So, due to time constraints and art dilemmas, I decided I'd dot the level with some objects called Pylons, shaped like Male and Female symbols, which the player would have to destroy. The Pylons reminded me a little of those red and blue markers on magnets as well, which I thought was appropriate. This gave the game's strange gravity a new significance, as the player would have to think up novel ways of using alternating gravity to reach certain platforms to destroy all the platforms.

By the end of the first day, I'd implemented most of the game's physics and gravity, and I went to bed feeling accomplished and ready for the second day - a stark change from the end of the first day during the Global Game Jam 2012, where I went to bed (on a beanbag, under several beanbags, on a library floor) feeling like my soul was being hung, drawn and quartered.

Day Two

Testing the game was a continuous process: implementing a behaviour or two at a time, running the game in the preview pane, and seeing how the behaviour worked in game. Thankfully, most of the time, it worked exactly as expected - but there was no lack of situations where I'd put in a behaviour thinking it would work out fine, and it caused things to basically explode.

A particularly significant example of this was at the start of the second day, where I was trying to adjust the behaviour where, when Ava hit a platform, she'd rotate so that she would stand on top of it; most of the time, the rotation worked, but her jumping and walking animation cycles would mess up. Because I'd been adding behaviours as I was going along and adjusting how I designed those behaviours to work with GameSalad's built-in functionality, it meant that many of the behaviours had work-around statements; and, as more behaviours were added, these statements started conflicting with one another - one saying "if Ava is in contact with a platform, use the standing animation", but another saying "if Ava is in contact with a platform at the end of this behaviour, rotate the image". So, at the start of the second day, in the interest of having a game that was actually playable, I decided to redo the game's physics from the ground up.

Luckily, it only took an hour or two, because I'd already got a good image of all the behaviours I'd need from having created them before, and I was able to make them interact with each other in a much clearer, less clunky way.

I didn't decide on Ava's surname until the final day, too - the day that news broke about the verdict on the George Zimmerman case. I'd originally heard Trayvon's name mentioned in a couple of songs by Public Enemy and Lupe Fiasco almost a year before, back when I started becoming marginally more aware of sociopolitical issues like race, class and power dynamics in the West; after hearing the verdict, I decided to give Ava Trayvon's surname, "Martin".

I also decided that, in the interest of making her more realised as a female character, I'd like to have Ava comment on what she was doing - and the best place for that, I thought, was when she destroyed each Gender Pylon. So, I implemented a system where, when the player destroyed one, a disembodied voice questioned her motives, gaslit her, and generally acted like a wee dweeby transphobic misogynist; in response, Ava cut through their bullshit and set them straight. Done.

As the final hour approached, I decided I'd finish early, because I wasn't 100% sure how GameSalad worked when it came to packaging and publishing games for the PC platform, and I didn't want to accidentally take too long trying to work it all out. So, I scribbled up a quick main-menu screen, chose not to put any audio in the game, and rushed it through the GameSalad Arcade publishing process just in time to upload it to the main iamagamer Jam site, before the submission system mysteriously broke! Good timing.

And with that, I was finished! I'd managed to make a game from start to finish, on my own, in 48 hours. It wasn't polished, it wasn't life-changing or mind-altering or technology-pushing, but then, it didn't have to be; the point of a game jam is just to get you DOING SOMETHING rather than spending too much time designing, planning, talking or speculating, which many designers like me are prone to doing. And, in that respect at least, I managed to push myself through and finish the jam with a completed game that I could look back on and be happy with.

No comments:

Post a Comment