Daily Dev Update: Smarter Bots, Cleaner Lobby — October 3, 2025
Period: October 3, 2025
Total Commits: 1
Hey, here’s what we’ve been working on today. Small update, focused on getting bots to behave like first-class citizens in the auth system and making the lobby less fussy. Nothing flashy, just cleaning up the foundations so practice matches and PvP lobbies feel more predictable.
TL;DR
- Bots now self-identify through auth (no more name-based guessing)
- Host controls for bot team and playstyle in the lobby
- Wider lobby layout, sturdier ready flow, clearer server status
- Server routes and config cleaned up to track bot vs human consistently
What’s New
Bots that actually say “I’m a bot”
Bots now flag themselves during authentication rather than us guessing from their names. We added an isBot signal end-to-end (login → session → WebSocket), so the game can reliably tell who’s human and who’s not. This removes a lot of edge cases where “Bot-like” names caused weird behavior.
Gameplay impact:
- Cleaner team lists and spectator info (no more false positives)
- Better practice lobbies where bots fill intentionally, not accidentally
- Fewer desyncs when the lobby tries to manage “mystery” players
Host controls for bot team and playstyle
You can now set bot team and playstyle directly from the lobby via dropdowns. Changes propagate to everyone in real-time, so the whole lobby sees updates instantly.
- Team assignment: move bots across sides without re-adding them
- Playstyle: pick how the bot approaches a match (aggression, economy, etc.)
- Real-time sync: updates ripple to all connected clients immediately
[screenshot: updated lobby with bot team/playstyle dropdowns at f45207d]
Wider, calmer lobby
We bumped the minimum lobby width from 900px to 1100px and consolidated styling into a single Lobby.css. The layout breathes a bit more, and controls aren’t fighting each other for space.
- Wider canvas = less UI overlap
- Single stylesheet = fewer weird CSS interactions
- Ready button behavior is consistent again
[screenshot: lobby layout with expanded width and cleaner spacing at f45207d]
Server status that tells the truth
The lobby’s server indicator is now tied into proper connection handling. It reflects actual connection state and recovers cleanly on reconnects.
[screenshot: lobby server status indicator showing live connection state at f45207d]
What Got Fixed
- Ready flow no longer flickers or gets “stuck”
- Bot management actions hit the right endpoints and return stable results
- Session tracking properly distinguishes bot vs human players
- The extra Login component was redundant, so we removed it (auth is handled centrally)
Under the Hood
- WebSocket authentication now carries bot status, not just identity
- New lobby routes for “ready” and “playstyle” to keep state changes explicit
- Bot updates (team and playstyle) are handled by workers and funneled through the server so every client stays in sync
- Centralized bot service URL with environment variable support (BOT_SERVICE_URL)
- Deployment config updated so the bot service ports align across environments
- Removed hardcoded bot name lists and cross-project imports; the system trusts the auth flag, not heuristics
Notes and Known Quirks
- If the bot service blips, dropdowns can briefly show stale state; the server indicator should make the connection status obvious
- On first join, you might see a one-frame mismatch before the lobby fully syncs—should be rare now, but we’re watching it
[screenshot: quick bot vs human team preview in a practice lobby at f45207d]
That’s it for today. If you notice bots showing up on the wrong side or the lobby status not lining up with what you’re seeing, let us know. Thanks for all the reports—super helpful for tightening this loop.