Projects
Greetings traveller! You've landed on the fun side of this website :D
Here, you'll find a collection of projects (let's be honest, just games) that have challenged me, entertained me, and taught me something new along the way! Each project is a labor of love, blending code, creativity, and the occasional late-night bug fix.
I hope you enjoy exploring these creations as much as I enjoyed building them.
Shatter Space
This game was made purely in C++ as part of Ubisoft Next 2023-24 programming challenge.
In this game you're going through space & smashing glass! Fun, right?!
This game is heavily inspired by Smash Hit.
Starting Point: Ubisoft gave an API to draw a line between 2 points in 2D.
End Result: I used the 2D line drawing API to create a 3D game, as you can see in the GIF.
Salient features:
ECS-based game engine using entity archetypes and object pooling to boost cache performance.
Math library with 3D-to-2D projection matrices and O(logn) BVH tree collision detection.
High-efficiency physics simulation system capable of real-time rendering of >10,000 objects.
Gameplay
A 3D open-world action RPG game built with Unity. I worked on this game in a team of 5 people (2 programmers, 2 designers, 1 artist) as part of my final semester project at Sheridan College.
This game wouldn't have possible without the valuable contributions of my talented teammates, namely Roy Lu, Sagar Jadhav, Riccio Li, and Connor Switzer.
My Main Contributions:
Combat Mechanics:
Developed Slime AI behaviour using Steering Behaviours and Finite State Machines (FSM).
Gameplay Programming:
Engineered a dynamic Quest and NPC dialogue system using Ink.
Created the quests and story progression.
Other fun stuff:
Developed a secure Persistence System for loading and saving the game.
Created a Navigation System for quest navigation.
Main Menu
Main City Hub
Tetris Neuroevolution
I designed & developed a replica of the famous puzzle video game, Tetris. After playing it for a while, I realized that I was bad it at.
So, I implemented and trained a Neural Network to play it using Genetic Neuroevolution! The AI was able to achieve a score 10x better than my best attempt!
This game was created using p5.js and trained using Genetic Neuroevolution.
The neural network I designed for this game had 5 inputs, 1 hidden layer with 6 nodes, and 1 output.
First Prototype
(AI learnt how to correctly position)
Training with Score Graph
(100 players training per generation)
Result
(AI learnt optimal strategy)
Helicopter Neuroevolution
There's an old game called Helicopter that I used to play as I kid. It was really tough! You can play it online here: Helicopter Game | Addicting Games
As a kid, I always wanted to get really good at this game. As an adult, I realize that it's easier to just train an AI to do it!
I found on Youtube that someone scored 16,758 on this game. Well, not to brag, but my AI can score more than 500,000 :)
This game was created using p5.js and trained using Genetic Neuroevolution.
The neural network I designed for this game had 10 inputs, 1 hidden layer with 12 nodes, and 2 outputs.
Training
(100s of helicopters training concurrently per generation)
Final Result (500k+ score)
Running Mazey
Created a Maze generator using DFS. Then found the approximate shortest distance between top left point and the bottom right point in the maze using A* search algorithm which uses heuristics to guide its search.
Maze Generator
A* Search solving the maze
Final Path (Top Left to Bottom Right)