2025-10-18

Written: 2025-10-18
Project: Project Fragmentation

  • Updated the original map to the new system of lightmap layers
  • Added time trial triggers to the original map
  • Forced respawn (from trigger_respawn) is now also deferred to GameManager
  • Hitting a respawn trigger in timetrial mode will now attempt to respawn you at the last checkpoint.
  • The default respawn/segmented run behaviour is now “Practice mode”. Added tt_practice to toggle practice mode. When practice mode is disabled, all respawns are replaced with return to start. This enforces that all runs are valid
  • Added r_show_crosshair. Toggles visibility of a 2px square in the center of the screen. Starts disabled
    alt text
  • Hitting a force respawn in speedrun_mode now correctly restarts the level
  • Timetrial UI now shows the stored best time next to the current time
    best time ui
  • Fixed depth sorting on fogplanes so they now appear correctly behind checkpoint zones
  • Removed hardcoded player spawn for the original map, now uses an info_spawnpoint. Also rotated it to be slightly more forgiving
    alt text
  • Added env_lightblocker. Uses very tiny lightmap size to still effect shadows and is manually hidden after bake via script. Once #96538 is fixed this won’t be necessary.
    alt text
  • Added AudioMultiPlayer and AudioMultiPlayer3D. Automates playing sounds across cycling set of AudioStreamPlayers to get multi-sample polyphony.
  • Massive refactor of PlayerController.gd, reduced linecount by 50%
    • Moved all sound related code out of PlayerController.gd into PlayerSoundManager.gd and switched to using the above mentioned AudioMultiPlayers. (Reduced PlayerController.gd by ~250 lines)
    • Migrated all the state specific logic out of PlayerController.gd into PlayerAirState, PlayerSlideState, PlayerLedgeGrabState, etc. (Reduced PlayerController.gd by ~250 lines)

what if a bug had a website

emily/chloe
it/its/she/her
occasional maker of things and poster of thoughts