Technical Game Development II
IMGD 4000 - D Term 2011


Final Game Projects: Click here for gallery!

Professor: Charles Rich (rich)    Office Hours: Tues/Fri 1pm-2pm (FL B25b)

Course Description: This course focuses on the application of advanced Computer Science topics as they impact game development. Networking and distributed systems issues are addressed, including scalability and latency compensation techniques, for designing games for a online multi-player environments. AI, graphics and physics techniques specific to game development are discussed. Students will implement games or parts of games that apply advanced Computer Science topics.

Recommended Background: IMGD 3000

Course Objectives and Outcomes


Teaching Assistant: Jia Wang (wangjia)    Office Hours: Wed 7pm-8pm, Thu 3pm-4pm (FL 222)

Senior Assistant: Adrian Mejia (amejia)    Office Hours: Mon 4pm-5pm (FL 222)

Lectures: Mon/Tues/Thurs/Fri, 2:00pm - 2:50pm (SL 305)

Lab (Required): Weds, 4:00pm - 4:50pm (FL 222 - jointly with IMGD 4500)

Text Books: Design3 Video Tutorials (Subscription required--get code from instructor)

Allen Jones and Adam Freeman, C# for Java Developers, Microsoft Press, 2003. (Optional)

Mat Buckland, Programming Game AI by Example, Wordware, 2005.
(Optional--this book will also be used for IMGD 4100, AI for Interactive Media and Games)


Detailed Information: Lectures, Assignments & Project Milestones (pdf)
(Schedule is subject to change!)

Individual Homework: The "10% Solution"

Individual Optional (Extra Credit): The Firing Solution

Game Project:

Lecture Notes (posted after lectures): Week 1: Game Engines, Scripting
Week 2: Basic Physics, Steering
Week 3: Decision Trees/State Machines, Advanced Pathfinding, Behavior Trees in Halo
Week 4: Shader Programming, What's New in Graphics
Week 5: Networked Game Development
Week 6: Advanced Camera Control
Week 7: Procedural Content Generation, Novel Input Controls

Discussion Forum: GDC Forums IMGD-4000 > D-Term 2011 Thread

Grading: The various components of the course will contribute to the overall grade in the following proportions.
  • 10% Solution (Individual Homework): 10%

  • Final Game Project Technical Milestone (Mon, Apr 4): 10%
    (All tech students in a group will receive the same grade for this component, unless there are exceptional circumstances)

    To receive full credit, this milestone must demonstrate at least partial implementation of the first four elements listed under grade "B" below.

    Include a README.txt in your project describing the technical components for which you are claiming credit (include class names).

  • Mid-term Exam: 15%

  • Final Exam: 15%

  • Technical elements of final game project: 40%
    (All tech students in a group will receive the same grade for this component, unless there are exceptional circumstances)

    To receive a grade of at least "B" on the technical elements, the final game project must include:
    • basic physics (Rigid Body, Collider and Mesh Collider)
    • two force-based steering behaviors (see lecture)
    • basic A* pathfinding (see lecture)
    • object-oriented state machines (see lecture)
    • unoptimized two-player networking (i.e., for LAN)

    To receive a grade of "A" on the technical elements, the final game project must display excellent software engineering practices (modularity, documentation, testing, etc.) and include at least one of the following items for each tech member of the team:
    • advanced physics (Joint, World Particle Collider or Interactive Cloth)
    • multiple combined steering behaviors (see lecture)
    • hierarchical state machines (see lecture)
    • an advanced pathfinding feature (see lecture)
    • a simple Shaderlab or GLSL shader program (see lecture)
    • optimization (see lecture) of networking bandwidth and/or latency (i.e., for WAN--include details of optimization analysis and implementation in README)
    • advanced camera control (see see lecture)
    • another significant technical element requiring a comparable amount of programming

    Include a README.txt in your project describing the technical components for which you are claiming credit (include class names). This file should also include rough estimates of the relative technical contributions of the various technical team members at each stage of the project, in the following format:

    Alpha Release: Name1 [fraction] Name2 [fraction] Name3 [fraction]
    Beta Release: Name1 [fraction] Name2 [fraction] Name3 [fraction]
    Final Game: Name1 [fraction] Name2 [fraction] Name3 [fraction]

    where all the fractions are less than 1 and the fractions on each line sum to 1.

  • Final Game Design/Quality/Integration/Impression: 10%
    (All art and tech students in a group will receive the same grade for this component, unless there are exceptional circumstances)
The final letter grade in the course will reflect the extent to which you have demonstrated understanding of the material and completed the assigned work. The base level grade will be a "B" which indicates that the basic objectives on homework, exams and project have been met. A grade of an "A" will indicate significant achievement beyond the basic objectives. A grade of a "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there exist exceptional, extenuating circumstances.

Policies: Attendance
  • Regular class attendance (and active participation) is expected.
  • If you have an unavoidable need to be absent from the lecture, you do not need special permission, but you are responsible for the work covered.
Cheating
  • Taking credit for work you did not do or getting unauthorized help on assigments or exams is cheating. If you are in doubt, ask the instructor first!
  • Cheating is a serious offense, punishable by an automatic NR for the course.
  • Institute policy on academic honesty will be followed in all cases.