Next semester, I will be offering an experimental game programming course with a group of enthusiastic sophomore computer science undergraduates. The students have two semesters of experience with C++ and one with Java, but I have selected Java for my course because: (1) it is the language in which I have written games, so I can be more helpful, and (2) we can use java webstart to deploy painlessly onto multiple platforms. We will be using Brackeen’s “Developing Games in Java” and Davison’s “Killer Game Programming”.
Game programming is hard, and there are many interesting and appropriate topics for a computer science major to study. Obvious examples include sprite animation, collision detection, audio processing, and applications of artificial intelligence. My educator’s intuition is that the students will get the best learning experience if they develop their game engines themselves, basing the code on the Java API (as in Brackeen and Davison). The alternative is to use a prebuilt game engine for Java, but frankly, I have little experience with these. I avoid the prebuilt game engines because, as an educator, I wanted to make sure I understood the nuts and bolts as I built my own games. In the end, the students want to have a good learning experience and a cool game, and my fellow faculty want to see that the students have learned something scientifically significant. (Note that they have tenure, and I do not.)
I would like to see how the community feels about such a course. If you have any experience to share, suggestions, or observations, please add to the thread. In May, I’ll post a link to the students’ projects for the community to enjoy.
