Instructor: Charlie Roberts w/ Ralph Sutter(IMGD 4500)
IMGD 4000 will expose students to concepts related to technical development using game engines. Game engines are used in a variety of fields ranging from games, to medical simulations, to architecture, and are an important part of any developer's toolbox, regardles of whether or not a developer is working on a "game".
Some topics discussed in this course include:
- Modern game development engines (primarily Unreal) and game engine concepts
- Game-specific algorithms (path finding, agent-based AI etc.)
- Source control / asset management for game engines
Your first priority in this difficult time should be taking care of yourself, your family, and limiting your risk of contracting / spreading COVID-19. All individual assignments in this class will come with a recommneded due date that is intended to help keep you on track, but you are free to turn them in at any point in the course. Group assignments will have somewhat stricter deadlines to try and keep projects on track.
If you wind up needing an incomplete in the class, I will give it to you assuming you've been participating to a reasonable extent, and we can work together on completing assignments when you're ready to go. Don't let this class add more stress to your life; use it as a time to have fun with a powerful game engine building an interactive experience with your talented peers. At the same time, try to remember that you are working on a project as part of a team, and communicate to your teammates what you feel you can contribute and when you will be able to deliver.
Course communication will primarily occur through the course Slack workspace; please email the instructor directly if you do not have access to this. Zoom meetings will also be announced in the Slack workspace. Canvas will solely be used for posting grades to assignments. Lecture notes / materials will be found in this GitHub repository.
While there are no formal prerequisites for taking this course, students will ideally be familiar with C++, which will be used extensively but not taught explicitly (with some rare exceptions). IMGD 3000 is a great class to familiarize yourself with C++ before taking this course; there are also various courses in Computer Science that teach fundamentals of C/C++ programming.
Students will work in teams in combination with members of IMGD 4500 (Aristic Game Development II) to create an interactive experience in Unreal; this project will account for the bulk of your grade. There will also be two separate assignments using Unreal that will be completed indvidually; these are designed to ensure that every member of the class has fundamental competency using the Unreal Engine.
For the additional assignments in this class, you must complete one of the two programming assignments (Agent-based simulation or Pathfinding / A*) and then one other choice from the followinig list:
Assignment 1: Agent-based simulation - 15%
Assignment 2: Pathfinding - 15%
Final Project Portfolio - 15%
In-class tutorial - 15%
If you'd like to focus on C++ in Unreal, completing both programming assignments is great!
Initial Design Document - 5%
Website for project - 5%
Midterm Code Review - 5%
Alpha Presentation - 20%
Beta Presentation - 20%
You will note that this adds up to 85%. Due to changes in the syllabus and the current crisis, your grade will start with a "free" 15%.
The final project will be an interactive experience created using Unreal, primarily coded in C++ (although some Blueprints will also be used). Students will work in teams of four developers + two artists on this project, and, generally speaking, the final grade for the project will be shared by all team members.
There are numerous milestones for this final project (see above) and each milestone will be accompanied by a document detailing what is expected and what tthe rubric for grading it will be. One important milestone to mention upfront is the "Final Portofolio Submission", which is worth 15% of your grade. Although part of your final project, this is an individual grade, where you will document the work you did on the project and articulate your design decisions and development challenges. Thus, documenting your process is a crucial component of your grade. The goal is to leave the class not only with a portfolio piece, but with clear documentation outlining your role in the piece so that potential employers can critically evaluate your work.
Documentation should consist of:
- Architectural diagrams describing key system components you implemented
- Well-commented code that clearly explains complex behaviors you implemented
- Gameplay videos that specfically address your contributions
- Commit histories / summmaries that show your contributions
The goal of this class is to both create aesthetically interesting content and understand the code used to create it. In order to understand the code and Unreal more generally, you need to author it yourself; this is particularly the goal of the two individual assignments. That said, there are many ways in which you can assist others without giving them all required code for an assignment. Providing low-level implemetation details (small code fragments that contribute to, but don't complete on their own, major portions of assignments) is welcomed.