Well to Hell

Summary

Role: Programmer
Duration: 1 semester
Tools & Technologies: Unity, C#
Concepts & Techniques: AI
Team Size: 5
Awards: Most Technical

A couch co-op local multiplayer game with horror elements. A team of interns investigate a water leak in the Arizona desert. Players play through three levels, responding to various tasks that must be done regularly to prevent monster intrusions. Several different monster types with different spawn conditions, behavior, and counters.

Sections

Overview

Well to Hell is a couch co-op multiplayer game with horror elements that supports up to 4 players. After landing a position at the mysterious Oasis Corporation, you and your fellow interns are tasked with investigating a water leak found in the Arizona desert.

This game was made as part of UCF's AI for Game Programming course and won the "Most Technical" award out of 30 other games.

General Contributions

As the primary programmer on the team, I implemented the majority of the game’s core systems, from player mechanics and level management to a flexible interaction system and enemy AI.

Player Systems

I implemented the player character, including movement, death and revival mechanics, and tool handling (pickup/drop). Tool usage ties directly into the interaction system, forming the core of player-to-world interactions.

Interaction System

One of the primary features of the game is the interaction system, which defines what the player can interact with in the world and how it affects it. At the core of this system are tools. Players can pick up tools and use them to interact with a variety of world entities. Each entity defines how it can be interacted with—such as required tool type, interaction duration, number of participating players, and more. Furthermore, these entities can be anything from objects like windows and floorboards (which act as monster spawns), enemies, and even other players. This flexibility is made possible by a generalized Interactable interface, which defines common interaction behaviors across a wide range of objects.

Here is a diagram that illustrates the full interactable system. This system effectively manages the complexity of all the ways players can interact with the world.

AI Design & Implementation

Well to Hell has several different entities in the game, each with unique behaviors and challenges. While many AI systems were considered for each enemy, such as behavior trees and utility systems, many of the enemies in Well to Hell were implemented with finite state machines.

The first enemy added that is introduced in the first level is the mole. The mole can pop out of broken floorboards that are left unrepaired for too long. Moles will roam the level looking for players, then pursue the first player it sees. Moles are afraid of hammers and will flee if a nearby player picks one up or is already holding one. Moles can be defeated by interacting with it using a hammer.

The second enemy is the worm. These are much larger creatures that break in through open windows, making passes through the level and killing players that are unfortunate enough to be caught in its destructive path. Worms move quickly in straight lines but turn slowly. Before charging through the level, they lock onto the player farthest ahead in their path. After a certain duration in its hunting phase, the worm will retreat back into the earth.

The worm and the mole both use "breakable spawners". These spawners remain dormant until they “break,” at which point they begin spawning enemies. The break chance depends on factors like elapsed time, player proximity, and current monster count.

The Hatman is a powerful entity residing inside a haunted TV in levels 2 and 3. Interacting with the TV temporarily keeps him at bay. If left unattended for too long, the Hatman teleports to each player and attacks, often wiping unprepared teams. He will not attack if a cat is nearby.

The cat is a friendly, protective creature. Players can pick up and relocate the cat, but it will eventually jump out of the player’s hands and return to its designated “favorite spot” on the map. Players must strategically reposition the cat to protect the team from the Hatman.

The Oracle appears occasionally in level 3, amplifying the aggression and spawn rate of nearby monsters. While not dangerous on its own, its presence can quickly escalate the pressure on players.

Teleporter Navigation Challenges

Teleporters were one of the most difficult systems to implement correctly. While simple in concept—moving an entity instantly from one point to another—their integration with AI navigation introduced several unexpected challenges.

WIP