A living hex-map campaign tracker for a tabletop wargaming community. Three factions fight over a 537-hex world, and every reported battle actually moves the campaign — shifting territory, feeding a resource economy, and unlocking research.
A one-tap tool auto-generates a battlefield, deployment zones, and a full terrain layout for a player's next game — scoring, board size, and terrain type all rolled from live campaign state.
Shareable as a text summary or a rendered PNG "battle card" so players can post their matchup straight to the community.
Players log in via Discord, fight over contested territory, and submit battle results for GM approval.
Approved results move territory and feed each faction's economy — metals, organics, food, energy, population.
Two parallel voting systems — construction and research — share one earned vote pool, funded by battle activity.
A custom rendering pipeline with per-hex clip-paths draws sprite-sheet terrain and building art onto 537 hexes — no mapping library.
A shared game-logic module is embedded identically across desktop and mobile HTML pages — avoiding a build step while keeping logic in sync.
Resource and voting costs are derived dynamically from current game state rather than stored — so nothing drifts out of sync.
Create/close events, mark hexes contested, place buildings, run the monthly reroll, post announcements, and preview the map as any player or guest.