Period: November 3, 2025 Total Commits: 15
Hey, here’s what we’ve been working on. Today was mostly about getting the new dual-board view solid and making sure visuals and inputs line up with what you’re seeing. A lot of the work is under the hood, but it should make matches feel smoother and more readable.
What’s New
- Same-Screen Dual-Board View
- You can now see both boards side-by-side. Your board on the right, your opponent’s on the left (mirrored so spawn lanes face each other).
- Each board has its own scene group, so grids, spawns, hover/ghosts, towers, and VFX are isolated and render where they belong.
- There’s a simple toggle to switch between minimap and same-screen modes.
- Gameplay impact: easier scouting and timing. You can track your send timing vs. their defenses without swapping views.
[screenshot: dual-board view with both castles visible at 9ef666f]
What Got Fixed
Multi-Board Rendering and Effects
- VFX on the correct board
- Particle systems and projectile trails are now per-board, not global. This stops fire, smoke, lightning, and explosions from bleeding across boards.
- Tower and projectile effect renderers are also per-board, so things like flamethrowers won’t duplicate or linger.
- Lightning visuals and cleanup
- Lightning lines attach to the right board and clean themselves up properly instead of hanging around.
- Roads and spawn icons
- Roads/spawns no longer jump between boards. Each board keeps its own meshes, so both show consistently in same-screen mode.
- Damage numbers and castle hits
- Numbers pop on the board where damage happens, not based on minion ownership. Castle hit effects (smoke, flash, shake) run per-board as well.
- Stars and death bursts
- Upgrade stars render once per board, and drone death particles trigger once per death instead of spamming.
[screenshot: damage numbers on both boards in same-screen mode at 204693a]
Input and Placement
- Clicking the board you’re looking at
- In minimap mode, clicks now select from the visible board, not the other one.
- In same-screen mode, the input system figures out which board you clicked based on layout.
- Spawn area checks
- Placement validation runs in local board space, so placing on the opponent’s board in battle works as expected.
- Removed an extra check that was blocking valid placements.
Visual Sync and Feel
- Lightning damage now matches the strike
- Removed a 240ms delay between the lightning effect and when damage applied. Damage is now instant to match the visual.
- This makes booster interactions (speed/gold/damage) feel snappier and more predictable during sends.
[screenshot: lightning strikes hitting instantly on minions at aaa359c]
Odds and Ends
- Blacksmith texture fix
- Corrected UV scaling so animations aren’t stretched or warped.
- Map loading after a second match
- Fixed a stuck “map already applied” state that caused empty maps when rejoining games.
- Level editor
- Resolved build errors to keep tools working.
[screenshot: flamethrower particles rendering on the correct board at 3d9752b]
Under the Hood
- Per-Board Architecture
- Particle managers, effect renderers, damage number renderers, and instanced meshes are all scoped per board. This avoids shared state bugs and keeps visuals deterministic.
- Coordinate System Cleanup
- A single layout manager now handles world/local conversions and mirroring. Input, effects, and UI use the same math, which removed a bunch of edge cases.
- Renderer Refactor
- The renderer no longer swaps a “current view” flag while drawing. Instead, each board renders with explicit context (team, groups, particle manager). Fewer surprises, easier to reason about.
That’s the day. Thanks for all the reports on visuals popping to the wrong side—those helped pinpoint the root causes. If you notice anything still rendering in the wrong place, especially during big send waves, ping us with a clip and we’ll dig in.