"Dad, tell them we made a game!"
We made a game, the girls and me. It happened like this. On Saturday I saw that the Mojang gang were spending their weekend creating a new game and live streaming the event. As I opened the video stream my oldest daughter walked into the room and asked what I was watching. When I told her she was hooked. "You mean they'll make a whole game in a weekend? That's amazing." "We could do that, too, you know" I replied. Here eyes got wide. "Get your sister," I told her, and she disappeared with a smile.
Because last weekend was a long weekend, thanks to Family Day, and because it was Family Day, I told the girls that we should transform my home-office into a game lab, and that we should spend the weekend making a game. We spent a while trying to decide what we'd like to build. I convinced them it should be something we could reasonably finish, which is hard for 7 and 9 year olds to fathom, since their imaginations are bigger than their stomachs. My youngest was wearing pajamas with colourful circles, and we started to brainstorm a game based on circles and colours--Bubble Shade was born!
The game would be something like Osmos, with the goal being to guide your circle through other circles, stealing their power, without having yours stolen. We spent an hour or so designing the game, and putting all our ideas on sticky notes, stuck to my office wall. When we were done we had a plan and were ready to rock.
Now it was time to create the game. Where to start? The girls were convinced that the most important first step was background pictures, music, and sound effects, while I thought we needed some code. In the end we took a divide-and-conquer approach. One girl hit Google Image Search to find pretty level background pictures, while the other went to Ektoplzm to find free music, Free Sound for half the sound effects, and my own SFXR.js for the rest.
One of the things I learned during this process is that each of the girls wanted to participate in her own way. While I might have thought doing one thing was most important at first, they were convinced that other things mattered more. People want to "show up" in a collaborative process, and it's important to honour the contributions and skills of each group member. Whether we needed to find the music and images for all six levels up front or not, it was important to the girls that we do it that way. They likewise didn't understand my insistence that we get working code.
Another lesson I learned building a game with kids under 10 was that I needed to have some of the code written ahead of time. I borrowed some code from the fabulous 9elements canvas demo, stole my own audio code from Gladius, used Processing.js (natch!), and a delayed-mouse effect from the Processing.js learning example. By cobbling together a bunch of examples and half-baked code, I was able to quickly get something working that satisfied my partners' desire for quick progress.
In the end we finished just after dinner on the second day. In total I bet we spent 8-10 hours over two days making the game. It was a ton of fun for me, and for the girls who always want to get involved with the programming their dad does.
You can play Bubble Shade by clicking here. I haven't (bothered) to transcode the media for non-Firefox, so apologies if you are using WebKit or IE. Here in the Humphrey household we use Firefox :)