CSCI 441 Game Programming

Overview

This is the course web page for CSCI 441 Game Programming. All reference materials and readings for this course are available as free resources on the Web; there is no assigned textbook that you need to purchase.

The course will focus on reading and writing code that illustrates fundamental concerns in video game programming. We will use Microsoft's XNA game development framework, which means the programming language will be C#.

The prerequisite for this course is CSCI 420 Graphics Programming. If you have not taken CSCI 420, then you can still enroll in 441, but be prepared to learn about graphics programming if you have not already studied this topic.

Syllabus
Homing Missile Project
Mythic 2D Project

Schedule

Week 1 Game development tools
Libraries, engines and frameworks
Lab 1
Assignment 1 (due end of week 2)
Week 2 Programming Fundamentals
Trigonometry, matrix algebra, homogeneous coordinates
Lab 2
Assignment 2 (due end of week 3)
Week 3 Graphics programming, Lighting models
Lab 3
Assignment 3 (due end of week 4)
Week 4 Collision detection and resolution, 3D object selection
Lab 4
Assignment 4 (due end of week 5)
Week 5 Path-finding (A* algorithm)
Proposal: Student mid-term project proposals (due end of week 6)
Project: Project presentation (week 8)
Lab 5
Assignment 5 (due end of week 6)
Week 6 Finite State Machines, Aiming, Fuzzy logic
Lab 6
Assignment 6 (due end of week 7)
Week 7 Aiming, Chase and Evade, Flocking
Lab 7
Student final exam week project proposals (due end of week 9)
Week 8 Student mid-term project presentations
Lab 8
Week 9 Architecture, optimization, threading
Audio programming, Sound Engines
Case study: Vector Force
Lab 9
Week 10 Network programming, client/server architecture, shared virtual worlds
Case study: Mythic
Lab 10
Finals Week Student project presentations