Project "Programming Pinball Machines"
(scroll down for publications)
We believe that teaching computer science hands on via the development of games helps us to motivate students to learn computer science. The University of Southern California (USC) has created a Bachelor's Program in Computer Science (Games) and a Master's Program in Computer Science (Game Development), which not only provide students with all the necessary computer science knowledge and skills for working anywhere in industry or pursuing advanced degrees but also enable them to be immediately productive in the game-development industry. In this context, we have performed a feasibility study in Summer and Fall 2008 for a motivational project class on programming pinball machines, where the students interface a PC to an existing pinball machine and then re-program the pinball machine with a pinball game developed by them. Solid-state pinball machines basically consist of a computer that reads the switches and controls the lights, solenoids, speakers and the dot-matrix display. A pinball game is determined by the input-output behavior of the computer, that is, what outputs the computer activates and when it activates them in response to its input-output history.
The project team consisted of Daniel Wong (undergraduate student), Darren Earl (Master's student), Fred Zyda (Ph.d. student) and Sven Koenig (advisor). We used a Lord of the Rings pinball machine for our feasibility study. Our objective was to develop the hardware interface between a PC and the pinball machine, the software interface to drive the hardware interface, libraries that provide abstractions of this software interface, and a program that uses these libraries to implement an engaging pinball game. As far as we know, this is the first time that anyone has managed to control an existing pinball machine completely and re-program it with a new complete (but simple) pinball game.
The students created the following 11-minute video to describe their project and its results. It starts out by showing the new pinball game, called Pinhorse, and then describes how it was created. We made it available on December 31, 2008 on youtube.com. It was viewed 3,000 times in the first three months and has now been viewed more than 9,000 times..
We wrote a short overview of the project for Pinball News.
The project team that developed the next generation hardware and software consisted of:
We made our hardware and software available to the University of Alberta and worked on a joint project on simultaneous multi-player pinball with Jonathan Schaeffer, Nathan Sturtevant (who has since then moved to the University of Denver) and their students. They put together the following videos:
If you are interested in finding out how the project started, you can watch Sven Koenig's acceptance speech for the IEEE Computer Science and Engineering Undergraduate Teaching Award. Many thanks to the IEEE Computer Society for the award! Many thanks also to Michael Schiess, the Executive Director of the Pacific Pinball Museum, for his moving email: "Well you certainly made my day! That is very touching that the Lucky Ju Ju had such a positive effect on you and your teaching. It was always a goal of the LJJ and then the Pacific Pinball Museum to encourage people to learn through gaming. Thank you for honoring us in your acceptance speech and doing the work you were awarded for."
If you are interested in programming pinball machines, you might also want to check out the GamePipe Laboratory at the University of Southern California.
Representative Publications
Part of this material is based upon work supported by the National Science Foundation under Grant No. 0113881. Part of this material was also based upon work supported by the Fund for Innovative Undergraduate Teaching at the University of Southern California. Any opinions, findings, and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
If you have comments on any of these papers, please send me an email! Also, please send me your papers if we have common interests.
This page was automatically created by a bibliography maintenance system that was developed as part of an undergraduate research project, advised by Sven Koenig.