Changelog

All notable changes to Gladibot are documented in this file.


[1.0.0] -- 2026-04-11 -- Genesis

The Arena Is Born

The first public release of Gladibot -- a persistent AI battle colosseum on Solana.

Added

Arena Engine

  • Persistent arena simulation running 24/7 (no start/end, always-on)
  • Server tick loop at 10 ticks/second (100ms intervals)
  • Arena bounds with spawn point selection
  • Collision detection: agent-agent, agent-trap, agent-item

AI Combat Brain

  • Finite state machine: roam, chase, attack, block, dodge, flee, chat, dead
  • Persona weight system: aggression, caution, greed, chattiness
  • 5 built-in AI personas: Berserker, Tactician, Tank, Assassin, Wildcard
  • Custom persona text parsed into combat behavior modifiers
  • Target selection: closest enemy, weakest target, highest bounty
  • Persona-driven trash talk with 5-10 lines per combat event

NPC Creeps

  • Auto-spawn every 30 seconds when arena has fewer than 3 entities
  • 35% of average player agent stats (cannon fodder)
  • Simple AI: roam, weak attack, no block/dodge, flee at 20% HP
  • +20 XP on kill, 5% max HP heal to killer
  • Max 8 creeps alive at any time

Arena Traps

  • 3 trap types: Fire Zone (8 DPS, 80px), Spike Field (15 burst, 60px), Poison Gas (5 DPS + 40% slow, 100px)
  • Spawn every 20 seconds, last 8 seconds each
  • Max 3 active traps simultaneously
  • 1-second visual shimmer warning before activation
  • Agents auto-detect and flee from trap zones

Leveling System

  • 100 XP per level, max level 50
  • Kill creep = +20 XP, kill player agent = +50 XP
  • Stat gains per level: +5 HP, +0.5 ATK, +0.3 DEF
  • Level up: full HP restore, sound effect, visual flash, chat announcement
  • Free users lose 1 level on death; token holders keep level

Weapon System

  • 8 weapon classes: Sword, Axe, Spear, Shield+, Daggers, Hammer, Trident, Fists
  • 5 rarity tiers: Common, Uncommon, Rare, Epic, Legendary
  • Weapons drop on death (free users), persist on ground for 60 seconds
  • Any agent can pick up ground weapons

Hybrid Respawn

  • Free users: 5-minute timer, manual click, lose 1 level, drop weapon
  • Token holders: instant respawn, keep level, keep weapon
  • 2-second invincibility on respawn

WebSocket Multiplayer

  • Real-time WebSocket server on port 3849
  • Full arena state broadcast 10 times per second
  • All connected users see the same arena simultaneously
  • Client-to-server: deploy, respawn, chat, taunt, ping
  • Server-to-client: state, deployed, respawned, chat, emoji, pong
  • Auto-reconnect with exponential backoff

Frontend

  • Next.js app with 3-tab interface: Arena, Deploy Agent, Leaderboard
  • HTML5 Canvas renderer: geometric chibi gladiators with colored helmets
  • Health bars, damage numbers, level indicators, speech bubbles
  • Trap zone rendering (fire glow, spike triangles, poison fog)
  • Death animation, deploy animation, level up animation
  • Emoji taunt rendering (large floating emoji on canvas)
  • Solana wallet adapter (Phantom + Solflare)
  • Deploy form: name + persona + auto-detected tier display
  • Connection status indicator (CONNECTED / RECONNECTING)

Sound Engine

  • Fully procedural via Web Audio API (zero audio files)
  • Combat sounds: hit, critical hit, kill, block, dodge
  • Event sounds: deploy, level up, respawn
  • Trap sounds: fire whoosh, spike clang, poison hiss
  • 12 emoji taunt sounds: punch, gong, flame, cackle, trumpet, roar, slash, whisper, sparkle, explosion, chime, whoosh

Database

  • Supabase persistence: gladibot_agents table with full agent state
  • Batch upsert every 30 seconds
  • Agents survive server restarts
  • Leaderboard queries (sort by level, sort by kills)

Token Integration

  • $GLAD tier system: Free, Bronze (1%), Silver (2%), Gold (5%)
  • Wallet balance check for tier assignment
  • Token-gated: weapon choice, instant respawn, agent slots

Landing Page

  • Full landing page at gladibot.com
  • Dark arena aesthetic with crimson + amber accents
  • Animated arena preview
  • Tier comparison, tokenomics, roadmap, FAQ sections

"Are you not entertained?"