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.
(See the final games created by the class.)
Mark Claypool. Dragonfly - Program a Game Engine from Scratch, Version 2, Interactive Media and Game Development, Worcester Polytechnic Institute, 2013. Information online at: http://dragonfly.wpi.edu/book/
The text will be available for purchase the first day of class.
There are other books on game engines that may be of interest to the aspiring developer. A few of those are:
Game
Engine Architecture, by Jason Gregory, 2009, AK Peters, ISBN:
1-5688-1413-5.
(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
CDROM.)
You should own a really good book (or two) on C++ programming:
Head
First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert
Bates, Kahty 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.)
C++
How to Program, Harvey Dietel and Paul Dietel, Prentice Hall, ISBN
0-1318-5757-6.
(Perhaps the "goto" book for 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++.)
Here is the list of topics covered in this course (not necessarily in order of appearance):
Final grades will be computed as follows:
Project 1 | Catch a Dragonfly | 10% |
Project 2 | Dragonfly (Egg, Naiad, Dragonfly) | 50% |
Project 3 | Dragonfly Spawn (Plan, Alpha, Final) | 25% |
Exams | Mid-term and Final | 15% |
The bulk of the course grade will involve programming. This can be done on either Windows, MacOS 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 signficant exposure to C++ before starting this course. The grading policy for each project will be provided at the time of the assignment. 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, will be turned in online as specified in the writeups.
The first two projects (and any sub-projects) are to be done individually, without partners. The third project, developing a game using your own engine, should be done in groups of exactly two (no more, no less).
There will be two in-class exams. These are designed to test important class concepts that may not have been adequately demonstrated in the programming projects. The first exam is roughly mid-way through the term, and the second is on the last day of the term. The second exam is non-cumulative. There is a remote possibility of a pop quiz for which no advance notice will be provided. Exams will be closed book and closed notes, unless otherwise indicated. The majority of each exam will cover concepts presented in class with a few questions testing additional understanding and insight.
Final grades will reflect the extent to which understanding of the material has been demonstrated and the assigned projects completed. The base level grade will be 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 exist exceptional, extenuating circumstances. Similarly, no project dealine extensions or makeup exams will be given unless there are exceptional, extenuating circumstances.
Exams are done, and due, in class. Projects are due online at 11:59pm on the due date, unless otherwise noted. Late projects are accepted up to two 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.
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 expected to be done individually, unless otherwise specified. 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 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 Honesty for details. Remember this warning - any breach of ethics earns an NR. When in doubt about possible "grey" areas, ask!
Slides from class lectures and other in-class materials are available shortly before or after they are presented.
Administrative | pptx | |
Chapter 1 - Introduction | pptx | |
Chapter 2 - Setup | pptx | |
Chapter 3 - Tutorial | pptx | |
Chapter 4 - Engine | pptx | |
Artificial Intelligence | pptx | |
Scene Management | pptx | |
Performance Tuning | pptx | |
Miscellaneous | pptx | |
Review | pptx |
Projects and due dates are placed here as they are defined.
Project 1: Catch a Dragonfly (Sep 05) (slides) (grading guide)
Project 3: Dragonfly Spawn (Oct 04, Oct 10, Oct 15, Oct 17) (slides) (presentation guide)
This section has any samples discussed in class, exam preparation material, tutorials, links to relevant sites or any other demonstration-type class materials.
Topics for exams: