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 therefore 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 3000 times in the first three months.
We wrote a short overview of the project for Pinball News.
We are now in the process of developing the next generation hardware and software. Our project team consists of
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.