BJ VS The Hound of Hell is a 2D horror platformer I created as the final project for a global horror film class. You assume the role of the fearless BJ as he explores an abandoned laboratory while being stalked by a flesh-eating demon dog.
Programmed from scratch the demon dog’s behavior, which dynamically traverses the walls and ceiling to reach positions to pounce at the player, while also allowing for modularity to create more scripted attack patterns.
Developed the player character controller from the ground-up in Unity C#, with fluid and responsive transitions between walking, running, jumping, and rolling.
My primary ambition for this project was to craft an entity capable of moving along the walls, ceiling, and floor to potentially attack the player from any angle. For me, the challenge with this concept came from dynamically selecting a valid point to pounce from and mapping out a route to that point, which required of the creature a basic awareness of its surroundings to plan out a route. My solution was to create a simple nav mesh using Unity's 2D grid system, painting navigation tiles along the desired surfaces and running a breadth-first search to generate a valid path.
This logic worked great for contained, box-shaped arenas, but I quickly realized it would struggle in more complex and open terrain, putting a dent in my initial idea for the creature to be a persistent threat that chased the player throughout each level. Fortunately, I discovered my existing logic was highly compatible with scripted paths in addition to dynamic ones, so with only a few modifications I was able to create several static but memorable encounters that utilized the terrain in fun and creative ways, while periodically enabling full dynamic movement in contained arenas the player would have to survive for set durations. The result was a nicely-paced horror game with a great mix of sudden scares and battles for survival that are sure to keep you on the edge of your seat.