If you didn’t know, Ludum Dare is probably the most popular “game jam”, where you get a very short period of time to make a game from scratch, given a particular theme. Ludum Dare 28, which took place from December 13 – 16, was my first game jam. I had always wanted to make a game with my kids, and this seemed like the perfect opportunity.
The Game of Fun is the result. You can play it on GameJolt or here on my site. Nearly every element of the game was decided upon by my kids, who were 8 and 4 at the time of development, from the sounds to the graphics to the controls.
Before the jam officially started, I explained the concept to my boys and let them vote on the theme. Once the jam started, I asked them how they wanted to incorporate the theme, You Only Get One. They decided that you would get one blaster, one bow, and one eye. To arrive at the story, I employed a sort of Socratic method, constantly asking questions of my boys. Who do you play as? What does he look like? Where is he? Why is he there? What is his goal? They eventually decided that you would play as Jack, who is going into a cave to get a bone made of gold and diamond for his grandfather, who is an archaeologist.
This was all decided with as little input as possible on my end. They also decided to make the game a side-scrolling platformer (although they had a hard time explaining that concept, and I believe my older son described it as “like Spelunky“).
Ultimately we ended up deciding on three levels: a village, a forest, and a cave. Each level’s tiles were mostly drawn by my older son in the Tiled map editor, and he made the levels himself with some minimal tweaking from me. My older son also drew the main character, and many of the enemies, including the final boss, using Paint.NET. My younger son drew the hearts, and enemies like the Minter Spider, ghost, and Smusher, using Pixelesque on my phone. The touch interface was much easier for him than my laptop’s trackpad.
Overall, this was a great experience. I used this as an opportunity to learn HaxePunk, and along the way I had to solve problems like object pooling and recycling, collisions, efficient tilemap integration, and building base classes for things like enemies. The code base is pretty rough, with a lot of hacks and last-minute fixes, but you can see it here.
Really my only regrets are that I did not get to fix the jumping (it’s a bit spotty, and will occasionally not register a jump) or implement fireballs that the final boss was supposed to shoot. Aside from those things, we accomplished nearly everything we set out to do, and had a lot of fun!