Recursion - dev log #2


Dev Log #2: 06/26/25 → 13/07/2025

This second sprint was a tough one. A few things in my life compounded into an exciting package of stress and excitement. Covid knocked me around for a few days, I had performance stress due to an upcoming musical gig, impostor syndrome plus fear of the unknown of what comes next after this degree is getting to me a little bit. I’ve made it this far, it’s too late to turn back now. Anyway, here’s everything that got done this sprint:



Added:

Key Items

Items with narrative significance are now made more obvious by a floating interface window that communicates finer details to the player. These windows are clamped to the screen and responsive to text.




Subtitle System

Subtitles now display whenever the HRVoice plays. These are currently unable to be toggled off, but once configurable settings are finalized and programmed, they will be made optional.


Suitcase Inventory

This was a bit of scope creep. I wasted some time making a functional 3D grid-based inventory. It works, but took longer than expected. The same logic will later apply to interactable drawers, shelves, etc. For now, the suitcase has been shelved and serves as an important lesson in sticking with the original sprint plan.



Multiple Object Interactions

Added a configurable list of actions that an interactable object can perform. This is groundwork for adding context-specific options for interacting with objects. Scrolling the mousewheel navigates actions, and pressing F performs the action. This will eventually hook into a floating UI—similar to the key item interface.



NarrativeTrigger Refactor and TriggerFunction

Refactored the existing NarrativeTrigger to use a new TriggerFunction class leveraging Unity’s UnityEvent and UnityAction API. This allows greater freedom for triggers. Added gizmo handles to visually show in Scene View what each trigger does. When a player enters or exits a trigger area, a queue of actions is performed with configurable delays and durations.




Signage

Following early playtest feedback about guidance, more signs were placed throughout the level to direct players.







Lighting, Reflection Probes, Shadows

While I was sick, I focused on lighting, shadows, and reflections to bring the game world alive. Initially I used point lights everywhere, unaware of how expensive they are in URP when casting shadows (each requiring 6 shadow maps). Swapping them for spotlights reduced the load drastically, improving framerates and shadow quality.

Reflection probes were added in each room to prevent ‘flatness’ and make reflective surfaces shine, adding immersion and believability.

Before



PostProcessing (Colour Balancing)



Post Processing Effects

To make the game feel less ‘flat,’ I experimented with post processing. Depth of Field was initially constant but abandoned due to motion sickness. Chromatic aberration and light flares were added subtly. Motion Blur was toned down as it didn’t fit and conflicted with the Cinemachine Camera inside the elevator. Depth of Field returned as a targeted effect when focusing on interactable objects.




Modelling Work

The world felt blocky and boring, so I spent recovery time modeling furniture and props: tables, bookcases, a couch, radios, filing cabinets, office chairs, mugs, picture frames, books, and office stationery. Everything received basic materials and collisions. Prefab variants make drag-and-drop easier for worldbuilding. Cubicles were also redesigned for better atmosphere.











Sound Work

Physics props now make sounds when rolled, slid, or collided. Each uses a soundMaterial scriptable object dictating sound type. This uses the AudioEntity system to pool sounds, keeping performance optimal.

Door sounds were sourced from Freesound.org (CC-BY-SA/CC0) and processed in FL Studio with EQ filters to reduce bass. Music tracks I composed were added to a reverb-heavy audio mixer group in Unity, matching the world’s vibe.


Projector and Proper Level Onboarding

A basic onboarding room was created with a projector cycling placeholder textures to guide new players. This keeps the design specs aligned with the diegetic philosophy of the project.


HR Login

In response to a task assignment bug, players can now log in/out via an ID card and reader. I also added tasks that deliberately fail due to HR system errors, creating complexity for the player to resolve in-game.


Loop Feature

The loop system was redesigned. Instead of respawning in the elevator, the world now reboots around the player—lights cut out, then restart. Inspired by the TV series From (2022), this adds a sense of continuity. Surveillance ramps up after the first loop, subtly changing gameplay dynamics.


Task Variations

Tasks now include:

  • HR mistakes: incorrect delivery addresses corrected after delays.
  • Decoy objects: multiple documents spawn, requiring players to memorize and find the correct one.

Main Menu

I created a dynamic main menu with an endless corridor, floating documents, and subtle camera rotation. The main theme plays, giving the menu life. Buttons aren’t fully functional yet but will come later.



Redesigned Task Screen

The original task screen was limiting. I replaced it with a console-style window capable of scrolling text output, coded with a custom WriteLine method using coroutines. This approach was also reused for terminals providing player hints.



Misc Changes

  • Added ability to change light colors for ambience and feedback.
  • Removed crosshair—may return based on playtest feedback.
  • Right-click zoom: adjusts camera FOV for inspecting details.
  • Left-click throw: players can now throw held objects.
  • Task data includes string triggers for narrative branching.

Reflection

This sprint accomplished a lot. The game is taking shape in ways I hadn’t anticipated. As with music composition, the execution differs from the mental vision. I set out to do X and Y—but ended up doing X, a little Y, some unnecessary overengineering, overcomplications, and refactors. I identified scope creep as a risk before production, and while it happened anyway, I applied mitigation strategies: cutting excess and refocusing on sprint tasks.

Until next time!

Get Recursion

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.