Technical Game Development I


Technical Game Development I

IMGD 3000

B-term 2019

This course teaches technical Computer Science aspects of game development, with the focus of the course on low-level programming of computer games. Topics include 2D and 3D game engines, simulation-type games, analog and digital controllers and other forms of tertiary input. Students will implement games or parts of games, including exploration of graphics, sound, and music as it affects game implementation.

Recommended background: CS 2303

Objectives

The final games made in the class.


info | grading | slides | projects | timeline | samples

Course Information

People

Group email for help (includes TA, SAs and Professor):

gr-imgd3000-staff@wpi.edu

Professor: Mark Claypool
email: claypool at cs.wpi.edu
office hours: Mo 12-2pm Tu 10-11am Th 10-11am
place: Fuller Labs, room B24 (FLB24)

Teaching Assistant: Dafei Lu
email: dlu2 at wpi.edu
office hours: (none - Dafei will primarily be grading)

Student Assistant: Michael Bosik
email: mbosik at wpi.edu
office hours: Tu 4-6pm Fr 11-1pm
place: Fuller Labs, room A20 (FLA20)

Student Assistant: Will Campbell
email: wscampbell at wpi.edu
office hours: We 2-4pm Fr 1-2pm Fr 4-5pm
place: Fuller Labs, room A20 (FLA20)


Time and Place

Days: Tu, Fr
Time: 2:00-3:50pm
Place: Foisie Innovation Studio (FI 203)

Book

Mark Claypool. Dragonfly - Program a Game Engine from Scratch, Version 6, Interactive Media and Game Development, Worcester Polytechnic Institute, 2014.

(The book is freely available online in separate chapters or can be ordered online as a complete book (print or e-book) at a modest price.)

There are other books on game engines that may be of interest to the aspiring developer. A few are:

Game Engine Architecture, 2nd edition, by Jason Gregory, 2014, CRC Press, ISBN: 9-7814-6656-0017.

(An academic-flavored text with a good level of detail on many game engine components. Specifics from working engines are provided throughout.)

Game Engine Design and Implementation, by Alan Thorn, 2010, Jones & Bartlett Publishers, ISBN: 0-7637-8451-6.

(This book has been used in previous incarnations of this course. It has some useful reference material on game engines.)

Game Programming in C++: Start to Finish, by Erik Yuzwa, 2006, Charles River Media, ISBN: 1-5845-0432-3.

(A good book, in principal, for developing a game engine from scratch. However, much of the implementation and code is glossed over and difficult to follow, even if the full listing is provided on CD.)

You should own a really good book (or two) on C++ programming:

C++ How to Program, 9th edition, Harvey Dietel and Paul Dietel, 2013, Pearson, ISBN 0-1333-7871-3.

(Perhaps the "goto" book for answering questions about how C++ works. Dense and full of code and examples, but clear explanations given for most anything you want to look up regarding C++.)

Head First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson, O'Reilley Media, 2004, ISBN 0-5960-0712-4.

(Much of game engine development, and game development for that matter, involves identification and use of software patterns. This book shows you how to analyze, design, and write serious object-oriented software.)


Topics

List of topics covered in this course (not necessarily in order of appearance):


info | grading | slides | projects | timeline | samples

Grading Policy

Individual recorded grades can be obtained via the Canvas Website under "Grades":

IMGD3000-B19-B01 - Grades

Use WPI username and password for access.

Breakdown

Final grades will be computed as follows:

Weight Assignment
10% Project 1 - Catch a Dragonfly
45% Project 2 - Dragonfly (Egg, Naiad, Dragonfly)
10% Project 3 - Finite State Machines
20% Project 4 - Dragonfly Spawn (Plan, Alpha, Final, Promo)
10% Quizzes - All, minus lowest 2 grades
3% Participation
2% Playtesting

Projects - The bulk of the course grade involves programming projects. This can be done on either Windows, Mac OS or Linux but must be in C++. C++ will not be taught (although various C++ techniques will be re-introduced), and it is assumed students have had significant exposure to C++ before starting this course. The grading policy for each project is provided at the time the project is assigned. In general, for each project there is a basic objective for the majority of the assignment points. There may be an extended objective for demonstrating additional work and understanding. Projects, including all data and source code, as appropriate, are to be turned in online as specified in the writeups.

The first three projects (and any sub-projects) are to be done individually, without partners. The fourth project, developing a game using your own engine, must be done in groups of exactly two (no more, no less).

Quizzes - There will be a quiz in almost every class. These are designed to test important class concepts from the previous class(es), especially concepts that may not have been adequately demonstrated in the programming projects. Quizzes are closed book and closed notes, unless otherwise indicated. All quizzes have an equal weight, except for the two lowest scores which are dropped.

Participation - Showing up to class is worth much of a class participation grade, but so is being engaged in the class material through asking and answering questions.

Playtesting - 2% of your final grade is based on participation in playtesting. You volunteer for playtesting sessions arranged by developers (typically IMGD majors) outside of class. For each session you participate in, provide your name to the developers and they give you a certification document (e.g., an email, photo or document). Upload the certification to the Canvas assignment. Note, playtesting sessions are not graded - you get credit just for participating. All playtesting must be done by the end of the term.

Final grades reflect the extent to which understanding of the material has been demonstrated and the assigned projects completed. The base level grade is a "B" which indicates that the basic objectives on projects and exams have been met. A grade of an "A" indicates significant achievement beyond the basic objectives. A grade of a "C" indicates not all basic objectives were met, but work was satisfactory for credit. No incomplete grades are assigned unless there are exceptional, extenuating circumstances. Similarly, no project deadline extensions or makeup exams are given unless there are exceptional, extenuating circumstances.


Late Policy

Quizzes are done, and due, in class. There are no makeup days for quizzes, but the two lowest quiz scores (including any missed quizzes) are dropped.

All assignments are due online unless otherwise noted. Projects due on Friday are due at 6:00pm, unless otherwise noted. Projects are due online are due at 11:59pm. Late projects are accepted up to three days late, with the weekend (Saturday plus Sunday) counting as one day. Any late project is penalized 10% of the total assignment value per day, unless otherwise noted.


Class Conduct

This course is intended for serious students. Participants are expected to adhere to all rules of professional behavior. 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.

All work is to be done individually, unless otherwise specified. Students are encouraged to discuss their program designs, bugs and issues with each other, but are expected to do the actual programming by themselves. As a guideline, code being emailed or copied and pasted has crossed the line.

Any breach of professional ethics as evidenced, for example, by copying exams or code for the projects, downloading code from the Internet, cooperating more than just by discussions in study groups, misusing computer resources, or using outside help of any kind, is considered adequate reason for an NR in the course and a report to the Dean of Students. Refer to the official WPI statements on Academic Integrity for details. Remember this warning - any breach of ethics earns an NR and is reported. When in doubt about possible "grey" areas, ask!


info | grading | slides | projects | timeline | samples

Slides

Slides from class lectures and other in-class materials are available shortly before or after they are presented.

All slides are available on the Canvas Website, under "Files":

IMGD3000-B19-B01 - Files


info | grading | slides | projects | timeline | samples

Projects

Projects and due dates are placed here as they are defined.


info | grading | slides | projects | timeline | samples

This section has any samples discussed in class, exam preparation material, tutorials or any other demonstration-type class materials.

Video lectures on background CS material that might be helpful. Use them to learn/refresh you knowledge:


info | grading | slides | projects | timeline | samples

[Return to the WPI Homepage] [Return to Mark Claypool's Homepage]


Mark Claypool (claypool at cs.wpi.edu)