The Big VS Them All

The goal of this project was to create an online asymmetrical PVP game where one player controls a MOBA style kaiju and the other controls an RTS style army. I completed this project with a 6 person team. My main role was gameplay and AI programming for this project. I opted to implement the Mixin design pattern to create an easy to use, data driven system for modularity. I then created a custom interface to allow designers to create and modify gameplay features without needing to modify the code. Download the game Here

Racing Game

This networked racing game has a team of 3 players competing against AI cars. Player 1 Controllers the car using a steering wheel, player 2 has a top-down view and drops power-ups, and player 3 uses a VR headset to ride on top and shoot at targets. I completed this project with two other classmates. For this project I created a tool to generate the road mesh using a catmull rom spline. I also created the car controller used by the player and AI drivers. Finally I also impleted steering behaviours to create three drivers each with their own unique driving style.

Graceful Tree Game

This is the game I made in Unity using C# based on the graceful tree math conjecture. In the game players must fill the tree nodes with numbers in a way that all differences are unique. The game has a time trial in which when you run out of time you lose. It also has a casual game mode, where you cannot lose, and can determine if you want the difficulty to increase or decrease. You can find the game on Google Play Google

Downhill Drift

This project started with me trying to learn procedural mesh generation in Unity with C#. I was able to create a potentailly "infinite" road by shifting the mesh as the car drove. Once the mesh generation was working as intended I started add more features to the game. Player options like vibration and rear view mirrors are saved with playerprefs. Current vehicle and unlocked cars are saved in a binary file. This demo video is the game in its current state. All models were made by me in Blender. I am hoping to release it as a mobile game once everything is completed.

MiniMax AI

I have a great interest in video game AI. So, I decided to implement my own MiniMax algorithm for some simple board games. The two game AI I decided to create were Tic-Tac-Toe and connect four. The Tic-Tac-Toe algorithm is working as intended all games result in a tie or the computer winning.In Tic-Tac-Toe the player is always "X". The connect four however there is still a chance to beat the computer. The connect four algorithm is still a work in progress. In connect four the player is always yellow. I hope to continue updating it until I can make it unbeatable.

Arcade Shooter Clone

This was a school project where we were tasked with creating an arcade inspired shooter in unity. I got all animations from Mixamo. Root Motion was used to move all game characters.

A* Pathfinding

The purpose of this project was to impliment the A* pathfinding algorithm in Unity using C#. The A* pathfinding algorithm is an extension of Dijkstra's algorithm. It works by factoring in a "cost" while finding the shortest path. This cost is determined by two factors. The first is the G cost which is based on the distance from the starting node. The second cost is the H cost, which is a heuristic value from the node to the end point. The algorithm than goes through each node with the lowest overall cost to determine links from node to node. Once the end goal is reached a path is then traced back based on links to previous nodes. Check out the code here : Github

2nd Place Ubisoft NEXT 2023 Programming

In 2023 I won second place in the Ubisoft NEXT 2023 programming competition. For this competition Ubisoft I had one weekend to make a game, I was also provided a simple 2D graphics API and a month to prepare. During that month I implemented an Entity Component System architecture for my game engine. I also implemented a math library to use the 2D API to create a 3D engine. I was then able to create a two player 3D Bomber-man game with a dynamic camera. Below is a video of the game where I describe the systems I implemented to create it. Check Out the Winners of the Competition Here

Asteroids Clone

This was a school project to make a Asteroids clone using C++ and SFML. A demo video of my project can be found below. The game is Data-driven with all stats for player, enemies and asteroids being stored in JSON files. JSON files were also used to save game data, such as high score and using the game button '~' with the load button 'L'.

Ubisoft Next 2025 Submission

In 2025 I competed in the Ubisoft NEXT competition with the challenge of Mini-golf game. I prepared a ECS engine with object pooling to attempt to optimize cache usage with updating components. In this game two rivals are sharing one golf ball. The goal was to try and create a Mini-golf game with competitive twist forcing the players to really plan out there turns.

Ubisoft Next 2021 Submission

In 2021 I competed in the Ubisoft NEXT competition with the challenge of creating a tower defense game. For this project I decided to use Boids flocking algorithm to simulate natural movement of the enemies. I also implemented a simple IK snake to block enemies. There were multiple types of towers for the player to purchase as well as multiple types of enemies that were resistant to certain towers.

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form