Pete Border is a researcher in the High-Energy Physics Group, and teaches freshman physics for engineers, as well as art students. In his spare time, he has done several projects about simulating physics labs with Java 3D, pov-ray and Vpython. He has been playing computer games since discovering "Adventure" on an IBM mainframe in the late 1970's, and is currently working on redoing the Honors Physics labs to be much more based on inquiry.
Teaching Physics By Designing Games
I will discuss an experimental course in which I teach physics to Freshmen by having them design their own simple computer games. Students must understand the physics behind the motion to make something move realistically in a game, and they can duplicate a motion only by correctly programming the moving objects. I also cover the physics in a commercial game editor, and discuss the use of physics simulations in movie production. Making their own games is an extremely empowering experience for students, and they will work very hard to make games of their own design.
Students make their games with several technologies. First they do an introductory exercise on basic kinematics with a spreadsheet, after which they make several games of their own design about trajectories and collisions with vpython (a product of Sherwood and Chabay from NCSU, available from www.vpython.org). Assignments are deliberately kept very vague: "Make a game that involves trajectories", for example. After the vpython games, they design some simple levels with UnrealEd, a state-of-the-art commercial game editor. Unreal has its own built-in physics engine, which the students are encouraged to experiment with. Finally, I spend the last few weeks discussing physics simulations in movie production, and we view demos from Siggraph proceedings on physics topics like simulating water, fire, smoke and so on. We also cover (very lightly) non-physics topics like collision detection, Artificial Intelligence, motion capture, and so on.
The course is a 2-credit Freshman Seminar, limited to 15 first-year students. It has been given three times, and it is quite successful. Very few students have any programming experience entering the course, but they manage to "pick up" what they need as neccesary, and teach themselves enough programming to produce some impressive demonstrations. Working on their own games is a great motivator for students, and computer graphics provides instant feedback, which is very helpful. Simulation is also a very clear and natural way to think about physics, and the underlying concepts become much clearer when approached in a "frame-by-frame" way. I am currently attempting to expand the course to 4 credits, and to aim it at more advanced students.