Jack Boakes

Melbourne, Australia

Snake

Snake

I built Snake mostly because I was curious how simple games actually work under the hood. It started as a tiny C console program with no graphics, and I kept improving it as I learned more.

Later, I added raylib to handle window opening and graphics, since the project was pretty bare bones. I decided to refactor the whole thing into modern C++ 17, to learn best practices and use features like std::filesystem and std::string_view.

I designed the game's UI from scratch as an immediate-mode interface, keeping track of only one active element at a time. Player input is polled every frame and stored in a circular queue of size two, enabling responsive movements. The high score is saved to a text file using std::fstream, and all sound effects and artwork were created from scratch by me.

← Back to projects