Period: September 1, 2025 Total Commits: 19
Hey all — quick rundown of what shipped today. We added a new Laser Beam tower, built a proper spectator mode, tightened up bot defense logic, and cleaned up a bunch of networking and UI edges. It’s getting there.
What’s New
- Laser Beam tower (directional box AOE)
- Shoots straight lines in cardinal directions only (N/S/E/W)
- Hits a 2x1 tile area (2 tiles range, 1 tile width) with continuous damage
- 36 rotation frames for smooth tracking; attacks “snap” at cardinals so what you see is what you hit
- Early balance: cost 150, damage 240 — numbers will move as we see more games
- Plays well setting lanes for flamers and crossfires; think “lane denial” more than single-target delete
[screenshot: Laser Beam tower carving a lane at 1a6a6da]
- Spectator mode
- Shows a clear SPECTATOR MODE indicator
- No unit selection UI and no “(You)” label on teams
- Skips the initial selection modal so you can get right to watching
- HUD now adapts: 2x2 grid for 3–4 players, side‑by‑side for 2 players
[screenshot: spectator HUD with 2x2 layout at 9753e85]
- Keyboard controls for faster play
- WASD to pan
- Q to cycle minions, E to cycle towers
- R to flip between Team A and Team B boards
- Cuts down on UI clicks and makes quick swaps smoother
[screenshot: quick-select UI with highlight states at b5db63e]
- Match flow
- The game now ends correctly when the last castle is destroyed. Clean finish, no lingering states.
What Got Fixed
-
Bots: income and defense logic
- Fixed bots always seeing 1.0/s income; they now load minion configs correctly and track income increases
- Normalized addresses to lowercase so gold/income Map lookups stop failing
- Stopped bots from placing at middle/back castles too early
- Front castles get highest priority until they’re actually down
- Middle/Back only get defense boosts once front is destroyed
- Dead castles are skipped entirely when picking positions
- Resolved a debug crash (“minionThreat is not defined”) by moving declarations outside conditionals
-
Bot defense prioritization (smarter choices under pressure)
- Prioritizes undefended castles, especially weak left sides
- Accounts for current damage, defender count, incoming minion health (weighted by distance), and enemy spawns on the same lane
- Adds X‑position ranges for middle (16–22) and back (24–30) so defenders anchor correctly
-
Combat/VFX polish
- Laser beam rotation now renders correctly and only fires at exact cardinals
- Laser animation plays while the projectile is active; beam length tuned so it actually reaches targets
- Flamethrower flame stays attached to its tower as it rotates
[screenshot: laser beam rotation and spawn offsets fixed at 380365f]
-
UI/UX
- Spectators don’t see the player-only UI and labels
- Placement validation updates reliably when switching views with R
-
Stability and cleanup
- Trimmed noisy debug logs from the core sim while keeping useful bot logs
What’s Still Broken
- Laser numbers are first pass. Expect tweaks to cost, damage, and how it scales with buffs.
- Bot defense is better but still reactive; edge cases with simultaneous castle pressure can look indecisive.
- Spectator mode is functional but minimal — camera tools and player focus presets are on the list.
- There may be rare placement validation hiccups when swapping views quickly; we’re watching for repros.
Under the Hood
-
Smarter bot planning
- Goal-based saving/spending so bots don’t blow gold on low-impact towers
- Pathfinding validation prevents accidental castle blockages
- Tracks enemy spawn lanes to position defenses where it matters
- Health scaling for minions moved to config: HEALTH_SCALING_PER_PLAYER_LEVEL = 1.2 for easier tuning
-
Network and proxy work (alpha environment)
- Added HTTPS with strict TLS settings and HTTP/2, plus clean redirects
- Split the nginx proxy from the backend for independent control
- Fixed CORS and wired proxies for RPC, autofund, wiki, and a proxied bot manager endpoint
- Wiki server now binds correctly and routes through the proxy
-
Dev workflow and ops
- Background commands for bot manager and wiki with log helpers
- Centralized pre‑funded test accounts (5 accounts, 10,000 ETH each) so configs are consistent across environments
- Minor asset tweaks (zotif minion size; flamer damage) and FixedPoint utility additions
What’s Next
- Balance pass on the Laser Beam and broader “lane control” tools
- More spectator QoL: player focus, timeline scrub basics, and better camera presets
- Continued bot tuning around multi-lane pressure and mid/back handoff timing
- Performance profiling on large beam+flame scenarios
- More docs on the wiki and clearer HUD states during heavy action
Try It Out
If you want to poke at this build, head to https://alpha.towerstorm.com. It’s a work-in-progress, so things will wobble. Keyboard controls are on (WASD, Q/E, R), spectator mode is available, and bots are a decent sparring partner.
Wiki’s up at http://wiki.towerstorm.com with setup notes and tips. If you hit something weird, tell us what you were doing — the bot logs and your reports help a lot.