A Discord bot created in C# using the .NET 5 framework and Discord.Net library. The bot includes various commands that communicate with REST APIs through HTTP requests and also stores persistent data in a MySQL database using Microsoft's Entity Framework Core. Database migrations are applied using Flyway database migrations tool which executes versioned SQL scripts and maintains a history table to keep track of executed migration scripts. As part of the development cycle, there are SQL database migration scripts, NUnit test scripts, build scripts, and deployment scripts that run on Docker containers in a local or production environment. Users can manage roles through message reactions and data will be saved to the database. In addition, the bot can play music by querying services such as YouTube, Soundcloud, and more. Tracks are added to a queue and will automatically play in order. Features include reaction roles, color lookup, urban dictionary lookup, calculator, random number generator, database access, database migrations, and more. This project is a command-line application that runs cross-platform and includes a logger powered by Serilog that can log to the console, files, debugger, and Seq.
A single-player Japanese-style role-playing game created in Unity with cross-platform input support and data serialization for saving and loading. This project uses the Zenject framework for dependency injection to maintain cleaner code. Features RPG systems like inventory, crafting, quests, 4-character party, world map, saving and loading, etc. Graphics are powered by Unity’s new Universal Render Pipeline with custom shaders such as toon-style. The source code is unavailable to the public as it is currently in development and contains commercially licensed material.
A multiplayer first-person shooter game created in Unity using the Mirror Networking API. Weapon system includes firing, reloading, switching, and aiming. New weapons can be picked up from the ground. Infected players are equipped with a melee weapon. The game was developed in a team of six programmers and two audio leads.
Raspberry Pi Self-driving Car
An autonomous self-driving robot car powered by a Raspberry Pi using various motors and sensors to navigate an obstacle course. The sensors help the robot follow a black line and avoid obstacles within a certain distance. The project was developed in a group of four individuals.
Mecha Fighter VR
A multiplayer VR fighting game in Unity using SteamVR SDK. Combat system features gesture-based ability system and velocity-based hit detection. Networking is implemented using a custom server written in Java. The game was developed in a team of five individuals.
RPG Core Combat Sandbox
A top-down click to move and attack core combat system for an RPG game created in Unity using the NavMesh pathfinding system. Features core RPG elements like equipment, character stats, enemy AI, map navigation with portals, and more. Created high-fidelity shaders using Unity Shader Graph and Universal Render Pipeline.
BaySpace - Online Image Post Platform
Worked on front-end, back-end, and Git management for a team of 8 as the GitHub admin. Our team exercised the software development process which includes iterative deployment, scrum meetings, and test-driven development. The web app is written in NodeJS and Bootstrap, uses MySQL database, and deployed on AWS using the Express framework. Users can submit posts, upload images, search posts, view map of locations, and register and sign-in.
A 4-player bomberman game written in Java using Swing. Bombs use a simple algorithm to calculate explosion distances in 4 directions. The map is a tile-based grid is randomly generated. Custom maps can be created then loaded from file. Collisions are used for kicking bombs and solid interactions.
Tank Game Java
A 2-player top-down shooter tank game written in Java using Swing. Includes a collision detection system using the Visitor Design Pattern. Features include health UI, powerups, destructible walls, custom maps, and more.