Skip to content

StreamTanks v0.0.2 — Commander Admin, AI Bots, & Synchronized Terrain

Choose a tag to compare

@github-actions github-actions released this 13 Sep 04:30

StreamTanks v0.0.2

StreamTanks v0.0.2 brings a massive set of features, gameplay enhancements, architecture upgrades, and streamer tools. This release introduces a dedicated web Commander Admin dashboard, an intelligent AI Bot fill system, synchronized multi-client destructible terrain, granular permissions, and major quality-of-life improvements.


🕹️ Highlights

1. Dedicated Commander Admin Dashboard (/admin)

  • Accessible at http://localhost:8102/admin for live match orchestration.
  • Match Controls: Start rounds, adjust input timer duration, toggle bouncy walls, schedule automated rounds, and tune terrain bounds on the fly.
  • Live Roster: Monitor active tanks, health, angles, power, and bot indicators in real-time.
  • Leaderboard Management: View persistent rankings with one-click player deletion and leaderboard wipe actions.
  • Cyberpunk dark UI with auto-reconnecting WebSocket synchronization.

2. AI Bot Fill & Intelligent Round Pacing

  • Automated Bot Fill: When starting a match with few stream viewers, StreamTanks can automatically populate remaining slots with bot tanks (%botfill on|off, %minplayers <N>, default: 5 players).
  • Dynamic Slot Priority: When viewers join via %join, bot tanks are culled/replaced so real humans always get priority.
  • Customizable Bot Points: Award configurable leaderboard points for destroying bot tanks (%botpoints <N>, default: 1 point; human victory awards 5 points). Bots are excluded from leaderboard rankings.
  • Smart Turn Truncation: When playing against bots, if humans were inactive in the prior round, the input countdown snaps to a brisk 10 seconds to keep stream action fast and engaging.
  • Authoritative Fallback: Safe action-phase timer ensures the match progresses seamlessly even if client rendering hangs.

3. Authoritative Multi-Client Terrain Synchronization

  • Server-authoritative heightmap generation ensures every connected OBS browser source renders the exact same battlefield layout.
  • Real-time crater deformation and terrain destruction stay synchronized across all overlays.
  • Configurable vertical terrain boundaries (%terrain <min%> <max%> and %terrain reset).
  • Ceiling and floor bounce support in bouncy mode for wild ricochet shots.

4. Streamer Permissions & Management Commands

  • Role-Based Permissions: Restrict game start and settings commands by Twitch chat role (%perm <start|config> <broadcaster|mod|vip|sub|all>). Defaults to broadcaster-only.
  • Leaderboard Management: Clear the entire leaderboard with %clearleaderboard or delete a specific player record with %deleteplayer <user>.
  • Flexible Auto-Round: Run continuous rounds automatically (%autoround <minutes>, -1 for instant restart after match ends, or 0 to disable).

5. Codebase Modernization & Architecture

  • TypeScript Migration: Overlay client fully migrated to TypeScript with strict type checking and bundled via esbuild.
  • Modular Go Backend: Monolithic code refactored into domain-separated packages (game.go, terrain.go, storage.go, ws.go, bot.go, types.go).
  • Robust Test Suite: 36 comprehensive Go tests covering command parsing, concurrency safety, bot lifecycles, and physics clamping.

📦 Closed Issues

  • #17: Synchronize map terrain and player positions across clients
  • #18: Dedicated /admin web dashboard with live command console
  • #19: Configurable min/max screen height percent for terrain
  • #20: Command to clear leaderboard from SQLite and connected overlays
  • #21: Command to delete individual player from leaderboard
  • #23: Award points per kill, fast-forward inactive players, and 10s minimum input window
  • #26: Broadcaster-only startgame and configuration permissions
  • #27: Clamp fire shot power to max 100 and angle to [0, 180]
  • #28: Bounce projectiles off ceiling and floor in bouncy mode, safe emote rendering
  • #29: Bot fill system with player replacement, bot points, and custom auto-round
  • #30: Streamline admin panel layout by removing redundant bottom console
  • #31: Award 5 points for human match victory and display AI defeat message on bot win
  • #33: Synchronize round timer and truncate inactivity window against bots

🚀 Getting Started

Download the appropriate binary for your platform from the release assets below:

  • Windows: StreamTanks_windows_amd64.zip
  • Linux: StreamTanks_linux_amd64.tar.gz or StreamTanks_linux_arm64.tar.gz
  • macOS: StreamTanks_darwin_amd64.tar.gz or StreamTanks_darwin_arm64.tar.gz

Launch StreamTanks:

./StreamTanks -channel <your_twitch_channel> -addr :8102

Open the overlay in OBS Studio browser source at http://localhost:8102 (1920x1080) and manage your match via the admin console at http://localhost:8102/admin.