My Oddball DreamHackathon

Last weekend I took part in my first competitive game jam – the inaugural DreamHackathon, at Stockholm’s Ericsson Globe. This 24-hour game jam had a 100,000kr pize pool and counted eye gaze hardware manufacturer Tobii amongst its sponsors. It brought together some 90-odd jammers comprising 27 teams, and it sat right alongside one of Europe’s biggest esports tournaments. In the middle of all that, I teamed up with 4 other people to make a game in which you play as improbably fat cats, lusting after surströmming.

Team Oddballs, 5 hours into jamming
Team Oddballs, 5 hours into jamming

Given that I’ve attended game jams before at settings including a museum, the headquarters of Mind Candy and a boat moored in København, it didn’t feel quite so strange to bring my laptop and game controllers along to the world’s largest hemispherical structure; home to ice hockey matches, major concerts and of course, this major esports gathering. The venue was still impressive, though – replete with banners, posters and merchandise from the likes of World of Warcraft and Counter-strike: Global Offensive. I made my way past all of that, wearing a green “competitor” wrist-band, in order to reach the colourfully-lit bar which would be home for the next day.

The Premise

We started out by generally mingling around talks by the event’s sponsors, and slowly our team took form. Myself and my friend and colleague at TjejHack, Inger Ekman, were joined by composer Johann Frell, student 3D artist Joel Zakrisson, and developer Joachim “Nevyn” Bengtsson. Our idea was simple: a physics-based, 4-player party game involving circles or spheres.

Our basic control mechanics, as applied in 2D
Our basic control mechanics, as applied in 2D

Each player controls one sphere, and has a context-sensitive action which will affect the rest of the group. Most of the time this is expressed as a jump. In both 2D and 3D environments, one sphere jumping will rotate the overall mass, pushing it forwards. If all the spheres at the base of the object jump at the same time, the whole mass will be lifted. We also decided that if those on top activated their ability when in the air, the mass would hover – thus giving us a basic palette around which to construct a few different types of game. We explored our options with relaxed, toy-like games and grid-based puzzles before settling on a mildly chaotic action game, in which inter-player communication becomes key to progressing through the level. The spheres became fat cats, and the result was Oddballs: "Oddballs" title screen In many ways, this was the most sophisticated game jam project I’ve been involved with (despite its whimsical theme!). Each participant’s role was clear, the deliverables were achievable, and despite it only being a 24-hour hackathon we managed to spend the last 7 hours of that simply refining a playable product. It had its ups and downs like any jam project – not least when we ran into problems with GitHub commits to Unity. It also proved quite a challenge to have four spherical cats act independently, and yet cohesively as part of an overall tetrahedron. In the end though, we built a reasonably complete level with which to demonstrate the game’s basic premise and mechanics:

Reunited with Level Design

My role in all this was almost exclusively design – a first for me, as quite often I find my input branches off after the programming goals are set and the art is in full production – usually into audio and presentation assets, with the occasional bit of 2D art support. However, with Johann creating stunning audio for us, Inger and “Nevyn” coding throughout and Joel prepared to create our 3D art, I set about reviving my love for level design.

My 3D mockup of "Oddballs"
My 3D mockup of “Oddballs”

I kept the level flow simple, and paced it around the players getting to grips with the game’s control scheme. An alleyway was the obvious choice for a setting, providing boundary walls for the players’ first calamitous steps and an easy choice of obstacles for them to overcome.

From the starting position at the lower-left of the above image, it would take a few moments for the players to get into the rhythm necessary to progress forwards.  A fence was placed a short distance away in order to (quite literally) keep the rolling mass of cats on the straight and narrow, while also adding a gentle challenge to the collectible which would later be placed on the left here.

My goal then was to introduce hurdles of growing magnitude, and to spread collectibles at various points to try and encourage mastery of the controls. A climactic point would await at the tallest hurdle, which we intended to be just high enough so that the mass of cats would catch on the lip of the wall. Players would have to jump again en masse in order to topple over the wall and into a wide street scene, free from the confines of the alleyway.

