Fall 2006 Syllabus

The purpose of this class is to provide a gentle introduction to the design of virtual, real-time and interactive environments (both 2D and 3D) to non-majors of computer science, using Python, Alice and Blender Publisher GameKit v. 2.24, and in doing so to ensure a thorough overview of advanced programming techniques usually taught at this level: user-defined functions and types, recursion versus iteration, parameter-passing mechanisms, classic abstract data types and algorithms. And since the class is designed to accomodate the specific background of non-major CSCI students with only one semester of programming behind them, it will provide a thorough overview of programming style and object-oriented programming, including event-driven programming, in a style customized to fit the background and knowledge of a recent graduate of A201/A597. This class is particularly suited to serious art students interested in determining exactly what it takes to create a meaningful 2D or 3D game, and to students with an exploratory major that might acquire an interest in the underlying principles of engineering a virtual, real-time interactive environment for entertainment, education, visualization or other purposes. The class does not have a final exam, just a final project. For interested students a crash course in Java can be provided; those students who need or want to learn Java in this class will be able to do it under individual guidance of the instructors for the course (details to be provided in class). For any questions please e-mail dgerman@indiana.edu, call 5-7860, or come to LH201D (Lindley Hall) to get your questions answered in person.

August 29, 31
(2 lectures, 1 lab).

Homework One assigned.

1. Review of A201 (elementary Python):

  • types, variables and simple I/O
  • branching, while loops and program planning
  • for loops, strings and tuples
  • lists and dictionaries
  • functions

September 5, 7, 12
(2.5 lectures, 1 lab).

Homework Two assigned.

2. Advanced A201 (object-oriented Python)

  • files and exceptions
  • object-oriented programming
  • event-driven programming (GUIs)

September 12, 14
(1.5 lectures, 1 lab).

Homework Three assigned.

3. Object-oriented program development:

  • the Blackjack Game

September 19, 21
(2 lectures, 1 lab).

Homework Four assigned.

4. Python Graphics:

  • the Pizza Panic Game

September 26, 28
(2 lectures, 1 lab).

Homework Five assigned.

5. Sound, Animation and Program Development:

  • the Astrocrash Game

October 3, 5
(2 lectures, 1 lab).

Homework Six assigned.

6. Review of Alice

  • Functions and If/Else
  • Repetition: Definite and Indefinite Loops. Recursion.
  • Interaction: Events and Event Handling

October 10, 12
(2 lectures, 1 lab).

Midterm Exam (in lab).

7. Blender Publisher and the Blender Gamekit

  • Introduction to Blender
  • Your first animation in 30 minutes
  • Introduction to 3D and the Game Engine

October 17, 19, 24
(2.5 lectures, 1 lab).

Homework Seven assigned.

8. Introduction to the Blender Gamekit:

  • Load and save Blender scenes
  • Manipulate objects and navigate in a scene
  • Basic texture mapping
  • Playing interactive 3D in Blender's integrated 3D engine
  • Adding interactivity to control game elements
  • Controlling the camera and the lights
  • Object animation
  • Adding and using sound

October 25

Last day (4pm) to drop with an automatic W.

Oct. 27, Nov. 5, 7
(2.5 lectures, 1 lab).

Homework Eight assigned.

9. Blender games, beginner tutorials:

  • Tube Cleaner: a simple shooting game
  • Low poly modeling: 55 wheels game

November 9, 14, 16
(2.5 lectures, 2 labs).

10. Blender games, intermediate tutorials:

  • Level creation and design: super-G
  • Real-time cockpit instruments: power boats

November 14

Proposals for semester projects due now.

November 22-26


November 28, 30
(2 lectures, 1 lab).

10. Intermediate tutorials continued:

  • Building a roller coaster
  • Creating weapon effects for a first-person shooter

December 5, 7
(2 lectures, 1 lab).

11. Advanced tutorials:

  • Flying Buddha Memory Game
  • Game Character animation using armatures
  • Blenderball: an action puzzle game

December 11-15
(Finals week).

Semester projects due (individual appointments).