← Back to Portfolio

Arcade Games

Software Systems course projects in C using MVC architecture

A Game of Pong

Overview

In my Software Systems class, I built two arcade-style games in C. The first was a flexible Pong implementation designed so new games could be added easily to the same application. The second was MineSnake, a creative mashup of Snake and Minesweeper.

These projects demonstrated my ability to design modular game architectures and deliver working games under tight course timelines.

My Contributions

Pong

I worked on both the Model and Controller. To enable extensibility, I implemented a State struct and a State Manager. These acted like an abstract class and stack-based manager for game states (e.g., start menu, Pong game, pause menu). This allowed seamless pausing and resuming without reloading states.

I also wrote the update method for the Pong state and developed controller logic to track held keys (since our input library only registered press/release events).

MineSnake

MineSnake combined the fast-paced movement of Snake with the logic puzzles of Minesweeper. The snake revealed the board as it moved, uncovering bombs or food. Eating bombs ended the game; eating food grew the snake, with the goal of finding all hidden food on the field.

I again focused on the Model and Controller. The model handled bomb placement, snake growth, and revealing regions of the board. Compared to Pong, this required more sophisticated logic to manage both real-time gameplay and puzzle-solving mechanics.

Try It

To play MineSnake or explore Pong, clone the repos above and follow the setup instructions in the README. Both projects are fully open source.