I am the lucky father of 2 girls, whom I love with all my heart. I thought being the only male in a house of 4 was going to leave me at a loss for common interests—but I was wrong. My 10-year-old is a geek at heart, just like me! We recently made our 2nd video game using the Scratch platform, provided free-of-charge from MIT.
My daughter has been playing with Scratch for about 2 years now. After some help from my co-worker Anne, who has taught Scratch to kids and even put together a Scratch curriculum for elementary students, I was on a mission to dive in with my daughter to collaborate on a new game, Mosquito Crunch!
Adding the Basic Elements
Scratch uses blocks, which are little puzzle pieces that represent a single action.
We started by gathering art for the sprites and backgrounds. The game itself was inspired by the bat images that are included in Scratch, and we drew a couple images of a simple mosquito in the built-in image editor.
Though it took us a bit to find all of the right tricks, I was surprised how little work it took to add the basic motion and interaction. We added blocks make the bat flap its wings upon mashing on the spacebar, move forward/backward with the arrow keys, and creating mosquitos at random places on the screen.
We were then faced with challenge of interaction of the game elements—the bat catching and eating a mosquito in its mouth. Though collision-detection is something I had dealt with before, it was nice to find that Scratch made it pretty trivial. Here is the block that handles taking the CRUNCH! action when the bat touches a mosquito:
Basically, if a given mosquito touches a bat, we play a sound effect, bump our custom crunched variable by 1, and then delete the mosquito.
My daughter took over the task of inventing the crunch noise by starting with the provided clap sound effect, and working magic with the pretty excellent built-in sound editor. She reversed the clap sound wave and overlapped a few copies. After some experimentation, she nailed it!!
Adding the Levels
Finally, we added the levels by defining the crunched numbers where each level would advance. We were able to easily add a sound effect for completing a level and showing a celebratory background and another sound effect, of course.
Even my youngest got into the brainstorming and validation testing of this game. All three of us had an excellent time programming a game together! Excellent to see such a great and popular platform available, for free, from one of our greatest geek universities in the States!