Interactive Media & Game Development
Worcester Polytechnic Institute


Course Title: Technical Game Development II
Course Number: IMGD 4000
Term D 2014
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 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.

Lectures: Tue. & Fri. 01:00-02:50pm, Salisbury Labs (SL), Room 407

Lab: Wed. 2:00-2:50pm, Fuller Labs (FL), Room 222 & A21

Instructor: Prof. Robert W. Lindeman
E-Mail: gogo at
Telephone: x6712

TA: Jia Wang
E-Mail: wangjia at

Support Materials: In lieu of a textbook, we will be using video tutorials provided by Design 3. Each student must purchase a one-month subscription (USD $20) to the site by going here:
Design 3 has also arranged for you to purchase a longer subscription at a discount (e.g., six months for $60). Ask the instructor for the access code if you are interested in this offer.

We will be using these tutorials for Project 1. Also, HERE are some links to particular tutorials that will help with the term project.

Special Thanks

Thanks to Chuck Rich for providing me with such a solid foundation to build on for this course!

Course Objectives:

This course is the second in a two-course sequence designed to expose you to the nuts-and-bolts of game development, and allow you to become proficient in implementing the major parts of game engines.

The course is designed to give you an appreciation for the complexity involved in creating video games from the ground up. While playing video games has become very popular, actually building them requires developers to bring together various complex (and interesting!) technical pieces. As the bar keeps rising on game sophistication, it is more important than ever to apply sound software engineering and design principles, so that the level of software re-use and maintainabilty is increased.

It seems most game developers first got into the field because they found building games was at least as much fun as playing them. Hopefully you will feel this way too.

There are several objectives for this course. Students should be able to:

There are many other things that must come together to make a successful game. Thankfully, you have these four years, and a whole array of courses, within which to accumulate skills and experience in many of these.

Therefore, there are some things we won't be stressing in this course. The main ones include artistic skills, and traditional computer graphics skills. For the former, we have a sister course to this one called IMGD 4500: Artistic Game Development II, and for the latter there is a CS course called CS 4731: Computer Graphics.

We will be working closely with students from IMGD 4500 on the main project in this course.

Presupposed background:

This course assumes you have mastered Software Engineering, and content from a course like IMGD 3000: Technical Game Deveopment I, including:


The projects for this course consist of several programming assignments, designed to supplement the material covered in the lecture with practical experience. The projects for this course are demanding, and will require a lot of time. On the flip side, most people enjoy these types of projects, so it should be okay.

The projects will use the Unity Game Engine, which is one of the most popular game engines right now. However, in the future, another engine will undoubtedly take its place, so it is important not to view this course as "The Unity Course." Keep in mind that the "best" choice of engine for a particular project you may be working on in the future will depend on many facets. Keep an open mind, and learn much more than just Unity!

After the first project, the remainder of the projects will have you progressively build a game in teams.

Here is a list of links to things that might help you with the term project:


15% Mid-term Exam
15% Final Exam
10% Project 1: It's Just 10% More!
10% Project 2: Basically aMazing!!
10% Project 3: Ghoulies!!
15% Project 4: Who's the Boss?
15% Project 5: Two Heads Are Better Than One!
10% Final Project Game Completeness/Quality/Integration/Impression
15% Extra Credit!

Discussion Boards:

There is a place on the WPI Game Development Club's forums for this course, and you are encouranged to post your questions there, and to look for answers there. We will be using this heavily during the course for clarifications, corrections, etc.

Late Policy:

Projects are due at the specified date and time.
Late projects will be penalized 10% for each 24-hour period after the due date/time. Whether a project is 3 hours or 20 hours late, it will be graded down by 10%. You will be given adequate time to complete each project, if you start when it is assigned. Projects will be turned in electronically, and the date/time received will be used to determine any late penalty. PLEASE do not miss class in order to finish up a project.


Attendance is required. 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 even if you are not in class.

Office Hours:

You do not need an appointment to come to office hours; just show up and take your turn. Office hours (the lecturer's and the TA's) are an important way for you to get help or to discuss anything you have on your mind. We are there to help you; that is an important part of our jobs. Please make good use of these hours. You are cheating yourself if you do not. The table at the bottom shows the times of the office hours.


Questions and discussion are highly encouraged throughout the lecture hours. The best way to reach the TA and instructor is by using e-mail.

Class Conduct:

This course is intended for serious students. Participants will be expected to adhere to all rules of professional behavior.

Individual projects are expected to be done individually. As such, students are encouraged to discuss their work with each other, but are also expected to do the work by themselves.

Any breach of professional ethics as evidenced, for example, by copying exams or projects, downloading code from the Internet, cooperating in more than discussions and study groups, misusing computer resources, or using outside help of any kind, will be considered adequate reason for an NR in the course.

Group projects are designed so that every person gains a significant amount of new material. In the workplace, each team member is expected to contribute. Participants in group projects in this course should keep this in mind, and act accordingly. In evaluating each group, all team members will be asked to distribute a fixed set of "points" to the rest of their team, based on how much each member contributed.

It is to be emphasized that knowledge of material and professional behavior are tied together; failure in one of them negates any excellence in the other. Students who stay in the course past the first three days agree to adhere to the strictest rules of professional behavior.

The official WPI statements on Academic Integrity can be accessed at Those who have any doubt about what that means, and fail to gain that understanding after a discussion with the instructor, are encouraged to drop this class. Remember this warning - any breach of ethics will earn you an NR.

Course Schedule:

Meeting Date Lecture Topic/Slides In-Class Demos/Exercises/URLs Projects
1 03/18 (Tue) Intro; Game Engines
ASSIGNED: Project 1
Lab 03/19 (Wed) Pitches made by Art students / Match making
2 03/21 (Fri) Procedural Content Generation
DUE: Project 1
ASSIGNED: Project 2
3 03/25 (Tue) Procedural Content Generation
Project teams formed
Lab 03/26 (Wed) SVN / FusionForge
4 03/28 (Fri) Networked Games
DUE: Project 2
ASSIGNED: Project 3
5 04/01 (Tue) Decision Trees/State Machines
Summary of Hierarchical State Machines

Lab 04/02 (Wed)
6 04/04 (Fri) Advanced Pathfinding
Milestone 1: ALPHA - Progress presented in class

7 04/08 (Tue) MID-TERM EXAM

Lab 04/09 (Wed)
8 04/11 (Fri) Scripting
DUE: Project 3
ASSIGNED: Project 4
9 04/15 (Tue) Basic Physics

Lab 04/16 (Wed) Milestone 2: Progress presented in lab
10 04/18 (Fri) Acceleration Structures; Advanced Texturing

DUE: Project 4
ASSIGNED: Project 5
Lab 04/23 (Wed)
11 04/25 (Fri)
Milestone 3: BETA - Playable game with Boss presented in class

12 04/29 (Tue) Advanced Texturing; Interactivity & Immersion

Lab 04/30 (Wed) Milestone 3: Progress presented in lab
13 05/02 (Fri) FINAL EXAM

14 05/06 (Tue) Final Project Presentations
DUE: Project 5
(Final Project Description)

Schedule for Office Hours:

All TA office hours will be held in FL-A21 (Zoo Lab).
Prof. Lindeman's office hours will be in his office in FL-B24a.
Please feel free to contact either the TAs or Instructor to meet outside of these hours!

Time Monday Tuesday Wednesday Thursday Friday




IMGD 4000

IMGD 4000

TA Office Hours
Zoo Lab

TA Office Hours
Zoo Lab







Main Web Resources