EECS 494 : Computer Game Design and Development
Capstone / MDE Course
Instructor : Austin Yarger ([email protected] - ayarger.com) - Course Website : eecs494.com
Normally an in-person event, EECS 494’s end-of-semester showcase grew to 1K+ virtual attendees in 2021 as alumni, coastal recruiters, parents, and others participated from afar virtually. Play the six-week W21 showcase games online at https://494showcase.com/index_w21.html
Seeking More GameDev / XR Courses?
From medical care, marketing, and simulation to artistic expression, education, and entertainment, the techniques and technologies that power modern digital games are having an $150B+ impact on many aspects of our modern world.
EECS 494 empowers students with the knowledge and experience to...
Students will end the course with at least three significant, interactive game projects in their public portfolios.
Find the official course description, along with various statistics, on University of Michigan Atlas.
Find additional course / community / gamedev resources on https://EECS494.com.
The approximate value of EECS 494’s assignments are listed below. Each project is represented by an (often large) set of sub-assignments (see further below).
Assignment | Est. Grading Weight |
Tutorial Assignments (week 1) Warm-up assignments in the first week. Introduction to the Unity ecosystem. Team size : 1, Duration : 1 week | 11% |
Project 1: Classic Game (weeks 2-4) (milestone) (alpha) (gold) (research) (pm) (postmortem) (peer_eval) Exercise game engineering techniques by recreating a significant chunk of The Legend of Zelda (1986) or Metroid (1986). Produce a custom area and mechanic. Team size : 2, Duration : 3 weeks | 17% |
Project 2: Rapid Prototype (weeks 5-6) (gold_spike) (gold) (research) (pm) (postmortem) Exercise game design techniques (interesting decisions, player guidance, juice, etc) via a novel, two-week rapid-prototype project. Team size : 1, Duration : 2 weeks | 17% |
Project 3: Showcase Game (weeks 7-14) (gold_spike) (milestone) (milestone2) (alpha) (beta) (gold) (marketing1) (marketing2) (research) (pm) (ec_freelancers) (ec_analytics) (postmortem) (peer_eval) Exercise design, implementation, and project management knowledge in the creation of a substantial, commercially-released showcase game. Team size : 3-5, Duration : 6-8 weeks | 44% |
Participation Engage in playtesting sessions and team projects with congeniality. (Lecture attendance is optional in EECS 494) | 11% |
The course schedule is subject to industry interviews, field trips, and vacation days that may be difficult to predict-- causing small variations from semester to semester.
A sample of Winter 21’s schedule document. Read top-to-bottom, green means an assignment is launching and red means it is due. Lecture plans, including links to slides, announcements, etc, are available on the left for each session.
EECS 494 employs the standard grading scale below in converting scores to letter grades.
Final grade projections are released on Canvas in the final several weeks of the course. Students are granted a period of at least 24 hours to review and dispute final grades before their submission to Wolverine Access.
Students are required to have successfully passed EECS 281 before taking this course.
There is no book requirement. Jeremy Bond’s Introduction to Game Design, Prototyping, and Development is recommended for those seeking a high-quality text to reference.
In order to participate during in-class feedback / playtesting sessions, students must be capable of exhibiting their games and deliverables on a laptop computer. A laptop with basic 3D graphics capabilities is required. If required hardware is out-of-reach, make contact with the course staff-- there exist programs to help.
EECS 494 is a challenging course that requires, and rewards, a significant investment of time.
Please reconsider taking EECS 494 if you...
The average course grade has historically been “A- / A”. EECS 494 does not employ exams or quizzes.
For alternative / additional ways to study game dev on campus, please see the front page of https://eecs494.com.
Graduate students are advised against taking EECS 494 due to its substantial time requirements and undergraduate-style grading structure. Please discuss with your advisor and reach out to the course staff if considering registration.
Non-CSE Graduate Students seeking to take the class should fill out this form.
A number of resources exist to improve one’s EECS 494 experience--
One may study and experiment with sample code covering a variety of topics in the course code repository.
Check the course canvas site for links to...
Should you feel overwhelmed, or find yourself spending more than 12 hours on assignments per week, please reach out to the course staff at [email protected]-- We will be happy to discuss your progress, techniques for time-efficiency / assignment planning, and ways to get back on track.
Should you find yourself unable to make progress due to factors beyond your control (sickness, family emergency, etc), please reach out immediately for extension consideration. Extensions will not be granted in situations where a project teammate may carry the burden temporarily.
Lecture recordings will be made available an hour or so after a given lecture concludes (check canvas for a link to the recording repository).
You may find lecture recordings from previous semesters, in addition to other gamedev content, on the course youtube channel.
All deliverables required of an assignment must be submitted to the appropriate EECS 494 canvas site. The student is responsible for meeting every requirement of the assignment specification, and following submission procedures including deliverable naming, timeliness, etc. Penalties related to incorrect assignment submission and formatting represent one of the largest sources of lost points in EECS 494.
Students are responsible for understanding the submission technology and processes used by canvas, and will be held responsible for the team submissions executed by their assignment teammates. Students will not be held responsible for submission difficulties outside of their control, such as widespread canvas server outages. For game-based deliverables, only the executables will be graded. If the submitted executables cannot be graded, the submitted source will be graded (but only the game beginning with the main scene, and only if no changes are necessary to run the game. The Incorrect Submission Format Penalty will also be applied).
Assignments submitted late will be subject to the following policy, exhibited in the Python programming language (unless otherwise specified in the assignment specification)--
if hours_late < 0.0: return graded_assignment_score elif hours_late < 24.0: Return graded_assignment_score * 0.8 return 0.0 |
Note that Canvas’ assignment submission timestamp will be the ultimate authority of when something was turned in. Begin your upload early and keep your submissions small to account for networking or technology-related delays. Assignment extensions will only be granted for exceptional, extenuating circumstances beyond the student’s control, and not in situations where a teammate may carry the burden temporarily. Please make contact ASAP, and not moments before a deadline.
Teams may request the course staff grade an earlier submission if the request is made before the staff begins grading.
Submitted assignments that do not meet the submission requirements outlined in the “Deliverables” section of its assignment specification will…
Missing files, broken builds, being forced to load the project from source, etc are typical reasons for application of this penalty. This penalty may also be applied in situations where students created games that are unplayable via the keyboard / mouse or the course-standard Xbox or playstation controllers (controllers may be checked-out in class).
The “Late Assignment Submission” and “Incorrect Submission Format” penalties described above may stack to form a single 40% penalty.
Project 2 and 3 will see the grading staff utilize Xbox 360 input devices, keyboard, mice, and at least two monitors to grade games that require them. VR teams should schedule time outside of normal grading hours for the grading staff to evaluate deliverables with the appropriate equipment. A limited number of Xbox 360 input devices are available for checkout (contact course staff).
Team members that provide substantially less investment than the average of their project peers will have a penalty applied to their project score (via their participation grade). Evidence will be collected from peer evals and the course JIRA time management system, and presented to the student in question.
The penalty calculation adheres to the following formula--
As a result of this policy, team members who contribute substantially less than the average of their peers on a project should expect to receive substantially fewer points on those projects. It is possible for participation grades to go negative, allowing the penalty to have its full impact in all cases.
There is no explicit penalty for truancy, though much is likely to be missed without timely attendance. Those who cannot attend lectures in-person may watch recordings made available several hours later.
Any released grade may be disputed, either at office hours or via email ([email protected]), so long as the dispute is raised within one week of the released grade.
Grades will only be considered for adjustment in situations where the instructor’s grading process is “cut-short”, or rendered incomplete, due to the instructor failing to notice features / content of the deliverable, or being physically unable to due to a high difficulty or by demanding an unreasonably long time investment of the grading staff.
To clarify, the following are not valid reasons to request a regrade--
Office hours will be held weekly, in both in-person and virtual modes, with each instructional staff member contributing at least one hour per week. Check the course Canvas site and calendar for office hour dates, times, and locations.
EECS 494 provides an abundance of extra credit opportunities in an effort to...
Points earned via extra credit opportunities will be applied following any curve when final course grades are tallied. Students need not fear point inflation caused by classmates earning extra credit points.
EECS 494 is a highly collaborative course in which students engage often with one another and the course staff. Students will…
Students who fail to meet these expectations risk reduction of their participation score, or in egregious cases, referral to the Dean’s office.
In their EECS 494 collaboration, students must respect the following policies…
It is generally acceptable to discuss project goals and technical / design concepts at a high-level. Refrain from discussing exact solutions or viewing another team’s assignment code. If in doubt, ask the course staff.
Failure to comply with these policies may result in a reduction of the assignment grade and / or referral to the honor council.
Austin is an international educator and Lecturer of Game Development in the University of Michigan’s College of Engineering, co-founder of the International Game Developers Association (Ann Arbor Chapter - https://igda2.org), and President of Arbor Interactive, a local game and software development firm (www.arborinteractive.com).
A long-time hobbyist game developer, Austin got his taste of professional game development in the summer of 2014 with an internship at Maxis (Electronic Arts) where he helped engineer 2015’s top selling computer game, The Sims 4. Austin has taught EECS 494 (eecs494.com) since 2017, EECS 440 (eecs440.com) since 2022, and EECS 498.007 (eecs498.com) since 2024. His students have achieved positions at prestigious game developers such as Microsoft’s 343 Industries, Volition, Zynga, Google, Gaudium, NetEase, Jackbox Games, and Amazon Game Studios.
In addition to stops at EA Mobile and Facebook, Austin served as President of the Wolverine Soft game development organization from 2011 – 2014. He co-founded the Ann Arbor chapter of the International Game Developers Association (www.igda2.org), curates the MichiGames Arcade Cabinet, mentors the Huron High School Game Development Team, consults with technology startups in downtown Ann Arbor, and organizes multi-university exhibitions with Eastern Michigan University. He acquired a Bachelors and Masters degree from the University of Michigan in 2015 and 2018, respectively. His research interests include non-gaming applications of game development tools, technologies, and techniques. Learn more at www.ayarger.com.
Hi I’m Maddie, a Senior Interarts Performance BFA with concentrations in immersive film/theater and virtual production. I took EECS 494 during Winter 2024 where I created Shadowlab, a sound based escape game. This summer I interned at a Ghent, Belgium based theater company named Ontroerend Goed where I worked on three immersive shows showing at two different theater festivals in Ostende, Belgium and Cornwall, England. Last year I produced, wrote, and directed my first virtual production short film which will be premiering this fall! This year I am working on an immersive choose your own adventure film (similar to Black Mirror Bandersnatch) which I hope to finish and premiere in April. Outside of theater/film/game design I enjoy sewing, rock climbing, and watching terrible 90s action movies (particularly the ones starring Arnold Schwarzenegger)
Hi everyone, I’m Jason, a junior majoring in computer science and minoring in business. I took EECS 494 during Fall 2024. I made Rune Type, a magic-crafting combat game, during the second project, and helped develop Rainy Day Rush, a 2D platformer, during the third project. For the last couple of Summers, I have interned as a software engineer at Raytheon and Munich Re where I have mainly worked on frontend and backend applications but have also dabbled in natural language processing. Currently, I, along with others, am working on a mobile application that looks to gamify the music sharing and listening experience with friends and family. When it comes to hobbies, I enjoy going to the gym, playing guitar, reading comics, and, of course, playing video games. Some games I’ve enjoyed playing recently include Balatro, Cult of the Lamb, and Elden Ring.
EECS 440 is a CSE capstone course that introduces students to the technologies and techniques behind virtual and augmented reality applications. The course focuses on extended reality development in the context of positive societal / social impact, only briefly touching upon the unique challenges and opportunities afforded by traditional, entertainment-focused game development. These courses have fairly different topics and vastly different goals– students who are seeking to work in the traditional video game industry are recommended to take EECS 494, while those seeking to work in the emerging field of VR, AR, and Visualization applications are encouraged to take EECS 498 (XR). Should you take both courses, know that the second capstone / MDE course that you take will not count as ULCS credit, but likely will count as FlexTech. |
EECS 498 is a CSE ULCS course that introduces students to the low-level technologies and patterns that power modern game engines such as Unity and Unreal Engine. Students will build their very own custom game engine from the ground up, utilizing industry-standard technologies (such as SDL, C++, Lua, etc) and techniques (such as component-based and data-oriented programming). EECS 498 is a programming-intensive course that will dramatically improve one’s knowledge of C++, and performance, and thus is best taken by students seeking employment in the games industry (or an adjacent industry). EECS 498 is best taken with a lighter courseload, possibly including EECS 440 (but definitely not EECS 494). The course counts as 4 ULCS credits. |