Retro Game Development:
Making Games for the Nintendo Game Boy

this is a class running in IAP 2027, about programming for the Nintendo Game Boy handheld game console (the original one, from 1989). the focus of the class will be a mix of Game-Boy-specific stuff, and game design more generally. we'll explore these things by making a few small games from the ground up in SM83 assembly, which will be playable in Game Boy emulators or on the Game Boy itself.

everyone who finishes the class will leave with a cartridge containing one of their games, playable on original hardware.

prerequisites

this class is mainly aimed at students with a decent programming background but who have never programmed for the Game Boy before, though you're certainly welcome even if you do have prior retro game development experience.

software

we're going to use the following tools, all of which are Free/Libre Software:

textbook / reference

we'll make heavy use of the following fantastic resources from the folks in the Game Boy Development Community:

everything else you need will be provided in class or through this website.

ai policy

even if we were to ignore the ethical, legal, societal, environmental, economic, political, and humanitarian concerns raised by llm's, this is a class intended for humans. i don't care at all if claude can make a Game Boy game; i want to help you learn to make them. making a game is a fantastic outlet for creative expression, and i hope for you to be able to take pride in building something of your own design, essentially from scratch, in much the same way as it was done back in the day.

using llm's (or advanced code completion tools like copilot) would undercut these goals. as such, using them for any part of the class (including code, graphics, audio, documentation, debugging, optimization, ideation, etc.) is strictly forbidden.

contact

if you're interested in taking the class or have questions about it, feel free to drop me a line: hz@mit.edu.