Getting the Hang of This Jamming Lark

This time around, I decided to imposed upon myself a fairly solid working structure. Fortunately all our ideation was concluded in the breaks around sponsor talks and the like, so we were free to crack on at 19:00 on the Friday.

As the group went from early conceptualising (on paper) straight into prototyping in Unity, the non-coders amongst us set to carving out the game’s look, feel and sound. I stuck mostly to spreadsheet-based design documentation, alternating between LibreOffice and Blender to block out the level mesh above and generate an asset list for Joel, our artist. This took up around 3 hours, at which point we were able to drop the very rough mesh into the coders’ prototype (as well as our character models and the first clips of audio).

As each new version of the game was committed to GitHub, we slowly swapped out my blank blocks for Joel’s Maya-made models, with me on active level-crafting duties throughout the night until rest had to come. Any down-time was spent trying to create 2D, graphical assets for our presentation. I started out trying to draw a comic book-styled splash image, but ultimately felt more confident in an arranged screenshot from the game itself (as seen near the beginning of this post).

The game became steadily more complete as we approached afternoon, and so I was all set to switch roles with 7 hours remaining. I’d be prepared to admit that what I put into Oddballs‘ presentation and graphics was not my best work, because sleep deprivation was beginning to hit us all, but the time slot was generous enough for me to get a logo and some bombastic slides drawn up. Ultimately we resolved to let the game do most of the talking for us, and while a sudden switching of game presentations ahead of our own meant that we couldn’t get set up in time, I’m happy to say that the cats did roll and meow on the surprisingly grand stage:

Me presenting "Oddballs" to our fellow jammers and the DreamHackathon jury
Me presenting “Oddballs” to our fellow jammers and the DreamHackathon jury (photo: DreamHack)

Sursöt Hackaton?

At the end of the day, we succeeded in creating an artistically-consistent, rich-sounding and playable game demo. We won no prizes for it, in any of the ‘special mention’ categories or indeed those with cash prizes, but we came away satisfied nevertheless.

DreamHackathon itself has given me much to think about, in terms of how the game jam was run, and my glimpse into esports culture. As far as I could tell, only four of the 90+ jammers were women. I was the event’s only female presenter, and that gender imbalance bore out at DreamHack proper. Whether it be because LadyCADE and TjejHack have skewed my impression of games events or not, I felt rather conspicuous when wandering around the male-dominated event on my breaks from the jam. Those I did see were either in front of a camera or manning stalls, and while there’s nothing wrong with that in and of itself, I quickly felt isolated as an observer.

Add to this the pressure created by sizeable cash prizes, and DreamHackathon became a more stressful experience than I might have originally expected. I kept the prizes well out of mind throughout our making the game, because I believe that any game jam is a success so long as you make something – and Oddballs was thoroughly good fun to make. Despite that, having 60,000kr rest on the quality of my presentation on behalf of my team-mates, delivered on only three hours’ sleep, served to scupper my optimistic streak as the 24-hour mark passed us by.

With that having been said, I would attend again, even if I feel fraudulent wearing a “competitor” wrist-band. Designing to win has never played a part in my game jam process, and I don’t intend to change that. It’s hard to balance ‘game jams for fun’ with ‘game jams for cash prizes’, but we had some pretty great facilities at our disposal. Even if I have to devote a certain amount of energy towards convincing myself that there is no contest, game jams remain a great way to meet new people and make fun things. DreamHackathon’s no different by those criteria, and ultimately that’s all that matters.

My thanks to (from left): Johann Prell (audio), Joel Zakrisson (3D art), Joachim Bengtsson and Inger Ekman (code)!
My thanks to (from left): Johann Prell (audio), Joel Zakrisson (3D art), Joachim Bengtsson and Inger Ekman (code)!