MtgBattles / Development log
Changelog
Same packs. Better experiments. A record of what changed in the drafts, the decks, and the machinery that plays the games.
Latest release
Daily Draft & standings
Draft feedback and a rolling 24-hour leaderboard
After you submit your deck
- Rate the draft’s fun and difficulty, predict your benchmark win rate while games are running, or answer a card question about a tough pick or cut. Leave a note with draft-themed emoji.
- The new Commentary tab collects notes, card answers, and group feedback from players who submitted decks for that challenge.
Standings & profiles
- Leaderboards now open to Last 24 hours. One completed game in the shared field within that window and before the ranking deadline qualifies your deck. The board ranks players by the average Battle Rating of their qualifying decks and includes the Mirror Drafter for comparison.
- Browse the last 7 days, last 28 days, and all-time boards. In draft results, Today’s players shows placement, rating ranges, and game records. Player profiles put recent ranked drafts alongside their standings.
Simulation scheduling
- When the queue backs up, players take turns across Arena, draft pods, and benchmarks. Multiple submissions share one player’s turn.
- Keep Forge runner warnings readable in the shared Windows event log by sampling error output and summarizing extra lines.
Earlier release
Drafts & reliability
Draft retries and faster page loads
- Retry the same draft if its start form needs a refresh. In draft results, a pack-by-pack timeline highlights where players made different choices from the same pack.
- Allow administrators to resume a pod stopped by simulation failures from its saved checkpoint, keeping completed games and standings.
- Speed up Lab campaign pages, deck profiles, and the Arena lookup for the rating just before the chart window.
- Recover recently finished games after a runner restarts. Fix a race that could cause a runner to miss a worker-count change.
Earlier release
Daily Draft & simulations
A clearer look at your draft and its games
Daily Draft
- Results open on The draft, where you can explore picks, finished builds, and benchmark decks. Your pod shows pod placement, and Today’s players shows the wider field.
- Follow recent game activity, benchmark progress, and wins–losses–draws as games finish. Open your first-game replay from Recent activity when it’s ready.
- Keep the cards you’ve already drafted visible while choosing your next pick.
Performance & reliability
- Speed up Arena charts and standings by reusing recent stats and chart history. Deck profiles and draft pages also load less data.
- Prevent a database deadlock between pod and ranking results. If a deadlock still occurs while saving a game, retry the report safely.
- Give each Forge game a single ten-minute limit, with the full game clock available for hard decisions.
Earlier release
Performance & reliability
Lighter charts. More reliable saves.
This update focuses on the busy parts of the Arena: loading rating history, changing decks while games are running, and serving card images.
Arena performance
- Bound the rating chart to a 14-day window. Keep the first, last, minimum, and maximum observations in each two-hour interval, plus the boundary and current-rating anchors, to reduce chart payloads while preserving the shape of the history.
- Stream the visible history instead of loading a deck’s entire rating history into memory. Use an indexed lookup for the point before the window.
- Pause chart and standings polling in hidden tabs, then refresh when you return. Reuse the short-lived total-game count between Arena requests.
Deck saves under load
- Reduce contention between deck changes and match scheduling with consistent league-lock ordering and narrower write transactions.
- Retry a rolled-back MySQL deadlock up to three total attempts. If the deck is still busy, return a retryable response and keep the builder’s local recovery copy.
A record of the changes
- Add this changelog at
/changelog, with recent release history and a link in Resources.
Card images
- Serve cached card images and mana symbols without consuming visitor request quotas or recording visitor activity for each image.
- Pace new Scryfall downloads through a shared throttle, with a default 200-millisecond minimum interval. Honor upstream retry delays when Scryfall asks the site to slow down.
Earlier release
Through 55d1ef2
Steadier ratings. A home for every version.
More stable rating estimates, an explicit daily ranking deadline, and a deck profile that brings the whole family together.
Ratings & daily rankings
- Stabilized the Bayesian rating fitter with a coupled Newton step and likelihood backtracking, correcting cases where the numerical fit produced misleading ratings.
- Added the same stable solver to blind optimizer model v3. Existing experiments pinned to v1 or v2 retain their original behavior and replay fingerprints.
- Stored an explicit midnight-Pacific deadline for daily rankings. Corrected affected open challenges and derived ratings while retaining their recorded games and rating history.
Deck profiles
- Made the deck-family profile the home for every version: version cards, performance, decklists, results, and comparisons share one page.
- Kept current-version selections intact, with keyboard navigation, narrow-screen layouts, and a usable fallback when JavaScript is unavailable.
Released
Through a8282c6
One deck, more ways to test it.
Deck versions and league enrollment make it easier to follow an idea through multiple builds and fields.
Versions & leagues
- Added version labels, Featured selections, private test notes, rating history, card-change comparisons, and shared-opponent results.
- Added multi-league Arena enrollment at the deck-family level and grouped contenders by family. Made the Eternal Central 93/94 ruleset explicit throughout the Arena and optimizer.
- Added rolling 24-hour Arena activity and recent Daily Draft activity on the homepage. Enriched Forge exports with deck metadata and restored original card artwork without changing the pinned optimization catalog.
Games keep moving
- Prioritized draft pod placement ahead of benchmark games and preserved cancellation budgets. Resumed stalled pods with their saved decks and completed benchmark results intact.
- Scoped calibration reads to the relevant tournaments and fixed a deadlock between version saves and match scheduling.
Released
Through db77047
Watch the games. Take the decks with you.
Spectator replays, portable draft pods, and more of your progress visible around the site.
Replays & Forge
- Added spectator replays and Forge deck exports, plus versioned
.poddraft-pod exports and a developer example of the format. - Kept existing replays readable through the replay-storage update and fixed the featured draft button on short phone screens.
Around the site
- Reorganized navigation into Drafts, Arena, Decks, and Resources. Added public sitewide statistics and expanded administrator activity reporting.
- Added painted achievements, an earned-achievements collection, and hidden shared Gems. Achievement artwork keeps its original proportions.
- Made draft results show active opponents and refresh their progress as games finish.
Released
Through 73df2fe
Players behind the decks.
Profiles, standings, and a live view of the games connect a daily draft to the people playing it.
Profiles & activity
- Added player profiles, favorite-card portraits, earned achievements, deck-creator attribution, and weekly and monthly draft standings.
- Added the Live Activity board with match details and player attribution. Split results progress into your pod’s placement and the wider field’s ranking.
At the draft table
- Refined desktop and mobile picking, the deck builder layout, and the draft archive. Added Pack It Up draft sounds.
- Added the constructed builder’s Add Lands control and seven-day expiry for unfinished drafts.
Released
Through e1d43e0
A shorter path to your first pick.
Signup goes straight to registration, and desktop drafting gets its quick pick gesture back.
- The header’s Sign up link and legacy registration routes now open the shared Accounts registration form directly. Nested sign-in return links preserve the original safe local destination.
- Restored desktop double-click picking through the normal server validation. Multi-card drafts still require a complete selection; phones retain inspection and explicit confirmation.
Released
Through 9dbfedf
Clearer results, safer draft workspaces.
A clearer explanation of the experiment, with better boundaries around saved drafts and public deck names.
- Explained Daily Draft results in plainer language, unified rating and results vocabulary, and kept the live record consistent with the displayed wins–losses–draws order.
- Isolated saved draft workspaces and removed draft pools and builds that had been exposed through browser storage.
- Added moderation for public deck names through the shared moderation service and administrator tools for the persistent Scryfall image cache.