Period: October 25, 2025 Total Commits: 32
Hey, here’s what we’ve been working on today. A lot of combat logic got sharper, the UI is cleaner, and the new level editor made big strides. Nothing flashy, just steady improvements that make matches feel better and iteration faster.
What’s New
-
Minimap improvements
- Shows the opposite board from your current view and you can click it to swap sides.
- Repositioned to the bottom-right with better spacing and mobile-responsive sizing.
- Size targets 360×240px and hides debug counters by default.
- Practical impact: easier scouting without cluttering the main view.
[screenshot: updated UI with minimap bottom-right at ca21562]
-
Level editor milestones
- Foundation in place (React + Three.js + Zustand) with a 29×15 grid and an orthographic view.
- Entity placement with validation: castles (bounds/no overlap), towers (adjacency), minion spawns (spawn area).
- Real game sprites for towers, minions, and castles; selection highlights still work.
- Camera controls: scroll to zoom (10–40), right-click to pan, clamped margins, smooth interpolation.
- Wave 0 is now the initial state (gold/income/entities editable, cannot be deleted). Waves are 0-indexed.
- Toolbox shows the full real list of towers/minions, now sorted by cost and using icon sprites with consistent sizing and tooltips.
- One-click Test Map workflow: save the current map and launch a test route. Automatically uses URL param in cross-origin dev and localStorage in same-origin prod.
[screenshot: level editor with sprites and toolbox icons at bf42af9]
-
Campaign map authoring options
- Added unit availability fields (availableTowers/availableMinions) and an unlock menu config (enabled, totalSelections).
- This covers both pre-defined loadouts and player choice scenarios, with validation baked into the serializer/deserializer.
What Got Fixed
-
Combat and VFX
- Flamethrower particles no longer stop after a fixed duration; they run as long as the tower is firing.
- Volcano projectiles now rotate toward their actual travel direction (location-targeted), not the source minion.
- Ground-only AOE towers ignore flying units when choosing optimal target positions. Less wasted shots, more impact where it counts.
- Animation stutter on minions was cleaned up. Movement and animations now interpolate on the same accumulated game time for smooth 60 FPS visuals.
[screenshot: flamethrower focusing on clustered minions at 3095c2d]
-
UI/UX polish
- Minimap no longer doubles up audio. Sounds are disabled on the secondary renderer.
- Info panel and minimap swapped corners for better visibility and input ergonomics.
- Editor icon paths and castle textures were corrected; icons now render uniformly with proper cropping and padding.
Under the Hood
-
Beam targeting overhaul
- Beam-based directional towers now use explicit cardinal targeting and choose the direction that hits the most minions in a box-shaped lane.
- The system is config-driven (no hardcoded IDs), and selection runs through spatial-hash queries instead of scanning everything. Clearer behavior, better performance.
[screenshot: laser beam cutting through a lane in cardinal direction at db13d4b]
-
AOE targeting smarter logic
- Circular AOE towers score potential targets by total minions hit inside their radius and prefer closer ties. This runs on nearby sets via the spatial hash to keep it efficient.
-
Editor workflow and validation
- Test Map detection picks URL-embedded data first (for cross-origin dev), then falls back to localStorage (same-origin prod). Errors are handled for URL length and storage limits.
- Documentation updated across editor components with sprite loading behavior, texture caching, and troubleshooting notes.
- Level loading plan includes strict schema validation, sanitization, and resource limits (e.g., ~1 MB files, up to 100 waves/entities) to keep things safe and predictable.
-
Build and deployment
- Fixed a deployment script that was dropping two environment variables and causing noisy diffs after deploys.
Balance Notes
- Laser Beam
- Cost and damage both went up. It now pays for the utility it brings and hits harder once it’s set up. The directional rules also make it more readable in PvP so you can counterplay positioning.
Why these changes
- Directional and AOE targeting needed to match what players expect in a competitive PvP TD: consistent rules, readable results, and smart prioritization when the board gets crowded.
- The minimap/UI changes improve clarity without adding noise.
- The editor updates are about speed: faster iteration, real assets, and instant test loops reduce friction and help us ship better maps.
Thanks for the bug reports and feedback. Keep sending replays where targeting feels off or visuals desync—we used several of those cases to drive the fixes above.