Thief Gone Rogue
Thief Gone Rogue is an ARPG, set in the bustling city of Silverstone. Players will assume the role of Darius, a skilled thief who finds himself drawn into a world of danger and intrigue as he becomes a monster hunter to combat the recent surge in monstrous activity. The game features a small, detailed map for players to explore, complete with quests and enemies to battle. Throughout the game, players will immerse themselves in the captivating story and atmosphere of Thief Gone Rogue, showcasing various systems I've created for it.
JRPG Demo
I've spent my time lately working on learning the ins and outs of Unreal Engine. This demo demonstrates usage of turn based combat, UI, Pawns, Camera, Blueprints, and the Unreal animation system. Overall most of the topics were just learning how to do it differently in Unreal than Unity or my own engine.
Tower Defense (Android)
I wanted to get something in for both Android and WebGL so I created a basic tower defense game. This included a total of 9 levels, with 6 towers, each having 4 upgrade paths including a custom "ultimate" upgrade for each. I created terrain specific towers so that for example you could have water on a map and place boats in it.
Third Person Controller
I created a Third Person Controller with a heavy focus on Character, Camera and Control (3C's). I used a state machine to facilitate those and to allow a modular approach to the player actions allowing for a system that can easily be extended to add more functionality. One of the major features implemented is the climbing system, it uses raycasts to detect where the player can climb to. The climbing animator uses the offsets alongside the current position of the player to determine where to put each limb which are modified with inverse kinematics.
Multiplayer FPS Demo
My goal was to learn the basics of creating a multiplayer game in Unity. I used Fish-Net for the networking and Unity Relay to facilitate the peer-to-peer connections. I also created simple first person controller, with multiple guns, shooting, reloading and animations for that. The servers use Unity Relay to setup client-side hosts with peer-to-peer connections, and Fish-Net for the netcode.
Arcane Settlers
Arcane Settlers is a 3D colony simulation game created by me as my final project in the Game Development - Advanced Programming program at Fanshawe. The game was built using my own C++ engine with OpenGL, PhysX, Assimp, and ImGUI. It was an incredible learning experience and I am proud of what I was able to create in just two weeks within my own engine. Throughout the development of the game, I focused on implementing various game development concepts and techniques, such as:
Third Person Controller
For this project I just wanted to get a feel for Unreal Engine so I worked on a simple 3rd Person Controller. The included movement options were sprinting, jumping, wall jumps and double jumps. I used Blueprints, as I am already confident in my C++ skills and just wanted to understand how Blueprints fit into the unreal workflow, I plan on further working on Unreal at a later point in time.
Luck of the Coin
I developed a roguelite game prototype in Unity for the Roguelite Jam 5. The game features procedurally generated rooms and combat mechanics, with a twist on the jam's theme "Two Sides of the Same Coin". Each room contains a coin with two sides, representing different potential outcomes, and players need to strategically choose which rooms to enter based on the risk and reward of each side. The project showcases my skills in Unity game development, procedural generation, and gameplay mechanics design.
Procedural Terrain Demo
This is a tool I worked on to get a feel for how procedural terrain generation is done. I opted for a more simple approach and just used perlin noise alongside a random seed, to offer more control, the algorithm also included the perlin stretch and a height multiplier. The terrain textures are done at runtime by comparing the height and steepness of the terrain and assigning values to the splatmap based on that, for example a sloped surface will be stone and anything at water level will be sand.