Amidst all the university related work I have to do, I also participated in a worldwide event called the Molydeux Game Jam. This event is similar to a game jam, in the sense that participants must create a game in 48 hours. However, this particular game jam had a special twist, since the game idea had to be based on one of the tweets by @petermolydeux, an account on Twitter parodying the famous game designer Peter Molydeux. The parody account is known for posting outrageous game ideas. A few examples are given on the Tumblr that Molydeux himself set up.
I decided to create a game called Zâmbesti. The word is Romanian, and it means smile. The game was based around this particular tweet from Molydeux:
“Imagine living in a world where all anyone can do is hurt each other. You on the other hand, your only ability is to hug those around you.”
This tweet reminded me of a Romanian friend of mine named Nina, who is studying with me at the IT University of Copenhagen. I quickly decided to create a small game with Nina as the main character, where she had to go around and hug everyone in order to beat the level. The catch is that the enemies can shoot at Nina, at each other and at enemies that Nina has already hugged! Since I didn’t manage to convince anybody to take part in the Molydeux Game Jam with me, and I really wanted to take part, I had to settle on a very small game idea, since apart from programming and music, I also had to tackle the art style of the game. To simplify things, and also to fit in with the natural 8-bit feel that Flixel provides, I decided to have pixel art for the art in the game, as well as trying to keep the music as simple and minimalistic as possible by using square waves, sine waves and other simple waves.
Below is a small post-mortem as well as the thought process I went through while creating the game.
- Collect your thoughts together
As soon as I felt that I had found a direction I wanted to take the game in, I started writing my ideas down on paper and on a whiteboard. This was important, since I was able to go back to them later and verify my tasks or see what tasks I had left to do. I decided to group my tasks into 3 different sections, namely Programming, Art and Sound. I wrote down every single task that I had to do, including the mundane ones that I felt should not take me long. This was important since even though I had planned ahead and written down all the tasks that I thought I had to do, there were still a few more that I had forgotten. Admittedly, foreseeing what needs to be done takes practice.
I could have easily started with the art or with the music, but with just 48 hours to work with and only 1 person, the crucial things needed to be done first. By the end of the game jam, I estimated that 29 hours had been spent on programming and debugging. My main priority in making this game was to make a small and polished game, so several design choices I made during the 48 hours reflected this priority. Since I wanted the game to feature Nina, another priority was to have the art done.
- Use tools you are comfortable with
Although this was the first time I was going to start (and eventually finish) programming a game in ActionScript 3.0 using FlashDevelop, I was already somewhat familiar with how the language worked. I also used Flixel, which easily structured my game. This made it easy to jump in and get started, without having to read through manuals describing the different quirks of the language, or how to successfully get the recommended IDE up and running.
For music, I used Ableton Live, simply because it’s a DAW that I’m familiar with and comfortable working in. This allowed me to transfer my music ideas from my head to the computer. I also used Microsoft Paint to draw the character art and tile sets. The program sfxr is great in that it randomly plays with square waves, sine waves, sawtooth waves and white noise to generate new sounds, making it easy to create the sound effects you need.
- There are many different maze algorithms
Since I wanted the game to be extendible infinitely and didn’t want to go through the trouble of designing levels, I deciding on implementing an algorithm that could generate the levels for me. I decided on implementing a maze generation algorithm, but when I researched the problem further, I realized that most of the algorithms were for thin walled mazes, where the walls were the cell borders in the grid. I wanted to implement thick walled mazes, where any cell in the grid could be either a path or a wall. I looked through different algorithms and maze classifications on Think Labyrinth!, as well as downloading a program called Daedalus which implemented all of the algorithms, making it easy to see what my mazes could look like.
I managed to have a playable prototype by the end of the the 48 hours with minutes to spare. The game’s profile on the Molydeux Game Jam website can be found here, and the game is hosted on my website and can be played here.
I intend to finish the game by continuing to debug some nasty problems that I didn’t fix in time, as well as continuing to work on the art and the music. The game’s source code will also be released when it’s done, and I also intend to release the music separately for people to download for free, so stay tuned! 🙂