Daily Dev Update: Smoother Matches, Cleaner Resets - December 6, 2025
Period: December 6, 2025
Total Commits: 9
Hey, here’s what we’ve been working on. Today is mostly stability and polish: cleaner match transitions in multiplayer, smoother movement when you crank the speed, and a lobby flow that behaves the way it should. A couple small UI and analytics tweaks landed as well.
What Got Fixed
-
No More “Ghost State” Between Matches
- Fixed an issue where parts of a finished match could linger into the next one. Things like lingering auras, event listeners not shutting down, or end-of-match callbacks firing more than once. Matches now end cleanly and the next one starts fresh.
- Player impact: fewer weird edge cases after rematching, more consistent tower and aura behavior.
-
Smoother Movement at Higher Game Speeds
- Interpolation now uses real time instead of scaling with game speed. This prevents units from overshooting or snapping when you fast-forward.
- Player impact: cleaner visuals when spectating or playing at elevated speeds.
-
Lobby Updates Reach the Host Reliably
- Fixed a case where hosts didn’t see join/ready changes. Connection handlers now register consistently and reconnections are handled more gracefully. We also adjusted auto-ready logic so only the host is auto-readied.
- Player impact: hosts and joiners stay in sync, fewer “why isn’t the lobby updating?” moments.
-
Tutorial Minions Spawning Twice
- Corrected a double-spawn in the tutorial flow. Now the wave pacing matches the intended teaching moments.
Under the Hood
-
Lifecycle and Cleanup
- Tightened up disposal across match boundaries so systems actually tear down when a game ends. Registries clear their entities, aura state resets, and end-of-game callbacks won’t fire repeatedly. This reduces odd behavior that only showed up after a few back-to-back matches.
-
Networking Hygiene
- Socket event handlers now get set up even if the connection originated elsewhere in the app. This closes a race where the lobby missed early events. We also pass full lobby data on join to keep the UI consistent without waiting for follow-up messages.
-
Interpolation Correctness
- Ticks arrive at fixed real-time intervals. Movement simulation already respects game speed where needed, so rendering now interpolates purely on real time. That separation keeps visuals stable regardless of speed multipliers.
-
Editor Schema Cleanup
- Renamed some internal schema types in the level editor for clarity. Nothing you’ll notice in-game, but it makes building and maintaining maps less error-prone.
Thanks to everyone who reported odd behavior in lobbies and those who noticed choppy movement at high speed. If you run into anything that still looks off—especially after rematches—send us a clip or log and we’ll dig in.