StreamTanks v0.0.2 — Commander Admin, AI Bots, & Synchronized Terrain
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/adminfor 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
%clearleaderboardor delete a specific player record with%deleteplayer <user>. - Flexible Auto-Round: Run continuous rounds automatically (
%autoround <minutes>,-1for instant restart after match ends, or0to 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
/adminweb 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.gzorStreamTanks_linux_arm64.tar.gz - macOS:
StreamTanks_darwin_amd64.tar.gzorStreamTanks_darwin_arm64.tar.gz
Launch StreamTanks:
./StreamTanks -channel <your_twitch_channel> -addr :8102Open 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.