i created Bloat. at TOJam, the Toronto game jam, this past weekend.
i spent a lot less time on this year’s game than i did with my other entries, Two By Two and Here Be Dragons – Bloat. clocked in at around twenty-two hours. i took time out of the schedule for luxuries like eating, sleeping, and going to the bathroom. As Laurence Olivier said to John Hurt in the 1983 version of Shakespeare’s King Lear, “i’m getting too old for this shit.” Still, at the risk of being labelled a big girl’s blouse, i did pull an all-nighter from 11AM Saturday to 1AM Monday, racking up a total of two and a half hour’s sleep. i still got it, baby.
When i got to the jam on Friday night, i had my plan down semi-solid: armed with a MacBook and a copy of Beginning iPhone Development (i’m on chapter four!), i was going to churn out a few small not-really-game iPhone apps by the end of the weekend. So i sat down, cracked the book, and started reading all about model view controllers and Interface Builder, and view states and multi-view panel buttons and snoooooooooooore. All around me, enthusiastic jammers were yelling stuff like “score!” and “player!” and “enemies!” and “hot coffee!” at each other, and i started to feel a little left out.
So i calmly closed the book, and opened up the trial copy of Unity that i’d just downloaded. i already knew how to make a box fall from the sky and land on the ground. That’s, like, halfway to a game … right? And all around me, the game banter continued: “extra lives!” “state machine!” “Robotron controls!” “EA spouse!” The din was deafening, and i’d forgotten my headphones.
This was no place to learn new software. This was no place to struggle with an unfamiliar operating system. This was the mother-effing Toronto Game Jam, and i was there to make a GAME. So i lit the MacBook on fire and threw it across the room, took off my pants and tied them around my hair like a headband, booted up my PC laptop and opened Flash. i was there to make a game, and nothing was going to stop me.
A Dark Room
i’d promised myself that this year, i was going to go into the game jam cold, with no game ideas and a commitment to the year’s theme. The theme this year was “scale”. Little did i realize that actually cooking up an idea right there on the spot was going to be challenging. A weekend-long jam requires a lot of planning; you have to choose a game idea that you can build in that tight amount of time, and what’s worse, it actually has to be playable. And on top of that, and completely optionally, it also has to be fun. Since fun is that just-out-of-reach jewel that we game developers stretch for when we have a lot more time to think it through, the jam presents a significant level of challenge.
So i went into a dark room and thought for nearly two hours. When i emerged, i had a concept, but i didn’t have any idea whether it was good or not. The only way to find out was to build it.
My brainstorming room was home to a thousand delapidated office chairs, and this little number made entirely out of books. It wasn’t nearly as inspiring as it looks.
A Little Help
When i first attended the game jam, i didn’t have any libraries or prior code. i just opened up a fresh Flash project and started building. i knew that other people were using pre-existing libraries, and i considered that “cheating”. These days, though, i’ve caught glimpses of how other programs work, and i now appreciate the number of tasks that Flash automates for the developer. For example, other languages require lines and lines of code just to draw something to the screen. Flash handles this for you. So really, i had been using a tool to speed up development all along.
So from there, and with the enormous asspains presented by Actionscript 3, i was able to justify the use of a few more libraries this year, which helped me focus on the core game experience. Here are the snippets i used:
- Corey O’Neil’s excellent Collision Detection Kit (thanks, Corey!)
- Jeff Gold’s audio classes for playing music and sound effects (Jeff is our game developer here at Untold Entertainment, but he couldn’t make the jam this year. Something about nice weather and “having a life”.)
- Our Game Screen Manager class, which handles switching between screens and popping up prompts and dialogues
- Our Helper class, the guts of which you can copy-paste from our Flash 911 series to use in your own projects
- A fireworks particle effect that i found online and ported from AS2 to AS3 for our fun, crime-themed puzzle game Kahoots™, which we modeled entirely in clay
i’m very happy with how Bloat. turned out! The biggest brainwave of the weekend was looking at all of the features i had in the game, and deciding to split them out across multiple tutorial levels. i remember watching in dismay at last year’s jam as people walked up to Here Be Dragons, clicked until they got some ship rigging stuck in the sea monster’s throat, couldn’t figure out what to do, and floated away to try another game. If there’s one thing i’ve learned is a weakness of mine as a designer, it’s getting what’s in my head out of my head.
The Closed Public Beta team for Kahoots™ is doing an excellent job of pointing out where Kahoots game needs more explanation. The best advice i can offer you, if you have this problem too, is:
- Make your game more simple
- Introduce escalations gradually
- Treat your audience as if they ride the short bus
Your players aren’t stupid. (Well, most aren’t … ) But they can’t read minds either. By dumbing down your instructions and game progress into digestible chunks, you’re allowing the smart people to sail through to the more difficult content, without leaving your less savvy players in the dust. Either way, you ensure that absolutely everything that was in your brain is out of your brain, and everyone’s on the same footing.
Until i develop and convince everyone to purchase and install my mind control ray, this approach will have to do.
Special thanks to Brendan Lynch for using the “demented” filter on his camera