A Game Engine of your Own. From Scratch. (ULCS)

EECS 498 is the University of Michigan’s Game Engine Architecture course.
Construct your very own miniature game engine from scratch while adding unique custom features in this intensive, low-level, c++-focused course.

Students will learn to…

  • Program their own miniature game engines, supporting a set of modern, course-required features.
  • Understand the architectural patterns, algorithms, and data structures that power expressive software.
  • Integrate and utilize open source, industry-standard middleware for windowing, physics, audio, etc. (SDL, Box2D, etc).
  • Write multi-platform, portable code that may build and run on various operating systems sans changes.
  • Write multi-language software involving unmanaged host and managed guest (scripting) languages– the former to achieve performance and the latter to expedite content creation, configuration, and iteration (C++, Lua, LuaBridge).
  • Achieve cache-utilization and performance improvements via data-oriented programming.
  • Utilize existing, modern game engines at a very basic level, studying their commonalities.
  • Understand the history and potential future of game engines, including important prior art and engine-induced disasters.

Q: Should I take EECS 498?

Yes, if…
  • The skills above strike you as valuable.
  • You’re ready for a heavy, programming-intensive workload (your other courses are moderate / light)
  • You wish to know how popular engines such as Unity and Unreal work under-the-hood.
  • You hope to gain employment in the game development or extended reality industries.
  • You wish to expand your portfolio with a large, low-level, multi-language project.

Q: How might I prepare?

EECS 498 does not require any work before class begins, but students who are interested in the material may give themselves a small head-start with the following tips.

  • Install / Experiment with engines such as Unity or Unreal Engine or Game Maker
  • Remind yourself of C++ lessons from EECS 281. Review common containers (such as std::vector) and experiment with an IDE or build system (Visual Studio / XCode / Make).
  • Participate in Wolverine Soft, the University of Michigan’s premiere game development club.
  • Participate in ARI, the University of Michigan’s premiere extended reality club.
  • Get to know your instructors.

Q: When is the course offered?

Winter semesters only. Look in the EECS 498 special topics section to find it.

Q: May I attend lecture asyncronously (remotely)?

Yes, attendance is not required and all lectures are recorded. There will be one exam you must attend in-person towards the end of the semester.

Q: Is there a book?

There is no required book. Jason Gregory's Game Engine Architecture book is recommended as an optional book.

Q: May I request an override to take the course?

You may! Overrides are typically considered several weeks into the course if there is any remaining room. Please let us know by contacting the course staff.

Q: I’m on the Waitlist. What are my chances?

EECS 498 typically experiences 8-12 drops per semester, allowing 8-12 undergraduate CSE students off the waitlist. If we're close to getting everyone in, the course will typically expand its enrollment cap to get everyone in who wants in (we haven't had to deny anyone in a long time, but this is no guarantee).

If you have any questions regarding the course, feel free to reach us via our faculty email (search "Austin Yarger umich").

Q: I’m a non-CSE graduate student. May I take EECS 498?

EECS 498 is a difficult, time-intensive course designed for junior and senior undergraduate computer science students, but graduate students are welcome to apply for admission via this CSE Grad Enrollment Form. Students who are not eligible to receive credit for EECS 498 may also consider auditing the course. If we begin to run out of seats, you may be asked to vacate yours for an enrolled student.

Q: How else may I study game development / extended reality at the University of Michigan?

The University of Michigan has a lean-and-mean game development environment including several impactful classes…

…and several excellent clubs…

Q: Does the State of Michigan have any XR or game studios?