Interactive Media & Game Development
Worcester Polytechnic Institute

IMGD


Course Title: Technical Game Development I
Course Number: IMGD-3000
Term C 2010

Meeting Info: Lecture: Mon., Tue., Thu., Fri. 03:00-03:50pm, Higgins Labs (HL), Room 202
Lab: Wed. 4:00-4:50pm, Fuller Labs (FL), Room 222

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

TAs: Paulo de Barros (pgb at wpi.edu)

Jia Wang (wangjia at wpi.edu)

Textbooks: GUIDE: The Beginner's Guide to the C4 Engine, James Brady, A. A. Cruz, James H., and David Vasquez, 2008

Secondary Books:
OOGD: Object-Oriented Game Development, Julian Gold, 2004, Addison Wesley, ISBN: 0-321-17660-X (out of print)

U3DGD: Ultimate 3D Game Engine Design & Architecture, Allen Sherrod, 2007, Charles River Media, ISBN: 1-58450-473-0

Read each chapter during the week it is assigned. The books discuss much more than I can cover in class, and I will cover things not in the books. You must come to class prepared!

Presupposed background:

In this course, students will be expected to digest, modify, and extend a very large C++ code base in a very short amount of time. Also, many of the constructs used are advanced in nature. It is therefore recommended that students wait until their Junior year to take this course. It is assumed that students have taken the following courses prior to taking this course:

Course Objectives:

This course is the first in a two-course sequence that will 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:

There are many other things that must come together to make a successful game. Thankfully, you have 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 3500: Artistic Game Development I, and for the latter there is a CS course called CS 4731: Computer Graphics.

We will be working closely with students from IMGD 3500 on the projects in this course.

Grading:

20% In-Class Work
40% Regular Projects
40% Final Project

Attendance:

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.

Projects:

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 very demanding, and will require a lot of time. On the flip side, most people enjoy the projects in these types of courses, so it should be okay.

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.

In-Class Work:

There will be a series of in-class exercises that will be graded. Some of these will be short quizzes on the readings, so please do the reading!

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.

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. Please take advantage of this as well.

Lab Section:

The lab section, held every Wednesday in the IMGD Lab (FL-222), will mainly be used for project work, including teamwork on the final project. In some cases, you will be given directed work to do during the lab session, in order to drive home certian concepts.

General:

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

The IMGD lab (FL-222) can be used for this course, and the game engine code for the final project will be accessible from there.

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 member 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 http://www.wpi.edu/Pubs/Policies/Honesty/Students/. 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:

Week Dates Lecture Topic Book Chapters Slides Projects
1 01/14-01/15 Intro. to Game Development; The Game Development Process
OOGD: Ch. 1-2 Intro Thu. 01/14: Project 1 ASSIGNED
Fri. 01/15: Project 1 DUE
2 01/19-01/22 Anatomy of a Game Engine: Game Core; Object-Oriented Design
Jäger Description
GUIDE: Ch. 9
U3DGD: Ch. 2
Gold's Nuggets
3 01/25-01/29 Object-Oriented Design; Scene Management
OOGD: Ch. 4
GUIDE: Ch. 11
U3DGD: Ch. 5
Game Engines
OO Development
Scene Management
Sat. 01/23: Project 2 ASSIGNED
4 02/01-02/06 Artificial Intelligence; Scripting
U3DGD: Ch. 7 & 8 AI 1 (Particles)
AI 2 (Boids)
AI 3 (A*)
Sat. 01/30: Project 2 DUE
Sat. 01/30: Project 3 ASSIGNED
5 02/08-02/12 Iterative Deveopment Techniques
OOGD: Ch. 9 Iterative Development
Sat. 02/06: Project 3 DUE
Sat. 02/06: Project 4 ASSIGNED
6 02/15-02/19 Illumination; Texturing
Thu. 02/18: NO CLASS - Academic Advising Day
OOGD: Ch. 7 Illumination
Texturing
Sat. 02/13: Project 4 DUE
Fri. 02/19: Final: Milestone 1
7 02/22-02/26 Scripting; Sound
Scripting
Sound
Mon. 02/22: Final: Milestone 2
Wed. 02/24: Final: Progress presentation
Thu. 02/25: Final: Milestone 3
8 03/01-03/05 Pitching & Presenations;
FINAL PROJECT PRESENTATIONS: Thu. 03/04 & Fri. 03/05

Presentation Tips
Mon. 03/01: Final: Milestone 4
Thu. 03/04: Final Project DUE

Schedule for Office Hours:

Note: All TA office hours will be held in FL-318. Prof. Lindeman's office hours will be in his office in FL-B24a.

Time Monday Tuesday Wednesday Thursday Friday
9:00




:30
10:00 Jia's Office Hours
FL-318

Jia's Office Hours
FL-318

Rob's Office Hours
FL-B24a
:30
11:00


:30
12:00




:30
1:00
Rob's Office Hours
FL-B24a



:30
2:00 IMGD 3000
HL-202
IMGD 3000
HL-202
Paulo's Office Hours
FL-318
IMGD 3000
HL-202
IMGD 3000
HL-202
:30
3:00
Paulo's Office Hours
FL-318
Paulo's Office Hours
FL-318

:30
4:00
IMGD 3000/3500 Lab
FL-222
Jia's Office Hours
FL-318
:30
5:00



:30
6:00




:30
7:00




:30
8:00




:30

Main Web Resources