top of page
Varsity Head Coach of VALORANT at Champlain College

ACHROMATIC
Achromatic is a first-person horror puzzle game set in a haunted carnival-themed museum in which you are trying to find your lost child, all the while being chased by a mysterious carnival monster. While in this carnival you will discover the world bending around itself as you try to navigate and find out your child's fate. Your only ally is the light, revealing hidden information and piercing the grayscale world around you with color as you make your way through the haunted environment.
MY CONTRIBUTIONS
Large Adaptable Enemy AI

The Opasives Behavior Tree plugin for Unity was used in order for the AI monsters to strike a balance of frightening the player and not overtly obstructing them. This allowed for increased decision-making complexity while retaining an easy-to-read format.
Some of the behavior trees that help the carousel horse exists in this balance are:
-
Player pursuit
-
Setting the navmesh destination of the player when they are heard or within the vision cone.
-
-
Environment search
-
Generating a list of reachable locations that the monster moves towards, scanning the surrounding area.
-
-
Preference towards illuminated areas
-
The player needs to have opportunities to see the monster in order to run and hide effectively, therefor the monster adjusts its pathfinding to pass through these areas while performing its other tasks.
-
-
Many more tasks are in development.


The Mannequins have a much different set of objectives:
-
Movement outside of player vision
-
When the Mannequins are outside of the player's vision, they quickly sprint towards them, stopping movemen when seen again.
-
Portal shaders
With non-euclidean environments being a foundational feature, an effective portal shader was vital to its success. The player can now loop through existing areas of the game or be moved to a new location without becoming disoriented.

Asynchronous Level Loading

Large environments packed with high amounts of geometry take a toll on the game's system, breaking the immersion for the player. Asynchronous level loading separates the environments into smaller chunks that can be loaded or unloaded depending on their pertinence in the current game state.
bottom of page