During my time at SMU Guildhall I made several personal projects as part of my programming curriculum, each one being developed in my own personal C++ engine, and each demonstrating different concepts, techniques, and programming principles that I have learned.
A recreation of the gravity system from Super Mario Galaxy
3D-platformer controls and physics
12 planet types, each with their own collision algorithm and gravity field
ImGui menu for spawning planets dynamically during play
Different jump types for a variety of movement options
Playtested by peers to ensure fun, intuitive gameplay
A clone of the game Bloons Tower Defense
Fully playable tower defense experience from start to finish
Towers, upgrades, projectiles, enemies, maps, and rounds all defined with XML
Spline editor for creating and adjusting maps, then writing them out to disk
A turn-based strategy game made to demonstrate networking
Uses TCP to sync gameplay between two different instances over LAN
5 tank variations with different stats, loaded from XML
OBJ model-loading for tank models
Hex map with distance-field pathfinding for tank navigation
A clone of the game Slay the Spire
XML-defined enemies, cards, and status conditions
Procedurally determined encounters and card choices for a unique run every time
Progresses from easy early encounters to a challenging final boss
Progress can be saved and loaded to leave a run and continue later
A program based on Minecraft
Infinite, procedurally-generated worlds using Perlin noise
Heat-map-based lighting supports instant lighting changes at little performance cost
Multi-threading used for chunk generation
Blocks can be placed and destroyed; edited chunks can be saved and loaded with a custom file type
A Doom- and Wolfenstein-inspired first-person shooter
An earlier project meant for learning 3D rendering, lighting, physics, collision, and raycasting
Split-screen multiplayer with both keyboard and controller support
"Lights-Out" mode featuring a flashlight and a new enemy that only moves when not observed