About
A narrative-driven horror game where you play a humble janitor working a routine night shift—until the environment grows increasingly unnatural, forcing you to evade a lurking monster and fight to escape.
Project Info
Role: AI Programmer
Team Size: 13
Duration: 4 Weeks
Engine: Unity
Overview
I contributed to multiple parts of the project, with my biggest pieces of work being programming the monster’s behavior and designing/implementing the main menu. Beyond that, I also helped build supporting features like the pause menu, the end screen, and several smaller scripts and polish tasks that tied the experience together.
AI Behavior
For Botanica, I designed and implemented the core behavior system for the game’s monster — a “Weeping Angel”-inspired enemy that only moves when not illuminated by the player. I structured the AI as a state machine with two primary states: Wander and Chase. In Wander, the monster selects random NavMesh points within a radius and roams until the player comes into view. Visibility is determined through multiple raycasts to predefined points around the monster to ensure accurate line-of-sight detection rather than relying on a single check.


When the player is detected, the monster transitions to the Chase state, pathfinding directly toward the player while dynamically driving audio feedback. I implemented proximity-based sound cues, including a heartbeat system that increases in intensity as the monster gets closer, and a danger cue when within a certain range. If the monster remains close to the player for a short duration, it triggers a kill condition.
A key mechanic I developed alongside this system was integrating the monster’s movement lock with the player’s flashlight. The monster stops moving only when illuminated with sufficient charge. This required layered checks for distance, viewing angle, flashlight intensity, and obstruction raycasts before locking movement and stopping the NavMeshAgent. When the player looks away or the light fades, the monster resumes movement and can change pose to reinforce the horror experience.
Main Menu
I designed and implemented the main menu system, focusing on both UI/UX design and technical functionality to ensure a strong first impression. My goal was to create a visually striking, intuitive interface that reinforced the game’s horror atmosphere from the moment players launched the game.
On the technical side, I implemented all button functionality, including Continue, New Game, Options, Credits, and Exit. Within the Options menu, I developed persistent settings such as a fullscreen toggle, graphics preset dropdown, and resolution dropdown, ensuring all preferences were properly saved between sessions.

