top of page

Simulating smell

These enemies track the player smell.  Try not to run to sweat less, read the wind to use it to your advantage, or use water to make tracking you harder. Planning your escape route will be the difference between suspected and being detected. While this system was much more promising than sight, it was ultimately discarded to focus solely on hearing system. 

Click HERE to learn more

Making a tracking-centric space

The mechanic is the enemy following the player. There are vertical drops to use as shortcuts and intersecting paths to let the enemy catch up. There are always many ways through each encounter, to give plenty of options to shake off their pursuer.

Click HERE to see how the space evolved

ScentIcon.png

Scent                   prototype

Simulating hearing

These enemies respond to how much noise the player makes relative to the ambient noise of their surroundings. You might get away with walking close to an enemy if either you or they are by a loud waterfall, but step into a puddle in complete silence and you're in trouble. All based on a gradual, custom noise-falloff model.

Click HERE to learn more about the system

Making a sound-centric space

Both water puddles and waterfalls create noise - that noise depends on distance, rather than line-of-sight. The player and enemy see each other based on different factors, allowing for interesting, highly asymmetric scenarios that require careful timing and consideration of the environment

Click HERE to see how the space evolved

ColourIcon.png

Sight                prototype

Simulating vision

The least innovative of the 3 systems - detection speed depends on how quickly the player moves, their distance from the enemy, and the angle from their front. After all, it's a lot easier to pass unnoticed in the corner of someone's eye. 

Click HERE to learn more

Making a facilitating space

To playtest the system, a simple environment was created. It quickly became clear that the other systems create more engaging gameplay, so iteration stopped quickly.

Click HERE to see how the space evolved

ScentIcon.png
InSight.png

InSight

Stealth | Experimental | Free

Jan '22-May '23

DownloadItch.png

A new approach to stealth

I reflected on the stealth games I played and how sight-centric they were. Breaking line of sight, sticking to the shadows, at most a single loud noise tipping the enemies off. But perception is much more than just the eyes. I set out to create a convincing sense of smell, hearing and sight in this project.

While it started as a technical challenge, I soon noticed the inherent level design opportunity that this AI creates. Smelling Custodian AI is not impeded by walls, where they are critical to Seeing Sentinels AI. Each environment must empower and showcase the unique traits of the AI and it's relation to the player.

Hearing Iteration
GrottoPreview.png

Hearing

Detection based on a dynamic sound emission and fall-off system

Hide 'behind' loud objects and avoid loud water splashes

the evolution of the

Damp Grotto

With puddles, waterfalls and dripping stalactites filling the grotto and a noticeable absence of a sky overhead,  this cave is far darker and more enclosed than the areas outside. 

The cave is home to the Sentries - creatures that detect the player through sound. If the player is constantly running, or splashes around in a puddle for a bit too long, Sentries will notice. Thankfully, the water seeping into the grotto provides ample cover for those who use its dripping noise. 

Despite many improvements, cauldron continued to be the least favorite for the testers. I realised it was likely due to it being much more linear than the other rooms.

 

I set out to create a room that, while tense, gives the players more options. I also hoped to improve the vantage point, so that the encounter wouldn't feel as reactionary.

PostCauldron.png
GrottoPreviewCauldron_edited.jpg
Initial
Final

Iterating Cauldron room (again)

26/06/2022

Playtesters really liked the tension created by sheer drops in this area. They did not like how much it forced a linear path. I opened up alternative paths including one below the walkway to add more verticality.

HearingExit_Post.png
HearingExit_Pre.png
Initial
Final

Iterating peaks Exit room

22/06/2022

The grotto is unique in its approach to darkness and can use lights to guide the player far more than the other areas. This advantage is criminally underused as of yet.

 

Playtesting revealed the darkness was too much for most players and the deep rubble pits did not seem lethally deep.

Across the entire grotto, lights were adjusted, overall brightness raised and rubble pits lowered about thrice as deep as they were befoerehand.

GrottoLighting2.png
LightingColourREcorect.png
Initial
Final

Lighting and depth pass

18/06/2022

The entrance to a space establishes the viewer's expectations. 

At first, I wanted to frame each of the paths, based on their difficulty - with the easiest area on the left in a very open frame, and the hardest (on the right) partly through the rubble. 
 

