DEV BLOG PROJECT
Crowd Simulation
Designing a Crowd Simulation intended to allow dynamic pathing of multiple Actors within a scene in a realistic manner.
Using Node-Based A* to allow for easy creation of flow lanes and efficient path calculation across multiple different actors.
Implementing Collision Avoidance such as RVO to allow actors to naturally move around each other in a realistic manner.
Incorporating Boid’s algorithm to encourage flocking in high-traffic areas for actors moving along similar routes.
GROUP PROJECTS
Kula World Clone
Utilized a custom C++ Game Engine to implement a data-driven 3D Puzzle Game.
Designed object relations and Game Loop for team to fully utilize data-driven design.
Defined JSON structure to allow for level creation and importing via external tool.
Simplified player movement to single byte unit vectors and bitwise operations to reduce calculation complexity for axis-based movement.
Triangle Game
Solved complications such as piece snapping and convex collision detection to create an experience that was comparable to moving physical pieces and intuitive to young children.
Used edge and area collision detection to efficiently determine if pieces fit entirely within convex area.
Successfully deployed game to webserver using WebGL framework.
Project success resulted in a grant from UCF to continue development past initial timeline.
Neon Defense
Implemented a weighted A* algorithm allowing for dynamic pathing based on enemy type.
Designed parameterized enemy system and automatic infinite wave generation of diverse enemies.
Trained programmers in C# and Unity as well as game programming concepts and best practices.
PERSONAL PROJECTS
Custom Game Engine
Engine design focused on efficient scalability and expansion.
Created data-driven engine that parsed objects from JSON using Chain of Responsibility Pattern.
Implemented Factory pattern to create instances of deserialized objects dynamically at runtime.
Used Runtime Type Information (RTTI) to assign data types and structure based on JSON data.
Utilized Observer Pattern to efficiently manage an event system handling elements such as user input.
SHUFFLEBOARD
Designed and implemented a 2 Player shuffleboard game in Assembly.
Created 2D Physics engine including acceleration and circular elastic collisions for puck movement.
Used 7 Segment Display to render player scores.
CHESS BOT
Implemented chess game functionality and rendered a board using C++ and SDL2.
Used decision trees mini-max, and evaluation function to determine optimal moves.
Used alpha-beta pruning to reduce calculation time by ruling out nonoptimal moves.
Played at 1100 rating under Rapid time controls with a depth of 8.