Skip to content

StreamTanks v0.3.0 — Scenario Lab, Custom Neon Palettes & Multi-Framerate Physics Parity

Choose a tag to compare

@github-actions github-actions released this 20 Sep 20:46
· 6 commits to main since this release

StreamTanks v0.3.0 is a major milestone release delivering deep aesthetic customization for streamers, critical multi-framerate physics and crater parity, automated match pacing, and a brand new developer/QA toolchain: Scenario Lab.


🌟 What's New in v0.3.0

1. 🎨 Customizable Neon Battlefield Colors (%terraincolor & %tankcolor)

Make the StreamTanks overlay uniquely match your stream's aesthetic and branding:

  • Terrain Glow Customization (%terraincolor <hex|preset>): Change the neon outline glow and ambient terrain fill. Supports built-in color presets (cyan, green, purple, orange, yellow, red, white) or any custom hex code (e.g. %terraincolor #ff0055). Reset anytime with %terraincolor reset.
  • Tank Chassis & Tread Glow (%tankcolor <hex|preset>): Fully customize the neon highlight glow of tanks on the battlefield with matching presets and custom hex support (%tankcolor reset).

2. 🧗 Tactical Terrain Climbing (%terrainclimb on|off)

Control how tanks navigate rugged landscapes:

  • Configure whether tanks can scale steep cliffs, sheer drops, and crater walls or get realistically blocked by insurmountable vertical slopes.
  • When set to off (default), tanks must strategically blast away crater edges or maneuver through gentle terrain slopes.

3. ⏱️ Automated Match Flow & Auto-Round Improvements

  • Zero-Wait Auto-Round: Auto-round scheduling now dynamically triggers and re-arms when the server boots, when idle players join the lobby, and whenever settings change.
  • Instant Lobby Awakening: Viewers joining an empty or idle lobby will immediately wake the battlefield without needing manual streamer intervention.

4. 🎛️ Streamlined Commander Admin Console (/admin)

  • Zero-Config Twitch Extension Setup: Simplified the Twitch Extension card in the Commander Dashboard, removing manual C&C URL entry so streamers can link their channels effortlessly.
  • Real-time settings synchronization, match rollover controls, and instant kick/delete moderation tools.

5. 🎯 Multi-Framerate Physics Parity & Ground-Truth Crater Synchronization

  • Framerate Parity: Resolved discrete Euler integration differences between the Go server (60Hz ticker) and client displays running at high refresh rates (144Hz, 120Hz, 60Hz).
  • Surface Clamping: Crater centers are now clamped directly to the terrain surface (groundY := getTerrainHeight(...)) instead of underground penetration points. Go backend craters and browser overlay craters now match pixel-for-pixel regardless of monitor refresh rate.
  • Deterministic Blast Ordering: Shell detonations and player kill order now execute in deterministic alphabetical sequence, eliminating race conditions when multiple artillery rounds explode on the exact same frame.
  • Parity Verified: 5,000 randomized multi-framerate simulations verified 0.0% terrain drift and 0.0% kill mismatch.

6. 🔬 Scenario Lab & Visual Frame Replayer (npm run lab)

A brand new standalone differential physics testbench and visual replay suite:

  • Visual Replayer (http://localhost:8105): 1920x1080 canvas replaying server vs client trajectories frame-by-frame with timeline scrubbing, ghost overlays, and variable playback speeds (0.1x to 2x).
  • Scenario Library with Pixel Diff Sorting: Scenarios are automatically sorted by visual discrepancy (MaxPixelDiff descending) with glowing neon badges (Δ X.Xpx) highlighting terrain and position drift.
  • Persistent V8 / Node.js Worker Pool: High-performance multi-core fuzzer scaled across all CPU cores (runtime.GOMAXPROCS(0)) running hundreds of scenarios per second without child process startup latency.
  • Flakiness & Parity Audit CLI: Run go run ./cmd/scenariolab -replay <scenario.json> -runs 100 to automatically audit simulation determinism and calculate statistical failure rates across iterations.

7. 📚 Official Documentation Portal

  • Launched official GitHub Pages documentation portal featuring:
    • Streamer Setup & OBS Configuration Guide
    • Viewer & Player Chat Command Guide
    • Full Command Reference & Permission Matrix
    • Embedded 24/7 Live Stream Showcase

📦 Closed Issues & Commits

  • #80: Prevent tanks from climbing steep walls and crater edges (%terrainclimb)
  • #81: Customizable terrain color with presets and hex support (%terraincolor)
  • #82: Customizable tank color with presets and hex support (%tankcolor)
  • #83: Trigger auto-round on server startup, idle player join, and setting changes
  • #84: Scenario Lab differential fuzzer, visual replayer, and crater parity reconciliation
  • #79: Simplify Admin Console Twitch Extension card and remove C&C URL input
  • #78: Remove st_cc_server from GoReleaser release archives
  • #35: Replace real-time sleeps in tests with a mock Clock interface

🚀 Getting Started

For Streamers (OBS Studio)

  1. Download StreamTanks_windows_amd64.zip (or your OS archive) from the release assets below.
  2. Run the executable:
    ./StreamTanks -channel <your_twitch_channel> -addr :8102
  3. Add http://localhost:8102 as an OBS Browser Source (1920x1080).
  4. Access your Commander Dashboard at http://localhost:8102/admin.

For Twitch Extension Deployment

Download extension.zip from the release assets below and upload it directly to your Twitch Developer Console version assets.

For Developers & Contributors

Launch Scenario Lab to test and replay physics scenarios:

npm run lab

Or run the high-speed differential fuzzer:

npm run fuzz