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.
The Final Games
There is no assigned textbook for the course. For your game 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:
How to Program, Harvey Dietel and Paul Dietel, Prentice Hall, 2005, ISBN
(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++.)
First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert
Bates, Kathy Sierra, Elisabeth Robson, O'Reilly Media, 2004, ISBN
(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.)
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:
|Firing Soution||+5% (optional!)|
The bulk of the course grade involves designing and developing a game as a team. Development will be in Unreal Engine 4, done through a combination of their "blueprints" scripting and in C++. Unreal Engine development is supported on either Windows using Visual Studio or MacOS using XCode.
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.
The first project, the UE4 Quickstart, is to be done individually, without partners. The main project, designing and developing a game, must be done in groups of exactly two technical programmers from IMGD 4000 and exactly two artist from IMGD 4500. Note, each pair of artists will be providing the same art assets to two different tech teams. The IMGD 4000 and IMGD 4500 instructors will help you organize into teams the first few weeks of class.
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 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. 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 to be done individually, unless otherwise specified. 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 team's. 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, 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 and is reported.
Slides from class lectures and other in-class materials are available shortly before or after they are presented.
Projects and due dates are placed here as they are defined.