Personal Projects
Projects I created in my spare time, some details about how they work, and my inspirations.
*All projects on this page were made only for Windows PC.
Movement Shooter
I’ve revisited the idea of a ‘movement shooter’ several times since I began learning game development in Unity.
My first ever FPS character controller
Some very old versions:
Water shader + rigidbody buoyancy side project
I attempted to recreate the slide-jumping from Warframe, rocket jumping from Team Fortress 2, and the grappling hook from Titanfall 2 all in one character controller with first and third person view.
This project was created between July and October 2023.
The game records the player’s time as they pass through the large octagons, as well as their best time in the current play session.
The player model and clothing were modeled in Blender by me, animations are from Mixamo. All environment assets were either free or made by me as well.
The grappling hook rope will collide with objects and can be reeled in/out using the scroll wheel or left shift/ctrl by default. Holding space while grappled allows for more directional control.
Sliding is done by crouching while sprinting (can be rebound or set as its own key in settings). While sliding, the player gets an initial speed boost and will also continue to accelerate if going downhill, decelerating if going uphill.
Hitting the escape key opens the pause menu, where most controls can be rebound and some settings for the controls can be toggled. Sliders for field of view, grass density, and render scale can be found at the bottom of the menu.
As a Blender exercise (and because I love character creators) I created a range of cosmetic items and a simple menu to equip/recolor them.
To keep things consistent between perspectives, this involved making separate sets of cosmetics for the first person and third person player model, as well as the arms used in the player’s viewmodel.
Player shadows in first person use the third person model, but the third person model’s mesh renderer is set to render shadows only.
This results in shadows that appear accurate while in first person, even though the first person player model lacks a head and has its arms attached to the camera, not the torso.
Katamari clone
A recreation of the mechanics of Katamari Damacy in Unity engine.
This was a weekend project using Unity’s built-in rigidbody physics and a character controller that simply applies a torque on the ball to roll it in the direction of player input.
Because Katamari Damacy’s game mechanics are proprietary and patented by Bandai-Namco, this game is not available to download, and was made only for learning purposes.
When a collision is detected with an object, the closest vertex on the ball to the point of collision is found, the vertex is moved to the center of the object we collided with, and the ball’s mesh is recalculated with the moved vertex. After this, we destroy the object’s colliders and parent it to the ball.
Ransom Notes online
An online version of one of my favorite tabletop games.
This project is still in progress, and as of writing this it does not work online yet. I plan on revisiting this project when I have the time to do more research into multiplayer networking.
Letting go destroys the hinge joint, dropping the word. If the word is halfway or more on the board, its rigidbody velocity is set to zero and gravity is disabled, allowing it to stay on the board and still be pushed by other words.
Words will also collide with the sides of the screen, which has edge colliders that move and scale automatically as the player pans and zooms the camera.
The primary goal of this prototype was to make it feel tactile and satisfying to play. Needing to physically sift through the words you have at your disposal was a key feature, as that is a significant part of the game in real life.
To accomplish this, all words have a Collider2D and Rigidbody2D on them. The collider is scaled to fit whatever word is placed on it upon spawning.
When the player clicks a word, a hinge joint is created connecting the mouse cursor to the word, allowing for it to rotate freely from the point at which it was grabbed.
NATURE DEMO
My first foray into proper GPU instanced foliage and creating a day/night cycle. Still heavily a work in progress - more info to come.