19 April 2013
Guest Piece: A Global Game Jam (GGJ) Developer Story – San Francisco Style
Alexey Chernikov is a professional game developer and Corona SDK user. In January 2013, Alexey collaborated with a mix of of graphic artists, sound engineers, and fellow developers at Global Game Jam (GGJ) to create Heart Day with Corona SDK. Corona Labs sponsored the 48-hour hackathon, which attracted over 14,000 developers and designers worldwide.
This year’s Global Game Jam (GGJ) was a blast! We had a lot of fun creating Heart Day during the weekend and it was great to be surrounded by creative people who share a love of video games.
The theme of the jam was announced as an ominous, dark pulsating sound. Our team chose to interpret that as an unhealthy heartbeat. We dug through ideas and decided to go with a game where you control a heart, through whatever situations life throws at it. The ominous twist is that the game character isn’t very healthy. Even doing simple things like eating donuts, or getting stuck in traffic can clog his arteries, and clots that aren’t attended to will burst. As Heart Manager, you must take care of all the ills that befall the cardiovascular system of your avatar, and keep him alive. At the start of a mission, you get to see the “to do” list, for your mission:
Aside from creating the graphics layout, we needed to make a scripted level system, screen switching, and the general gameplay, which required input handling and timing logic. Corona SDK was a great tool to handle such time intensive events, because the API is very high level. It saved a lot of time on setting up the screen layout, implementing UI widgets – a “time left” progress bar; a gradient bar to show how far the current heart rate is from its optimal value (determined by you actually keeping the heart rate steady at that bpm), and all the various interface screens, such as level select, mission briefing, game over, and more.
We choose Corona SDK to develop the game, because using Lua simplified the scripting tasks. The scripted level system was key, because the game allowed for some hilarious story telling. In each level, you’re in charge of the heart of a different person who goes through a list of tasks for the day. These tasks strain the cardiovascular system in different ways – requiring different heart rates, exposing you to more clot-generating chemicals, and stress. We also used a JSON format for describing levels, which felt very seamless with Lua (because the JSON data model is exactly like Lua tables).
Another goal was to get more game mechanics in the game. The game worked well as a hub of mechanics and there was a lot of room to invent what could go wrong with the cardiovascular system. We ended up submitting with four mechanics: keeping a steady bpm, clots (nudge to clear), bursts (tap to clear) and heart failure (shake to clear). We only got some of the secondary mechanics in on the last day, and it was a good help that Corona SDK provided a pretty high level input handling interface – we had some time to experiment with the way we accepted the input to clear all the hazards that could occur.
Overall, we were very happy with the result, and had a great time working on the game!