System Engineering
Enemy AI Behavior Tree and Blackboard
Made in Unity this C# Behavior Tree architecture is an updated C++ implementation and includes over 15 different node types including conditions, sequences, monitors, and selectors.
-
Supports a Local and Global Blackboard system to communicate with other navigation systems, weapon systems, and scene level information like player status.
-
Each Root-Tree is reuseable across enemy types for easy configuration of enemy groups.
-
Includes run time editor in play mode to assist in debugging behavior execution.
-
Properties of nodes are exposed in the editor. Some node controls include setting success and failure criteria for monitors, negation and check types for conditions, and node descriptions for the UI.
-
All Node types inherit from a base BT_Behavior Scriptable Object
Leap Motion Enhancement: Calculation of Finger Individuation
Developed using Leap Motion and Unity this enhancement enables the setting and detection of a patient's individual finger position compared to the rest of their hand for use in therapy games.(Example: Playing the piano!)
-
Patients and Therapists can set which hand and fingers to use during game play. Then configure for each finger how far they would like a patient to flex to interact with the game.
-
Patient settings are saved to a json file and then uploaded to a user's backend account. Allowing calibration data to be downloaded whenever a user logs in.
-
Leap Motion APIs did not support a Finger Individuation calculation, so by using the angles calculated between each enabled finger a custom value could be generated.
Item Management System
Complete inventory system suitable for genres like farming, city sims, or strategy games. This system uses a simple Item ID to represent item data held in configuration files. Data can then be referenced by other systems and used to populate relevant information in grid data, inventory, save systems, UI, and game objects.
-
Supports a complete UI System for organizing hot bar and backpack items and tracking quantity of stackable items
-
All item data supports save data and event system calls. Individual parts of an Item in the UI and game world can subscribe to an event system as needed. Item information is saved and loaded using a created scene management system
-
Easily expandable into other systems. Each item type is system independent and can be used across new systems with simple boiler plate item referencing methods
Procedural World Generator
A Hexagonal tile-based game board procedurally generated based on map settings that control size, scale, tree lines, density for foliage, camps, and biome size.
-
The Tile Data is networked and generated based on a seed before gameplay starts allowing up to 6 players to share 1 gameboard.
-
Tree lines use Perlin noise to get a more natural looking distribution of forest tiles. Biome variance is controlled to spread evenly across the game board
Camera Based Gesture Recognition for Exergames
Using MediaPipe and Unity this Gesture Recognition Library works with most phone and external web cameras lowering the barrier of entry to at home therapy.
-
Works with hand opening and closing gestures, pinching, and grabbing
-
Model can work on mobile and PC platforms and has been tested with Android, Apple, and Windows