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.