Can visitors of all ages start to code in a Maker Faire/festival style environment? A group of MSU MAET students known as the Pinball Wizards tackled this challenge and presented the result at the Michigan State Mini-Maker Faire on July 2, 2014. We felt this was a particularly relevant time to attempt this. Many students have been introduced to computer programming this past year thanks to the Hour of Code initiative, and Google has recently begun an initiative to get female students interesting in coding with the Made with Code program.
Most of these approaches have students playing games or creating generated art by creating simple sets of instructions, but we wanted to see if students could actually take part in the creation of a game. We decided on pinball since (at the time) it seemed like a simple enough game to make and the modular nature of a pinball table would permit visitors to make one element at a time. By having visitors program visually in Scratch, we hoped this would make the activity accessible for even elementary-aged students. Scratch uses drag-and-drop blocks to represent parts of the code, making it easy to change the logic of the program.
- Laptop computers and/or Raspberry Pi’s with monitors and keyboards
- Sample Scratch pinball game
- Empty Scratch pinball framework
- Code cards on tablet (if available) or printed out
- Optional: Scratch offline editor (if no internet access at site)
- Set up one station with the sample Scratch pinball game. Since Scratch allows for remixes, you can easily change the sample pinball game for any theme or configuration. Allow visitors to try playing the game by using the right/left arrow keys to control the flippers. If they would like to see behind the scenes, show them the Scratch blocks used to make it. With some visitors, we encouraged them to “cheat” by changing the amount the score increases when the pinball hits parts of the table.
- Have visitors think how they could create a similar program: How could they break up the big problem of making a game into manageable parts? What patterns might they discover that would make things easier? What would the final algorithm look like? These questions get visitors thinking computationally, which is a set of thinking tools that allow us to use technology to aid us in solving problems.
- Visitors can then proceed to the next set of stations, which will allow them to add an element like a bumper to the pinball table. Visitors will refer to the set of virtual code cards to know how to navigate within Scratch and which blocks to add. Depending on the age and learning style of the visitor, this could be done completely independently or with assistance. Once visitors have added a sprite, they have a choice as to which blocks they would like to use to produce desired behavior:
- Over time, the tables that visitors are adding elements to will begin to fill up, so you may want to have extra empty tables created to continue this activity with new visitors. It is still helpful for visitors to see what other visitors have created to provide inspiration.
- We did not implement this due to the short time we would have with visitors, but we like the suggestion of also having a challenge station, where visitors could again start with a model pinball game and try to modify the behavior in more involved ways, suitable for visitors who have some experience or just the interest to do so. Ideas we came up with are:
- Create bumpers that teleport the ball
- Create other pinball elements such as ramps or spinners
- Create bonuses such as multiball
- Play with gravity and the behavior of the table to create a pinball table that could not physically exist
- If you would like to run the pinball game on a Raspberry Pi, it is important to consider the relative lack of processing power. Don’t make your pinball game too complicated as we did, or it will run very slowly on the Pi.
- Since the Raspberry Pi uses the original version of Scratch, you will have to convert any Scratch 2 files using a site such as this Retro Converter.
- Be adaptable. Visitors will come with an entire range of skills and interests, so not all will want to play the sample game or try to make their own element. Adjust how you interact with them accordingly. One visitor was more interested in using Python, so we swapped the Pi over to Minecraft and used a sample program to make ice blocks appear in front of the player.
- If using laptops, you can use a Makey Makey to create a playful interface, as our classmates did with a drum set or video games. With a Raspberry Pi, you can use the GPIO pins to connect to buttons to make a more realistic pinball experience, similar to this tutorial for an arcade cabinet.