COM-122: Projects
The primary goal of projects in the Introduction to Programming course is to familiarize students with working in large, pre-existing, multi-file codebases by building a simple game (of a specific genre) in C++ with the raylib graphics library.
General Information
Projects are announced sometime in mid-to-late-november during the Lecture class. With the announcement, a repository with starter code and completion requirements is published. In the following weeks, during bonus sessions, with the help of an instructor or TA you will transform the starter repository into a minimum value product. After that, you will have a few weeks until the project defense to complete the baseline and additional requirements, which are listed in the readme.md of the repository.
The project defense falls on the week after finals. During the defense, you will have to present your work, explain what changes you have made, be ready to demonstrate your knowledge of the codebase, and demonstrate the fulfillment of project requirements in less than five minutes. With the consent of the author, the best project of the semester will be put into the hall of fame (which you may find below).
Note: If you are interested in the history of Project-Based Learning, check out this series.
Best Project of 2025: TBD (TBA)
TBDBest Project of 2024: Deep Woods (Platformer)
Author: Timur Turatbekov (P5ina) Description: Deep Woods is an 8-bit metroidvania platformer (inspired by Animal Well and Inscryption) that iterates on the genre by giving the player a magnet, using which the player can propel themselves and manipulate objects. The goal of the game is to go through a series of rooms, which test your ability to use the mechanic, and find your way to the exit. The project uses box2d for physics, raylib for graphics (as well as GLSL shaders for vfx), and loads levels dynamically from .json and .png files.
Best Project of 2023: Border Line (Dungeon Crawler)
Author: Luna Maltseva (lunamaltseva) Description: Border Line is a puzzle dungeon-crawler set on a chess-board with a blend of chess' and checkers' rules, though unlike either of those, the amount of turns is limited. The goal of the game is to complete all five levels, with each level introducing new mechanics. The project is built exclusively on materials taught during the course, with raylib as a graphics library.