Dinosaur horror game

Survival horror project in which the player must survive a night with ancient carnivores lurking about.

Engine

Unreal Engine

Platform

Windows

Project type

Solo

Status

In progress

Link

Unavailable

Overview

A passion project I’ve been working on for several years.
In this first-person survival horror players scavenge abandoned buildings, craft tools, and evade deadly dinosaurs in a single permadeath run to escape by helicopter.

Please note that the art assets aren’t final and I’m currently using placeholder models for the dinosaurs from the Steam game Primal Carnage.

Key features

Permadeath

A single successful playthrough takes about ~60 minutes. If you're killed at any point before extraction all your progress is lost.

Dinosaur AI

Dinosaurs roam the map with realistic behavior as they hunt the player, communicate with each other and even learn from their mistakes.

Random generation

No two playthroughs are the same. Interior layouts, enemy spawns, rooms and loot locations are all randomly generated.

World interaction

Interlocking systems ensure each obstacle can be tackled in multiple ways, encouraging improvisation and dynamic decision-making.

Dinosaur AI

Every dinosaur is driven by a unified AI framework and behavior tree that allows creatures to behave naturally, react dynamically, and interact with the world – and each other – in believable ways.

Dinosaurs seamlessly transition between distinct behavioral states depending on what they perceive:

  • Idle: roaming, feeding, unaware.
  • Alert: something caught their attention.
  • Hunt: actively investigating disturbances.
  • Chase: pursuing prey with lethal intent.
  • Flee: survival instincts take over.

At the core of the system is a modular stimulus framework that’s used to define different dinosaurs’ behavior without requiring custom code.

Everything in the world generates stimuli:

  • Sound (footsteps, gunfire, movement).
  • Visual cues (player presence, light sources, motion).
  • Physical interaction (damage, projectiles).
  • Communication (roars, pain vocalization).

Each dinosaur species has its own configuration on how to react to every stimulus according to their current AI state.

A small scavenger may panic at gunfire, while an apex predator sees it as an opportunity.

Dinosaurs learn from their experiences and can communicate this knowledge to others.
For example:

  • Repeated use of glowsticks and clutter as distractions will result in dinosaurs starting to ignore them or even directly understand its origin.
  • A hologram that depicts a large threat may cause small predators to flee; but some smart dinosaurs like the Deinonychus may be fooled only once by this trick.

Environmental props like tables, doors and lockers are destructible and affect a dinosaur’s pathing according to their AI state.

  • An open door has no effect on their path and is treated as no door at all.
  • A closed door will cause most idle dinosaurs to find an alternative route.
    • Some smarter species may even be able to open the door like the player can.
  • A closed door will cause most aggressive (attacking) dinosaurs to try and break down the door.
    • Small dinosaurs may take a while or give up eventually, while larger threats break through with ease.

Encounter manager

Plopping the player in a large environment with dinosaurs free to roam will result in inconsistent gameplay experiences; a player might have too many or too few interesting encounters.

To ensure consistency and control, a “director” encounter system runs in the background that constantly evaluates the player’s current and recent danger (measured as “stress”), as well as the player’s progress and equipment, to decide what kind of interesting encounter to run next and when.

  • Playthrough has only recently started and the player just narrowly evaded a Dilophosaurus? Take it easy for a while.
  • Player hasn’t had an encounter in a while and is carrying enough equipment to defend themselves? Subtly nudge a nearby Carnotaurus to investigate the building that the player is in.

Contrary to its name the encounter system manages all kinds of interesting moments and an actual hostile threat isn’t guaranteed for every single one.

Some examples of existing encounters:

  • Howling and barking sounds are heard in the distance until suddenly cut off.
    • The sounds stop sooner if the player investigates them, with a possible dinosaur growl heard as well to kind of warn the player that investigating noises isn’t a safe idea.
  • Scratching and shuffling noises are heard in a building’s walls and ventilation system.
    • Nothing more will happen as long as the player is quiet, but repeated noise may trigger a Utahraptor to crawl out of a nearby vent and investigate.
  • The exit(s) to a building close and quarantine alarms go off. The player must shut down power before dangerous predators are attracted to the noise.
  • A group of Compsognathus gnaw on a corpse, blocking the player’s way. While not a direct threat, the player must distract them quietly as to avoid them roaring and attracting more problematic species.

Environment generation

The game takes place in a large forest with several abandoned, decrepit facilities. In order to escape the player must find and fuel a helicopter in the center of the map, which requires them to investigate the facilities and loot them for fuel.

While the forest itself isn’t randomly generated, the facilities are. The size, floorplan, loot and props are different every playthrough.

Floor are generated by a grid system that first dynamically builds a path through the building, then spawns one random “room prefab” per cell.

Virtually every prop, every piece of furniture, every object is interactible or dynamic in some way.

Anything that can be used as a hiding place must be destructible.
Padlocks can be shot or blown up.
Doors, drawers and cabinets can be opened.
Security gates can be globally released via an unlock panel or blown open.
Notes and laptops can be checked for helpful information.

Players must shut down facilities to direct power to the center helicopter site.

A building’s loss of power affects all of its rooms, props and gameplay contribution.

  • Save for a few dim emergency lights, the entire facility goes dark. Players must navigate through the darkness by memory, eye adaptation or an extremely risky flashlight.
  • All mechanical doors – even previously locked ones – are now permanently open.
  • Security systems are disabled – anything can waltz in without you knowing.
  • Nearby dinosaurs will investigate.

Equipment & crafting

Outside of key items required to escape, plenty of other useful gadgets, firearms and ammunition can also be found and used in various ways.

  • Glowsticks may distract dinosaurs for a while.
  • Scanners can detect and identify nearby threats.
  • Sound beacons can remotely monitor an area of interest for hostile behavior.
  • Smoke grenades hamper dinosaur vision, allowing for a desperate getaway.

While not initially part of the expected scope, I later added a crafting system to allow for more control over loot spawn rate and have players decide for themselves on what gadgets they wish to make and use.

Dynamic music

Audio is an important aspect of any horror game and subtle background music is part of this.

I’ve created a base “stinger” system that runs in the background and constantly evaluates how intense the player’s current situation is based on several factors:

  • Proximity, AI state and health of the nearest predator and whether the player can see them.
  • Active encounters and their overall danger to the player.
  • Likelihood of the player’s detection in their current hiding place by a hostile dinosaur.

Stingers crossfade seamlessly between multiple tracks based on these factors, with every dinosaur species and encounter having its own configured pool of possible stingers to choose from.