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.
Recommended background: IMGD 3000
Also please subscribe to all forum postings:
Administration > My Profile Options > Forum Settings > Email alerts for ALL new threads in the forum > Subscribed
There is no assigned textbook for the course. For development, you will make use of the many online documents for Unreal Engine. Any other needed course materials will be made available in class.
You should own a really good book (or two) on C++ programming:
C++
How to Program, Harvey Dietel and Paul Dietel, Prentice Hall,
2005, ISBN 0-1318-5757-6.
(Perhaps the "goto" book for answering questions about C++.
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'Reilly Media, 2004, ISBN
0-5960-0712-4.
(Much of game development involves identification and use of
software patterns. This book shows you how to analyze, design, and
write serious object-oriented software.)
We will be using Unreal Engine, Version 4.15, which will be installed on all machines in the IMGD and Zoo Labs. For personal machines, you may download your own free copy here.
Unreal Engine is configured by default to work with Microsoft Visual Studio. We will be using Visual Studio 2015 Update 3, either the Professional version, which is installed in the labs, or the Community version, which you may download for free here.
Please do not ask the TA's to help you debug your code on any other versions!
Submission of all assignments (individual and team) will be done using InstructAssist. Login with your usual WPI credentials and select this course.
Here is the list of topics that may be covered in this course (not necessarily in order of appearance):
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 exist exceptional, extenuating circumstances. Similarly, no project deadline extensions or makeup exams are given unless there are exceptional, extenuating circumstances.
Final grades will be computed as follows:
Quickstart Project | 7% |
Pathfinding Project | 12% |
Behavior Tree Project | 12% |
Game Project (Group) | 45% |
Mid-term | 12% |
Final | 12% |
The bulk of the course grade involves developing game technology solo, and designing and developing a complete game as a team. Development is in Unreal Engine 4, done through a combination of "Blueprints" scripting and C++.
The grading policy for each project is 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, are to be turned in online as specified in the writeups.
All projects besides the game project are to be done individually, without partners. The game project, designing and developing a complete game, must be done in groups with technical programmers from IMGD 4000 and an artist from IMGD 4500. The IMGD 4000 and IMGD 4500 instructors help organize students teams the first week of class.
There are two in-class exams. These are designed to test important class concepts that may not have been adequately demonstrated in the programming projects. The mid-term exam is roughly half-way through the term, and the final exam is towards the end of the term. The final exam is non-cumulative. 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.
Exams are done, and due, in class. Projects are due online at 11:59pm on the due date, unless otherwise noted. Any late project is penalized 50% if submitted by 11:59 on the day following the due date. No credit will be given for late projects after that.
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.
For individual assignments, students are encouraged to discuss their program designs, bugs and and issues with each other, but are expected to do the actual programming by themselves. Taking someone else's work, even if just a part of a program, and passing it off as one's own is the definition of plagiarism and is a serious offense. Do not copy and paste or email code to other students (unless part of your team on the group project). If you do use code from somewhere else, attribute the source. When in doubt about possible "grey" areas, ask!
Any breach of professional ethics as evidenced, for example, by copying exams or code for the projects, using code from the Internet without attribution, 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.
Slides from class lectures and other in-class materials will be available shortly before or after they are presented.
Game Engines | |
Pathfinding | |
Camera Control | |
Artificial Intelligence | |
Movement | |
Neuroevolution | |
Virtual Reality | |
Physics | |
Networking | |
Shaders | |
Procedural Content Generation |
Detailed information regarding each project will be available before it is time to start working on the project. See timeline for dates.
UE4 Quickstart Project (Mar 22)
Pathfinding Project (Mar 30)
Behavior Tree Project (Apr 6)
Game Project (Mar 15, Mar 19, Apr 2, Apr 13, Apr 18, Apr 24, May 1)