Devlog

Changelog

Last updated: 2026-04-18

A running record of what's changed in Dominion, most recent first. We aim to publish an entry every two to four weeks.

Daily Challenges

A new puzzle every day. Each daily challenge drops you into a pre-built scenario with a specific objective, a tick budget, and an AI opponent. Solve it fast enough and you earn gold, silver, or bronze.

  • New /daily page with intro card, countdown timer, and result screen.
  • Par-based scoring: gold, silver, and bronze tiers based on how fast you complete the objective.
  • Today's global leaderboard — top 100 solves ranked by time. Also available as a tab on the main leaderboard page.
  • Streak tracking with freeze tokens: play every day to build your streak. Every 10 days earns a freeze token (up to 3) that protects your streak if you miss a day.
  • Difficulty scales through the week: Monday is a warm-up, Saturday is an expert-level puzzle, Sunday is a longer special format.
  • Server-verified results: every solve is replayed on the server to prevent leaderboard manipulation.
  • Home page shows your daily status — whether you've completed today's challenge and what tier you earned.

Casual 1v1 matchmaking is live

Quick Match now pairs you with another real human. Click Quick Match, wait for an opponent, and the moment a second player queues the server drops both of you into the same match on opposite sides of the map.

  • Proper role assignment: one player spawns blue, the other spawns red, each on their own edge of the hex map.
  • Orders propagate between tabs within about a second. Move a unit on your side and your opponent sees it move on theirs.
  • If nobody queues within 30 seconds, you fall back to an instant AI match so you're never stuck staring at a spinner.
  • Ranked (Elo-rated) matchmaking is still off — it needs its own balance pass and server-side validation before it ships.

Profile rewrite: username editing and per-mode stats

The profile page now lets you set and change your username, and splits stats into a Matchmaking tab and an AI-practice tab. AI stomps were polluting win rate and lifetime counters in a way that made the leaderboard stats feel meaningless. Those two tabs are now independent, and only Matchmaking feeds the leaderboards.

Match insights, AI opponent improvements, texture atlas

Three things landed in the same week:

  • Post-match insight generator: a short human-readable summary of what decided the match.
  • AI opponent got smarter — better expansion heuristics, actual counter-building, less obvious rushes.
  • Building and unit rendering moved to a texture atlas for noticeably snappier repainting.

Peaks terrain and generation tuning

Added a fifth terrain type — peaks — that are impassable and create natural chokepoints. Tuned the simplex-noise map generator so iron and crystal clusters feel more like ridgelines and veins and less like scattered dots.

Core game mechanics

First playable: the hex grid, terrain, resource production, unit movement, combat resolution, and the ring advancement endgame all wired together. The shape of the game has been stable since this commit; everything after has been polish, balance, and surrounding systems.