This is my finalist submission for Ubisoft NEXT 2025's programming category, where we were challenged to create both an engine and game in C++ on top of a lightweight API.
ClusterPutt is my submission based on this year's theme of Minigolf, which ended up getting me 3rd place overall in the competition.
It's a spin on the traditional game of minigolf, turning it into a puzzle game where you need to sink multiple golf balls that you control simultaneously, in as few strokes as possible.
I showcase/talk about the game more in this video, and feel free to read through the documentation
- Built entirely on my own custom ECS library, seecs
- Parent/Child hierarchies, with infrastructure to support world space and local space
- A custom Math core, with vectors/matrices and transformation matrices
- A Z-ordered renderer with support for multiple primitives like meshes, lines, and sprites
- A physics core which implements the Swept AABB algorithm for contiguous and robust collision detection/resolution for fast moving objects
- Loading levels from custom files which are created via a private Python script.
- Asset management using the Flyweight pattern.
- A dynamic and smooth camera
The code that I wrote is located in the GameTest/src directory. Any code outside of that is provided by the Ubisoft NEXT API.
If you just want to demo it, I included the executable in Bin/GameTest.exe
This was built in Visual Studio 2022 using C++17 on Windows. To compile it, just open the .sln file and hit run in the IDE (Preferably in Release mode)
- Left thumbstick (A/D keys): Adjust angle of the shot vector by moving it clockwise or counter-clockwise
- A button (Space bar): Hold to charge, Release to fire!
- Start button (Enter key): Restart game at the game over screen