Period: October 16, 2025 Total Commits: 33
Daily Dev Update: Faster Loads, Fairer XP, and Cleaner Shots - October 16, 2025
Hey — here’s what we’ve been working on today. The short version: the game loads faster, XP awards are fair and reliable, audio stutters are down, and we cleaned up projectile rendering to make effects easier to improve without breaking everything else. A few rough edges got smoothed out in auth and connection handling too.
What’s New
-
Background asset preloading, now actually fast
- Assets now load by priority and in parallel within each tier. CRITICAL, HIGH, MEDIUM, LOW all go together at their level.
- Rough numbers: CRITICAL (~3 assets), HIGH (~35), MEDIUM (~48), LOW (~114). Expect a 5–10x speedup versus sequential loading.
- Practically, this means fewer texture/music hiccups when you hit a match.
-
XP in the header
- Registered users now see their total XP in the app header with a clean gold treatment. It auto-refreshes after you register or finish a game.
- Helpful if you’re tracking progress across human matches.
-
Quick exit during a match
- The Settings modal in-game now has a red “Leave Game” button. It does what it says and takes you back to the main menu.
-
Cleaner projectile visuals (same look, safer code)
- We split projectile and electricity bolt rendering into its own module. No gameplay change — just less risk when we tweak effects and animations.
What Got Fixed
-
XP fairness and reliability
- Human vs. bot XP is now determined correctly:
- bot_game: 10 XP (you vs. bots or all bots)
- human_game: 50 XP (requires 2+ human players)
- playtest game: 200 XP (unchanged)
- The client now reports the end of the match properly, so the server can award XP without waiting forever.
- Human vs. bot XP is now determined correctly:
-
Fewer audio hitches
- Sound effects reuse pooled audio instances instead of cloning. After the initial load, there are zero extra network requests for SFX.
- Result: less memory churn and cleaner overlapping sounds.
-
Login and session stability
- The phantom “Invalid token” logouts should be gone. We fixed:
- Token validation pathing with the auth service
- Session persistence (the client actually updates its token/username now)
- Guest sessions on reload
- Rate limiting only counts failed login attempts
- Also reduced aggressive server status polling that was spamming requests and desyncing UI indicators.
- The phantom “Invalid token” logouts should be gone. We fixed:
-
UI loops and button states
- Removed a couple of re-render loops and unified connection state so the server indicator and Create Game button agree with each other.
-
Login flow clarity
- Email login now expects you to have registered first. If the email isn’t found, the UI tells you to start with “Play as Guest,” then register.
[screenshot: login screen with guest-first flow at 9b41e71]
If you still finish a game and don’t see XP update, let us know what type of match it was (humans vs bots) and your end screen details — that helps us validate the report flow.
Under the Hood
-
Rendering organization
- Projectile and electricity rendering moved into a dedicated module with a shared render context. Same visuals, smaller main renderer, easier maintenance.
-
Asset preloading API simplification
- One call now preloads everything in priority order, with clear logs when each tier starts and finishes.
-
Audio pooling internals
- Pool supports multiple simultaneous instances per sound and resets playback time for instant reuse. No more duplicate element churn.
-
Smoother deployments
- Split client deploys into code-only vs. full (assets) to speed up iteration.
- Consolidated auth deployment into a single path, added environment boot order fixes, and made DB migrations idempotent.
- Fixed PostgreSQL setup reliability and eliminated password encoding pitfalls.
-
Auth/Routing/DX
- Moved authentication calls to a dedicated API subdomain to separate static and dynamic traffic.
- Typed auth responses, cleaned up JWT handling, and documented connection management to avoid the previous infinite refresh loop.
Thanks for the reports on XP not landing and the login/logout weirdness. That feedback made today’s fixes pretty straightforward to target. As always, try it out and send screenshots or clips if something looks off — especially around end-of-match flow and audio overlap.