About this project

Bait is the final project developed for course 15-466/15-666 Computer Game Programming at Carnegie Mellon University by Andy, Charvi, Taylor, and Messi. It is a game developed without using a game engine but only C++ and OpenGL source codes. Bait showcases our team’s deep dive into low-level game development.

Feel free to download the game on itch.io and give it a try!

My Roles

As the producer on the team, I oversaw all aspects of the project’s production, including course logistics, game ideation and brainstorming, in-game features, gameplay programming, visual effects, sound design, task management, etc. My role was to ensure that the final build is delivered on time and published on itch.io. We used Trello to organize, track, and manage all the tasks needed to bring the game to life.

As the game designer and gameplay programmer on the team, I designed and implemented the QTE (Quick Time Event) mechanics that allow the puffer fish to eat the bait. I also developed the bait spawning system, ensuring there were enough bait instances to keep the gameplay engaging and prevent the puffer fish from starving.

My Development Recap

QTE Mechanics Prototype

After proposing the idea of using QTE mechanics to determine whether the puffer fish eats the bait or gets baited, I began programming and implementing the system in-game. I developed the first prototype to test whether the QTE would trigger correctly when the puffer fish approached the bait, and to ensure it behaved as intended.


Once my teammates had committed their prototypes, I integrated the QTE mechanics into the main scene and connected them with the UI to ensure a playable prototype experience.

After numerous minor bug fixes and rounds of asset and gameplay polishing, the bait and QTE mechanics functioned smoothly and harmoniously in-game, just as we had envisioned.

Moreover, I implemented a “trap” bait mechanic represented by a black key on screen. If the player presses the key while it appears black, the puffer fish gets hooked. This feature reinforces the game’s core theme and cleverly plays into the concept of “bait.”

In addition to the QTE mechanics, I also designed and implemented the landing page, pause menu, and various ending scenes, including those for collecting all collectibles, getting baited, dying from hunger, and running out of oxygen.

Final Release Party

At the end of the semester, our class 15-466/15-666 joined CMU GCS (Game Creation Society) club’s game release party and we showcased Bait during the event. It has been a great pleasure and joy to work on this team and make games together.