Period: October 20, 2025 Total Commits: 26
Hey, here’s what we’ve been working on. Today’s update leans into combat feel: syncing damage to animations, adding big readability wins for towers, and cleaning up audio so fights sound right. No balance numbers this time—just making what’s there feel better and more reliable.
What’s New
-
Laser Beam Tower
- Charge-up and beam phases are now visually and mechanically aligned. Damage lands at 0.8s into the burst to match the charge-up, instead of instantly.
- New purple beam particle system at MEDIUM+ quality: a short charge, then a wide continuous blast with proper fade-out when it ends.
- Prevents duplicate damage/VFX during the beam’s lifetime.
- Gameplay impact: more telegraphed, predictable burst windows for counterplay.
-
God of Justice (God-Ray)
- Damage now hits 0.3s after the effect begins, matching the expanding ring.
- Added a dramatic yellow/orange shockwave ring that expands across the arena. It keeps the plane flat and renders behind the projectile for depth clarity.
- Gameplay impact: you feel the windup, see the ring, then the hit—cleaner reads in crowded fights.
-
Volcano Tower (formerly “Fire”)
- The tower is now consistently named “Volcano” across UI and configs.
- New fireball VFX: brighter yellow-orange head, orange/red trail separation for readability, and a burst of hot embers on impact.
- Projectile spawn offsets tuned so the shot lines up with the barrel.
-
Flamethrower
- New continuous flame particle stream at MEDIUM+ quality (sprite fallback at LOW).
- Fixed emission direction and widened the cone. Flames are larger, denser, and spread properly instead of converging.
- Gameplay impact: range and angle are much clearer, which helps spacing in PvP.
-
Laser Turret + Lightning Readability
- Laser turret got a three-phase setup: muzzle flash on fire, ambient energy while tracking, and a heat vent puff when it stops firing.
- Lightning visuals are thicker and darker-saturated to avoid washout with additive blending.
-
Castle Feedback
- New castle damage package: bottom smoke puffs, a quick red flash, and subtle screen shake when a hit lands.
- Destruction sequence: short shake → long sink with clipping → rubble appears with a smooth fade-in. Skips spam during resync.
- [screenshot: castle mid-sink with rubble fade-in at b3618e7]
-
Particle Quality Settings
- Options now include a Video tab with a particle quality slider (Off/Low/Medium/High/All).
- Effects have priorities; critical gameplay feedback remains visible even at lower settings. Settings persist locally.
-
Status Readability
- Slowed minions now get a blue tint and their animation speed matches the slow multiplier. Clear, instant feedback.
What Got Fixed
-
Damage/VFX Sync
- Projectiles now apply damage on the same frame their explosion VFX appears. No more early explosions before impact.
- Attached projectiles (like the laser beam) respect damage delays without double-triggering.
-
Audio Stuttering
- Migrated to the Web Audio API. Effects and music now render on the browser’s audio thread with smooth fades and proper mixing. No more stutter under load.
- Added small pitch/volume randomization to avoid repetitive “samey” SFX.
-
Castle Effects
- Damage effects only trigger on the correct side of the board.
- Particle lifetimes, z-order, and flash color are protected properly so visuals aren’t cut off or overwritten.
-
VFX Caching
- Fixed sprite sheet caching so multiple VFX types can share an image without breaking animation frames.
-
Resync Safety
- Particle systems and beam timeouts are guarded so nothing runs forever when reconnecting or replaying.
- During initial load and resync, non-essential particles are skipped to protect performance.
Under the Hood
-
Particle System Refactor
- Moved to a class-based particle effect architecture with a shared base class and specialized effect types (trails, impacts, tower effects).
- Removed the legacy wrapper layer. Cleaner API, less duplication, easier to add new effects, and faster to reason about.
- Dedicated renderers now handle tower and projectile effects consistently.
-
Rendering and Types
- Introduced a reliable “just fired” flag for towers to time muzzle flashes.
- Bullet spawn offsets now support multi-barrel setups cleanly.
- Timing across systems uses deterministic animation clocks for consistent outcomes.
-
UI/UX
- Settings menu reorganized into Audio and Video tabs for clarity. Particle quality lives in Video.
Notes on PvP Impact
- Attacks that telegraph (laser, god-ray, flamethrower) are easier to read. That helps counterplay and positioning in mirror scrambles.
- Clear slow tints and synced animation speeds reduce confusion during focus fires.
- Audio cleanup keeps large battles from turning into a stutter-fest, which helps fairness on slower machines.
That’s it for today. Lots of feel and clarity work, a handful of robustness fixes, and groundwork that should make future effects faster to build. If anything looks off—like effects not appearing at your quality setting—send a clip and we’ll dig in.