Stuck in a Loop
My team was initially a little discourage with the announcement of the theme for Ludum Dare 47, as the concept of time loops had already been executed so well in games like Super Time Force, Minit and Outer Wilds. 
I proposed we brainstorm other ways that loops could manifest themselves in games, and immediately thought of clockwork stealth games likes Hitman, Metal Gear Solid, and Splinter Cell, where a large part of the game is learning enemy AI behavior loops within the game world.  
Having recently worked with Navmesh agents and waypoint based pathing in my RPG project, I pitched a mechanic wherein a player could modify the waypoint in an enemy AI's path to sneak through the level. 
Making the Loop
The basic mechanic consisted of an enemy AI that would patrol through an array of waypoints with a configurable movement speed and dwell time.  The player could pickup the waypoint, setting it's transform to the players position, and set it back down at any time.  When a waypoint was picked up, it would broadcast to the enemy that it's path was disrupted, which would put the enemy into an alerted state with modified movement speed and dwell times. 

The first obstacle was expressing the enemies path to the player.  My instinct was that paths should not be visible until the waypoint was picked up, so as to keep the levels clear, and limit the players information.  Actually drawing the paths was done by instantiating and deforming a cylinder mesh between each waypoint.
Disrupting the Loop
Once the core waypoint mechanic was created, I went to work on improving the visual language around the mechanic.  The idea was to stick to two colors for as much of the UI as possible.  An unalerted enemy has a blue vision cone, which turns to red when a waypoint is picked up.  Undisturbed waypoints are red until you are within range to interact with them, at which point they turn blue.
I wanted to imply urgency when a node was picked up, so I used a fade-in vignette effect to limit the players vision when a waypoint was picked up.  The audio field is also effected with a filter sweep and reverb wash to make the audio cues less discernable while holding a waypoint.  
The one thing we missed here was an alert sound similar to the "!" in Metal Gear Solid to inform the player that the enemy was on to them.
Lessons Learned
1.  No mechanic is fun in a vacuum.  As good as I feel the path manipulation mechanic was, without levels designed to exploit it, it proved more dangerous than useful in the final version.
2. In time sensitive situations, go for the fastest workable solution.  The other programmer on this project and I spent a lot of time on calls trying to debug the programmatic vision cones.  It wasn't until the second day of the jam that I realized I could have easily built and tuned these via ProBuilder instead, freeing up valuable time.
3. Advanced audio processing in Unity does not work in the web player.  We wasted valuable time tuning these effects, but most players never heard them.

Ludum Dare 47 Entry - Cat | Stealth | Box
You can play the submitted game on or view the Unity project on Github

You may also like

Back to Top