That solution hinged on one critical viewing point or very exact path. Realizing this, I decided to instead reveal and conceal the various points of interest as the player travels around the entrance hall-using very simple denial and reward.

HearingEntranceA.png
HearingEntranceC.png
Initial
Final

Iterating Main Entrance 

4/04/2022

The Cauldron is a short, yet intense encounter. Player's success hinges on their understaning of water mechanics. 
It took some iteration for the shortcut to butterfly room to not be confused by playtesters with the intended path on either side. It ended up being mostly a matter of sharp corners than size of the corridor.

As playtesters agreed this was the least enjoyable room, the elevated section was later greatly expanded to spread the tension better and make the room less cramped. Later playtests show much greater enjoyment of the room

PreCauldron.png
PostCauldron.png
Initial
Final

Iterating Cauldron room

3/04/2022

ButPreAtmo.png
But_PostAtmo.png
Initial
Final

Iterating Butterfly room

The butterfly room is the longest encounter- with multiple safespots for pacing the tension.

At first, the player was to make their way through the middle of the butterfly, then either left or right, to arrive at the objective in the middle. This did not work well in play-testing and underused sentry's patrol area. The objective was moved to the left side- the middle path now used as a high-risk shortcut right through the enemy's patrol area.

The nests new location also links it to the smell area entrance.

30/03/2022

PeaksPreview.png

Smell

Detection based on tracks, affected by time and dynamic wind

Hide by making your path hard to follow, using wind and water to disrupt the pursuit.

Smell Iteration
the evolution of the

Mistery peaks

Covered in clouds, the peaks have an airy yet eerie feel. Sharp cliffs, long falls and even longer sightlines, give this area a sense of scale far larger than the other zones.

The peaks are populated by  Custodians- enemies that react to scent. Try not to run to sweat less, read the wind to use it to your advantage, or use water to make tracking you harder. Planning your escape route will be the difference between suspected and being detected.


The alternative entrance to the grotto was very underwhelming. It was not a clear edge between the grotto and peaks.

It ought to be a middle-ground between a very open space and a de-facto interior,  have prominent water elements as they are common for both areas and have a calm ambiance to fit well within two fairly intense enemy encounters.

I'm particularly pleased with the curved incline, as it combines beautifully with the waterfalls to guide the players eyes to the upper floor.

PreWetCylinder.png
PostWetCylinder.png
Initial
Final

Grotto entrance

26/08 - 04 /09/2022


Despite the individual areas having decent verticality, the layout of the entire zone was completely flat  (it was planned out in 2D). Similarly individual columns offer multiple paths, the entire area is painfully linear.

I've added multiple access points for more player freedom, as well as open-able paths.

 

I really liked the bridges around the cave column for their visual guidance, and how they emphesise height. I decided to expand them and I'm very pleased with the results.

SmellAncchors_zero.png
SmellAncchorsF.png
Initial
Final

Layout pass #2

25 - 28 /08/2022

 

The entrance to an area defines expectations- it must establish height, long sightlines and clouds. No wind nor water yet, as they are more advanced tracking evasion tools, that deserve their own introduction at a proper time. 

With the pathway curving in the opposite way, visibility is far better. By breaking up the sightlines by the nest and under it, reveals are made more impactful and dramatic. By adding a tiny cave before the path, another reveal moment is created- this one focused on establishing the direction through very purposeful framing.

The inverted path curve, along with adjusted clouds makes the height noticeably more oppressing.

AtmoPreSmellIntro.png
AtmoPostSmellIntro.png
Initial
Final

Main entrance iteration

07 - 12 /04/2022


The dead-end area had poor pacing. After the intense snake pass, there was no place to rest before being thrown into another intense section- the dead end.

Through making the player travel up the mountain instead, not only is the pacing less jarring, but the arrival at the nest is more rewarding as well. The player first sees the nest from the snake pass, but can't get directly to it. They then see the nest again from the top of the mountain and the tunnel, as they get closer, but it is still out of reach.

By obscuring the destination throughout the path and extending the journey, I make use of denial and reward to make the arrival that much more impactful. Second pass added alternative paths and more smart sightline denial.

Peak_PreAtmo.png
AtmoPostPeakV2.png
Initial
Final

