I challenged myself to build a survival-horror game using only assets from Epic’s free-for-the-month packs. I rigged the statue character, designed and built stealth mechanics, scaling difficulty progression, UI, and enemy ai, then designed a level that was easy to get turned around in but had memorable landmarks.
Features
Risk & Reward Difficulty Scaling
As you make it further in the game, it becomes more difficult as more “guardians“ start hunting you
Breaking containers gives you the items you need to survive and escape, but also alerts the guardians to your location
Increase your chance of getting survival items from containers by finding Lucky Charms, rewarding exploration at the cost of spending extra time searching
If you want to make it harder on yourself, avoid the charms, they’re not required to beat the game, and you get an achievement for doing so
Stealth
Listen for the guardians’ footsteps and “hunt music“, if you can hear it, hide
Watch for glowing yellow eyes, if you can see them, they can probably see you
Throw rocks to create distractions and break containers from afar
Level Design
Memorable Confusion
When designing the map for Shanubis, I needed the monster to be able to surprise the player from anywhere, but also provide the player fair chances of escaping. This becomes super important later in the game when there are multiple roaming monsters.
I also wanted new players to feel like they were getting turned around in a maze, but provided enough distinguishable landmarks so that after a few runs, players would be able to get their bearings more easily.
Originally, I had the monster start chasing immediately, but due to player feedback, I changed it so that the player can explore and get the lowdown of the map first, which adds tension due to the unknown for new players. I then have the player trigger the monster at an intersection and pick a random hallway connected to the intersection for him to spawn, so that even experienced players don’t know where he could come from.
Enemy AI
Design Considerations:
The enemy is melee only, so it needs to be able to catch the player
Give the player a chance to react
The player needs to be able to get away, but is slower
Implemented Design Decisions:
The enemy is faster than the player
The Average human reaction time is ~250ms. The Enemy has a reaction time of 400ms
The enemy is immobile when attacking, giving the player a chance to break the line of site
States:
Patrol
Picks a random pre-placed marker in the map that’s not near them
Walks to that marker, Repeat
Investigate
Hears a sound within its perception radius and goes to investigate
Chase
Sees player and begins to chase
If in melee range, stop and attack
Search
Lost the player, looks around to see if they can spot them
Either sees the player and chases again or goes back to patrolling
Pickups
Break pots and crates to find pickups
I used Unreal Engine’s Chaos Destruction System and swapped out the normal mesh for the broken mesh collection at runtime, then had the pieces fade out and disappear after a few seconds to maintain performance.
Bombs
Bombs are used to break open walls, and are the only pickup you need to actually finish the game
There are only 2 walls you need to blow up, but many others that can open new routes for you, to help when you're being chased
You only actually need 2 bombs if you know which walls to blow up, but finding more means more options
Lucky Charms affect the drop rate of this item
Rocks
Rocks can be thrown to:
Distract the enemy by making a sound to direct the enemy to a location
Break pots from afar
Hit lucky charms that are out of reach, so they drop for you to pick them up
Herbs
Herbs are used to heal. They give the player more chances to keep their current playthrough going
Lucky Charms affect the drop rate of this item