Inspired by Slay the Spire and Balatro, I wanted to build my own card game. This video showcases the card controller I built for the prototype. I put a good amount of effort into considering the correct architecture for this project. Under the hood there is a completely decoupled state and presentation layer, an addressables system that only loads the card assets needed to render the players deck. The entire action system is driven by a single action queue and event bus that broadcasts events to any system that is subscribed.
This project demonstrates a minigame I made that showcases my custom vehicle physics and Input systems.
The physics take recommendations from this great video that dives into how to make a responsive physics based vehicle
Making Custom Car Physics in Unity (for Very Very Valet)
The Input system is a new piece of code I've been working on that could be dropped into any project. It uses generic interfaces that can be used as a middleware for translating inputs into any context and opens the door for AI inputs (in this case) or even remote inputs for networked players.
Depths dweller was is a platformer/ Metroidvania made for a Game Jam hosted on Itch.io. I worked on the project in my spare time and weekends for about a month. I spent too much time experimenting with FMOD, Addressable and creating level design tooling to add all the gameplay feature and polish that I wanted. I did at least create a robust player controller bolstering a state machine with very adjustable physics settings to give myself the ability to completely change the character handling from jump curves to friction settings and acceleration/top speeds.
Here is a simple prototype set up to test network synchronization with deterministic physics. The gameplay was made as a simple Angry birds clone to use as a test bed for the technologies. By perfectly replicating the start positions and input forces over the network I was able to recreate the simulation with almost perfect replication on both clients. This was build using Unity & Photon with a Lobby, Emote messaging system and a Voice Chat.
Spacetime Reservation A* is an extended version of A* pathfinding. I found this solution in a book called "AI Game Programming Wisdom 3" and decided to have a go at implementing it with great results. AI Agents not only use A* to find a path but they also reserve their chosen path on a reservation table that goes into the future. This means that agent can know if other agent will be blocking their path and they will wait and filter through tight spaces.
This was a project I completed while at university. Using nothing but C++ and a simple library to draw sprites and play audio. I created a 2D games engine with an accompanying level editor build using WSP. Every element and interaction had be be programmed from scratch. It was quite a fun project and a great project to get a deeper understanding of how game engines work.