Dead end iteration

06-08/04/2022

& 22-24/06/2022


The initial design of creating the area around 3 monolithic octagonal columns was good enough for developing the scent mechanics, but blocked wind far too much for.

By moving the columns further apart and connecting them through small, winding paths, the Mistery Peaks took on a uniquely open plan with long sightlines broken up by huge rocks and mist.

Objectives are no longer placed immediately after an encounter, rather shown before an encounter, to attract the player and make them move. This, combined with a shortcut to the hearing grotto create a far more engaging and interconnected space.

SmellV1.png
SmellV2
Initial
Final

Expanding and reworking anchors

09 - 19/03/2022

Sight Iteration
Sight2LookingNeat.png

Sight

Detection based on sight-lines and height differences

Hide behind cover or on high ground.

the evolution of the

Canyon

With much height variation and narrow paths, the canyon had the difficult task of cutting off sight-lines while not feeling like a labyrinth. While it was a fun area to make, the lackluster sight system was much less engaging than the other two in testing. Development was quickly halted.

The cave is home to the Sentinels - creatures that detect the player through vision. Players must keep their distance, use cover to cut off line of sight or try and remain on the peripheral of their vision.

The entrance to an area ought to establish its gimmick in a reasonably safe and digestible manner. With sight hinging on sight-lines and height, it's critical to establish the interplay between these two clearly.

The new version allows the player to choose between height advantage with lesser cover or no height advantage with more cover - achieving a better blend between these two factors and a more open-ended gameplay.

AtmoPre SightEntrance.png
AtmoPost SightEntrance.png
Initial
Final

Main entrance iteration

14-16/06/2022

Sense programming

When on the ground, the player regularly spawns track nodes, which contain their spawn timestamp and despawn after a time. The despawn time is halved if in water.

The AI checks for scent nodes in a specified radius around itself. From nodes retrieved one with the most recent timestamp is grabbed and the AI pathfinds to it. As a result, it will take shortcuts if the player comes to close to their earlier path. 

The track retrieval range is offset by global wind - a random direction which changes by up to 60° a few times a minute. Its direction is shown by the flags. This offset means that if the player is downwind, they can  escape more quickly.

 Current detection is the normalised freshness of the track, where 0.1 is almost expired and 0.9 is very close to the player.

Smell

A closer look at the enemies

But how do they hear?

Each sentry holds a list of AudioSource components in their vicinity along with their volume and distance to them. These 2 values are used to calculate weighted noise though a layered logarithmic falloff curve. AudioSources are sorted by their weighted noise, resulting in a list where the loudest, closest objects are at the top and subtler noise at the bottom.

The players steps are at different volume depending on whether they are running/walking/sneaking and whether they are in water. If this volume creates a weighed noise higher then the enviornment noise, player builds up detection on every step
(interval depends on sneaking/walking/running)

Hearing

NoiseMultip.png
image.png
image.png
image.png

The foundation of the enemy AI is a state machine, with various behaviors cyclically triggering while in a given state. There is no limit on how many behaviours can be active at once and as they trigger in large intervals, the performance cost is quite low.

 

Each behaviour can have its own base interval, meaning while the enemy can be doing 3 things at once, the different cycles make it seem more organic. The interval's randomness can also be adjusted to make it more or less predictable.

 

For instance, while in the idle state, the E_LookAround behaviour will make the enmy face a random direction, every few seconds (between 5s/2.5 - 5s*2.5). When the enemy starts detecting the player, it enters suspicious state, disabling E_LookAround, E_PatrolArea and E_WalkToPlayer. When the detection is full, they enter the attack state , disabling all behaviours but the E_WalkToPlayer which has them run up and kill the player.

State machine

The simplest of the 3 senses.
A sentinel has a large conical trigger attached.
If the player enters said trigger, it will try to raycast at the player. If the raycast is succesful, the player is directly in sight. The player will then build up detection every tick until the raycast is blocked by some obstacle.

The buildup is multiplied depending on angle from the enemy's front, then multiplied again based on distance.


Height advantage is created by angling the trigger-collider, making its range shorter at the top, than at the bottom- making sentinels more dangerous if they have height advantage.

Sight

bottom of page