Period: November 27, 2025 Total Commits: 8
Daily Dev Update: Frame Time Wins & Cleaner HUD - November 27, 2025
Hey, here’s what we’ve been working on. Today’s update is mostly about getting frames back, making same‑screen play stable, cleaning up the HUD, and tightening up our test/build pipeline. Nothing flashy, but it adds up.
What’s New
-
Cleaner HUD
- Trimmed the top-left clutter. Gold and level indicators are out. Wave info and the tab menu are consolidated in the top-right for a clearer read during fights.
- This should make it easier to track waves and keep your eyes on the lanes without UI noise.
-
Offline singleplayer fallback
- If the auth service isn’t available, the game now auto-creates an offline session so you can still jump into singleplayer without waiting around.
What Got Fixed
-
Same-Screen (multi-board) visual stability
- Fixed a projectile ownership issue that caused meshes to multiply when two boards rendered side by side. Mesh counts were spiking from a few hundred to several thousand, which led to redraw churn and stutters.
- Each board now manages its own visuals, so meshes don’t fight each other across boards. Expect significantly steadier frame times in same-screen sessions.
-
Bot match performance
- The bot’s economy/pathfinding logic was recalculating routes on every state tick (about 10x/second), adding 30–40ms spikes in the worker thread. We added change detection so it only recalculates when the map actually changes (spawns, towers, castles).
- Result: smoother bot practice matches and fewer hitches during heavy waves.
-
Removed a costly frame wrapper
- We disabled a browser tracing wrapper that was hooking requestAnimationFrame and adding roughly ~30ms per frame in the main loop. Error reporting stays on; the frame tax is gone.
- If you noticed sudden slowdowns during long runs, this was probably it. Should feel noticeably snappier now.
-
Quieter logs, lighter render loop
- Yanked a bunch of debug logs from input handling and several renderers. Less console spam and a small performance bump during effect-heavy moments.
-
Integration tests are green
- Addressed timing issues in login/auth flows and made the test harness a bit more patient. All 29 integration tests are passing reliably now, which helps us catch regressions earlier.
- Also reduced noisy server/auth logs in test output to make failures easier to spot.
Under the Hood
-
Faster, reproducible installs
- Switched our scripts to use CI-friendly installs across the board for consistent dependencies and quicker builds.
-
Better performance forensics
- Dropped in Chrome tracing helpers so we can capture and analyze frame timings when things get weird. Useful for tracking down the kind of issues we fixed today.
-
Analytics housekeeping
- Updated our analytics tags to a new account for cleaner telemetry. Nothing changes player-side.
Why this matters
- Same-screen sessions should feel steady instead of jittery during projectile-heavy waves.
- Bot matches are a better place to practice now that the worker isn’t chewing 30–40ms every tick.
- The HUD lets the action breathe. Less clutter, same information density where you expect it.
- With the frame wrapper removed, the main loop isn’t fighting unnecessary overhead anymore.
If you’re still seeing spikes or visual duplication in same-screen, send us a trace and a short repro. Thanks to everyone who flagged the slowdowns and HUD feedback—those reports led directly to these fixes.