Game Programming in Java

Description

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.

Topics will include:

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.