CPSC 599.82 - Retrogames

Course Description

This course will examine retrogames, from a game design point of view – why are simple computer games still popular? – but mostly from an implementation standpoint. For the latter part, retrogames will be used as a vehicle to study techniques for making programs small, fast, and in some cases simply possible in highly-constrained computing platforms. Connections to modern uses of these techniques will be made as appropriate, e.g., mobile devices.

Topics that retrogames will be used to delve into may include

Students will create a new game for a retrogame system as a term project, in addition to other forms of assessment.

So that there are no surprises, this is a systems course and will involve low-level material up to and including assembly language.

When is it?

The course is scheduled for fall 2024, MWF 1–1:50pm.

Who's teaching it?

John Aycock.

What are the prerequisites?

Officially, “permission of the department,” which is basically a default setting for 599.xx courses. Practically, you'll need enough background to make sense of the systems content. I'd strongly recommend having CPSC 457 for this reason (by extension, that means you'll have taken some low-level assembly and architecture in first year and second year, and you'll have seen a variety of data structures). However, I know some people enter CPSC with a fairly advanced background, or have comparable experience from other areas (e.g., engineering). Some people are just terminally keen and will learn the necessary things themselves despite my best attempts to thwart them. So, if you don't have CPSC 457 but are still interested, send me an email.

How do I get permission to enroll in the course?

I've asked the USC to let students in who have a passing grade in CPSC 457, which will cover most cases.