Class is held in person Tuesday and Thursday from 18:40-20:00 in CIT 101.
First class is Thursday Sept 5th!

Welcome to 2D Game Engines! This is a largely student-run course, similar to an independent study, and you'll learn lots of techniques needed to create a fledgling game engine. These topics include animation, simple AI, collision detection, physics, and raycasting. You will create a game engine of your own over the course of the semester, adding a few features to it each week. At the same time, you will also create a series of games using your engine that demonstrate the use of the features you add. Near the end of the semester, you will design and implement a final project that uses your game engine to create a complete, polished game.

Assignments

to do: released design check due
Tic Sep 10 Sep 11-12 Sep 17
Alc I Sep 17 Sep 18-19 Sep 24
Alc II Sep 24 Sep 25-26 Oct 1
Wiz I & Wiz Extras Oct 1 Oct 2-3 Oct 15
Wiz II & Wiz Extras & Final Project Idea Oct 15 Oct 16-17 Oct 22
Nin I & Final Project Groups DUE MON 10/28 Oct 22 Oct 23-24 Oct 29
Nin II & Nin Extras Oct 29 Oct 30-31 Nov 5
Final I Nov 5 Nov 12
Final II Nov 12 Nov 19
Final III Nov 19 Nov 26
Final IV Dec 3 Dec 10
Final V Dec 10 Dec 21

Lectures

If you have trouble accessing any of these materials, please email us! We'll be happy to make accommodations.



Hours

Refer to the calendar below for the most up-to-date TA hours. Check out how remote/in-person hours will work here.

Design Checks take place from Wednesday-Thursday the week each assignment is released.

Documents

Here are some documents that might be useful to you as you take this course:

Course Missive
Collaboration Policy
Global Requirements
IntelliJ Setup Guide
Git Guide
Anonymous Feedback Form


frequently asked questions

How will remote/in-person hours work?
Check out this handy guide here!
How much work is it?
Based on the work from the previous few years of class, we estimate that the projects should take roughly 15-20 hours per weekly checkpoint. There is also a two hour lecture each week and a weekly design check.
Do I have to be a video game expert to take this course?
Nope! While it does help to have some familiarity with the different types of 2D video games out there, we will explain everything you need to know in order to do the projects.
Can I take this course before CS 32?
Yes. The pre-requisite for this course is any intro CS sequence. You will be maintaining and improving upon your code and projects throughout the course so this helps out a bit with preparing for CS 32.
Where can I get sprites and images for the projects?
There are a handful of places that you can find free assets online such as opengameart.org, itch.io, and many more. If you do use resources you find online make sure to give credit and cite. Although it isn't a part of your grade we love to see custom art and designs in submissions.
Where do you go to find inspiration?
Think about what kind of games you've liked playing in the past, and ask yourself how you'd improve upon them. If you were offered the chance to make a spinoff, what new direction would you take it in? There's a lot of game archetypes out there, and we won't constrain you to a single one of them. (You can absolutely turn a dungeon crawler project into Stardew Valley as long you use the same engine features.) You can make metroidvanias, puzzle games, visual novels, arcade games, simulations, remakes, whatever you want. Links for more inspiration.
Can I reuse a game I make here for my CS 32 final project?
That depends on how the CS 32 TA's feel about it, but in general, you can't reuse work you submitted for one class for a similar assignment in another class. Your experience creating game engines, however, will allow you to make an even better game for your CS 32 final project.
Can I reuse a game I made in CS15/CS32/etc for my final project here?
You can reuse the same concept, sure, but keep in mind you'll have to build it all with the game engine you wrote throughout the semester. Porting over the idea is perfectly fine, though.
What should I bring to the design check?
Design checks in this course are not the same as design checks in CS15/16/17/18. We expect you to have thought about the project and have a good idea of how you will solve some of the central problems it involves, but it's OK if you haven't written any code or made a diagram of your class design. The later you do your design check, though, the more progress we will expect you to have made.
Why is this class sometimes designated cs1971?
We have two course codes. Don't ask why�we don't know either. Hopefully you will never see the other one.
Can you show me some final projects done by students from a long time ago?
Sure thing, buddy.

Fall 2022:
Fall 2021:
Fall 2013:
Fall 2012:

Staff

Prof. James Tompkin

jtompkin

he/him/his

Previously pushed pixels; presently professes PowerPoints.

Favorite video games: X-COM (with respect to time sunk)

Currently playing: Disco Elysium and We💗Katamari REROLL

Aanya Hudda

aanya_hudda@brown.edu

she/her/hers

Favorite video games: Stardew Valley & Overwatch 2

Currently playing: Valorant

Henry Earnest

henry_earnest@brown.edu

he/him/his

Favorite video games: Team Fortress 2 & Apex Legends

Currently playing: Firewatch & Rainbow Six Siege

Rio Young

rio_young@brown.edu

she/her/hers

Favorite video games: Omori & The Walking Dead

Currently playing: Minecraft