It was Ludum Dare last weekend. I was running my code club so I set the theme, “one room,” as a challenge for my club members. I usually do this when the competition comes around, but I think this is the first time one of my club members has taken up the challenge and completed a game. It took a little encouragement, but I am delighted with both the effort and the result.
Firewerk is 9 years old and she created the game in about 4 hours. I was present to assist if needed, but she managed to build the game herself and I was able to observe her process.
She settled on a spot the difference game almost straight away. This surprised me. When I attempt game jams like this, choosing what to do can suck up the majority of my time. It occurs to me that this undue caution probably impedes progress when time is so limited. I’ll try to remember that for future jams.
The first problem she had was to make a split screen background image of a room. This took several attempts and the help of a friend. I was impressed by the persistence she demonstrated here. The tools Scratch provides for image editing are crude and often unforgiving. Several attempts had to be thrown out entirely, but she finally got the image she wanted.
The next challenge was to add in the difference objects. Objects in the game took two forms: objects that would appear on both sides, and objects that would appear on one side only. And it was only these difference objects that would need any kind of scripting.
On clicking a difference object, the sprite would need to hide. This worked well on the first run of the game, but had a problem in that once hidden there was no way to show it again. That problem was solved with a second script to show the sprite when starting the game.
The final part of the puzzle scripting was to score points when a difference object was clicked. This was solved by creating a variable to hold the points and changing that value by one when the sprite was clicked. The hiding of the sprite ensured that only 1 point was scored for each difference found.
But there was another reset problem. This time, the score kept counting up every time the game was played. This last problem was solved by setting the points variable to 0 when the game starts.
With the basic mechanics in place, the only remaining task was to populate the game with similar and different objects. This was clearly the most fun part of the game creation process for Firewerk. There was still a minor issue in that each new difference object needed the scripts copied over from the first one. This additional busywork is a problem in the design of Scratch itself: it doesn’t distinguish between the type of an object and instances of an object. Scratch clones can somewhat address this issue but introduce other hurdles which complicate the scripts. And, for younger children, the repetitive task of copying across scripts from one sprite to another appears enjoyable enough in itself.
Having completed the task within the 4 hours we had available she shared the project and then headed over to Friv for a reward.
Firewerk’s LD37 game: Spot the different