Creating your own games makes learning to program especially fun and
rewarding. This course provides an introduction to programming in a way that
makes the exciting world of event-driven and graphics-oriented programming
accessible from the beginning. You will learn to develop games of increasing
complexity using a free Java programming environment that is especially suitable
for interactive development.
We'll use a range of elements from the Extreme Programming methodology,
including pair programming, incremental development, and unit testing. Along the
way, you'll learn a variety of powerful computer science concepts, such as
object-oriented programming, basic data structures, concurrency, and literate
programming style.
No programming experience is expected.
Reading and programming assignments will occupy some of the remaining afternoon
and evening time. Class time will be divided between class presentations and
programming exercises, some done individually and others in small groups.
Elements of Java program development - Responding to mouse and keyboard events
- Displaying graphic objects - Using Java's primitive data types - Making
choices: boolean expressions and conditional evaluation - Classes, methods, and
fields - Simple concurrency with active objects - Interfaces for code reuse
through polymorphism - Elements of graphic user interface programming -
Recursion (the beauty of nested behavior) - Iteration (loops) - Inheritance -
Program design methods - Debugging techniques
A variety of additional advanced game programming techniques will be covered in
accord with areas of student interest and available time.
Most programming principles and techniques will be used directly in carefully
designed laboratory exercises. In the last week students will work in teams to
implement a substantial game program of their own design with the instructor's
guidance.
The class will also visit the Advanced Visualization Laboratory (www.avl.iu.edu)
for a demonstration of the lab's technology, including the unique CAVE immersive
visualization environment. A member of the AVL staff then visit the class to
describe the technology involved in more detail. This provides a preview of
virtual reality technology that will be support future game programming.
Working in small groups with the guidance of a computer science professor, you will be introduced to a Java-based programming framework designed to simplify the mechanics of game programming.