<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>GameDavinci — blog</title>
    <link>https://www.gamedavinci.com/blog/</link>
    <description>Notes from the GameDavinci studio: how the games are built, what we learned shipping them, and what is coming next.</description>
    <language>en</language>
    <lastBuildDate>Sat, 29 Aug 2026 16:24:27 GMT</lastBuildDate>
    <atom:link href="https://www.gamedavinci.com/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Fruit Sat Perfectly Still Carrying 31.36 Units of Downward Velocity</title>
      <link>https://www.gamedavinci.com/blog/the-order-of-a-physics-step/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/the-order-of-a-physics-step/</guid>
      <description>Melon Drop is our first game with resting contacts — fruit that piles up and stays piled. Getting it to settle took six changes, and the bug underneath them was an ordering mistake: the position-correction pass ran before positions were integrated, so it separated bodies that were touching, the next frame found no contact, and gravity was never cancelled.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>We Shipped an Embed Channel Nobody Could Reach</title>
      <link>https://www.gamedavinci.com/blog/a-shipped-channel-nobody-can-reach/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/a-shipped-channel-nobody-can-reach/</guid>
      <description>Anyone can put our games on their own site. The route worked, the snippet worked, framing worked. And one grep for who links to it returned zero hits outside the embed pages themselves, so every embed had to be preceded by an email from us. A channel only an email can reach is not a channel.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>38 of Our Games Skipped the Shared Layer, and They Are the Same 38 That Looked Poor</title>
      <link>https://www.gamedavinci.com/blog/the-games-that-skipped-the-shared-layer/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/the-games-that-skipped-the-shared-layer/</guid>
      <description>A player told us our games UI was poor. Rather than start a redesign, we counted: 28 of 81 bundles draw with zero gradients, 16 are under 700 lines, and 38 never load the shared art layer — and they are almost exactly the same 38. The shared layer already existed. The games that most needed it are the ones that skipped it.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Two Places That Knew the Same Thing, and Neither Was Wrong</title>
      <link>https://www.gamedavinci.com/blog/derive-once-or-it-drifts/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/derive-once-or-it-drifts/</guid>
      <description>Bubble Shooter shipped two instances of the same bug class in one game. A row&apos;s parity was stored and also recomputed from its index. The aim guide traced the shot and the shot re-integrated its own flight. Neither computation was wrong on its own, and neither failure ever threw — because a wrong cell is still a legal cell.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Our Golf Game Was Unloseable and Nine Tests Said It Was Fine</title>
      <link>https://www.gamedavinci.com/blog/a-prover-blind-to-the-live-path/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/a-prover-blind-to-the-live-path/</guid>
      <description>Fairway proves each hole clearable at or under par before it deals it. It shipped four separate verification seams, and every one of them replayed the shot through a helper while the player&apos;s ball ran through a different function. Nothing asserted the two agreed — so deleting the stroke counter from the real game left all nine tests green.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Three Ways a Test Suite Passes With the Rule Deleted</title>
      <link>https://www.gamedavinci.com/blog/three-ways-a-suite-passes-with-the-rule-deleted/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/three-ways-a-suite-passes-with-the-rule-deleted/</guid>
      <description>We shipped three games in one batch and sabotaged each of their suites by deleting the rule the game depends on. All three stayed green, by three completely different mechanisms: the assertion tested a helper instead of the game, a second cause produced the same outcome, and one test inherited an environment where the bug is invisible.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>We Shipped an Arena Where Perfect Play Lost 23 Times Out of 24</title>
      <link>https://www.gamedavinci.com/blog/measure-the-cause-of-death/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/measure-the-cause-of-death/</guid>
      <description>Inkfield&apos;s fairness assertions all passed while an attentive player making zero mistakes died 23 rounds out of 24. The death rate alone said only &quot;this is hard&quot;. Splitting it by cause — edge 0, self 0, rival 23 — named the problem in one line, and the fix was arithmetic rather than tuning.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Prove the Game Beatable Without the Parts You Called Optional</title>
      <link>https://www.gamedavinci.com/blog/prove-a-floor-not-a-ceiling/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/prove-a-floor-not-a-ceiling/</guid>
      <description>Kingsroad&apos;s reference build never constructs a Barracks and never collects a gold crate. That is deliberate: it turns the guarantee from &quot;beatable if you play well&quot; into &quot;beatable even if you ignore both of these&quot;, and it converts two mechanics from hopefully-balanced into provably-upside. The exclusion is not a comment. It is two assertions.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Every Repair Rung Fired at Once, So None of Them Was Aimed</title>
      <link>https://www.gamedavinci.com/blog/repair-the-defect-not-the-difficulty/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/repair-the-defect-not-the-difficulty/</guid>
      <description>Kingsroad proves every map beatable before showing it to you, with a three-rung ladder that repairs a map that fails. Then we read the diagnostics: repairs 6, trims 12, health scaled to 0.43. Every rung firing on the same map means none of them is aimed at the actual problem — and the bottom rung was hiding a generator bug by making the game 57% easier.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Don&apos;t Resample. Kill the Rival Solution.</title>
      <link>https://www.gamedavinci.com/blog/kill-the-rival-solution/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/kill-the-rival-solution/</guid>
      <description>Star Grid&apos;s generator threw away 99.5% of the boards it made, hunting for one with a unique solution. Instead of generating more boards, we started repairing the ones we had: enumerate the rival solution, then make a single edit that provably kills the rival and provably cannot kill the answer. Yield went from 0.5% to 100%, at 2.9 to 29.8 milliseconds a board.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Our Solver Said Par 7. Real Players Needed Thirty Shots.</title>
      <link>https://www.gamedavinci.com/blog/a-solver-that-doesnt-play-your-game/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/a-solver-that-doesnt-play-your-game/</guid>
      <description>Building difficulty bands for Bubble Shooter, we used a reference solver to estimate par. It reported par 7 for boards a real player needs thirty-odd shots to clear, and a shot budget built on that number would have made the game unwinnable. The solver was not buggy. It was playing a different game — one where you get to choose which colour comes next.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>22 Seconds to 9 Milliseconds, by Making the Puzzle Easier to Prove</title>
      <link>https://www.gamedavinci.com/blog/cap-the-generator-not-the-solver/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/cap-the-generator-not-the-solver/</guid>
      <description>We wanted Tile Order to show a proven fewest-moves number, not a guess. On a 4x4 that meant proving optimality, and a fully shuffled board cost up to 22 seconds to prove — unusable in a browser. The fix was not a faster solver. It was generating boards the solver could afford to prove, and being honest in the copy about what that costs.</description>
      <pubDate>Sat, 29 Aug 2026 16:23:24 GMT</pubDate>
    </item>
    <item>
      <title>Calm Puzzles and Hard Puzzles: How to Tell Before You Start</title>
      <link>https://www.gamedavinci.com/blog/calm-puzzles-and-hard-puzzles/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/calm-puzzles-and-hard-puzzles/</guid>
      <description>Some puzzle genres are structurally incapable of being hard — not because the designer went easy on you, but because of the rule that defines them. There is a one-question test that sorts them, we ran it across our whole catalogue, and it explains why a game marked &quot;Expert&quot; can still feel like nothing. Here is which of ours are which.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>A Beginner&apos;s Route Through the Classic Board Games</title>
      <link>https://www.gamedavinci.com/blog/beginners-route-through-classic-board-games/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/beginners-route-through-classic-board-games/</guid>
      <description>Most people learn board games in whatever order a relative happened to own them, which is why so many bounce off chess. There is a better order — each game teaching one idea the next one assumes you already have. Six games, six ideas, all playable free against the computer with the rules a click away.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>Five Minutes or an Hour: Picking a Game for the Time You Actually Have</title>
      <link>https://www.gamedavinci.com/blog/five-minutes-or-an-hour/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/five-minutes-or-an-hour/</guid>
      <description>Most game lists ignore the only constraint that actually decides what you open: how long you have. A game you can finish in three minutes is frustrating for an hour, and a game worth an hour is the wrong thing to start on a station platform. Four time budgets, and what makes a game fit each one.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>Puzzles for a Long Flight: How to Take These Games Offline</title>
      <link>https://www.gamedavinci.com/blog/puzzles-for-a-long-flight/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/puzzles-for-a-long-flight/</guid>
      <description>Aeroplane wifi is either expensive or fictional. These games are built as a progressive web app, so adding the site to your home screen before you leave means they keep working with no connection at all. Here is how to do it, which puzzles suit a long flight, and the one thing that does not work offline.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>Games to Play When You&apos;re Bored (Sorted by What Kind of Bored)</title>
      <link>https://www.gamedavinci.com/blog/games-to-play-when-youre-bored/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/games-to-play-when-youre-bored/</guid>
      <description>&quot;I&apos;m bored&quot; covers at least four different feelings, and the game that fixes one of them makes another worse. Restless bored wants something fast. Fidgety bored wants something with no lose state. Stuck-waiting bored wants something you can abandon mid-move. Here is which of ours to open for each.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>What Breaks When You Put 70 Browser Games in an iframe on a Phone</title>
      <link>https://www.gamedavinci.com/blog/what-breaks-when-you-frame-a-game-on-a-phone/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/what-breaks-when-you-frame-a-game-on-a-phone/</guid>
      <description>A game shrunk into an aspect-ratio box is not a smaller game — it is a wrong one. We measured every bundle we ship at phone size and found stretched boards, controls pushed somewhere with nothing to scroll to, and a median board area of 21% of the screen. Three of our five predictions from reading the CSS were wrong.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>Rate a Puzzle by What Breaks Without It</title>
      <link>https://www.gamedavinci.com/blog/rate-a-puzzle-by-what-breaks-without-it/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/rate-a-puzzle-by-what-breaks-without-it/</guid>
      <description>Our first difficulty rater asked &quot;did this technique fire while solving?&quot; One technique fired on a median of one board in one, and almost no board actually needed it. Rating by necessity instead — is the board still solvable with the technique switched off? — produced a ladder we could trust, and two findings we could not have guessed.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
    <item>
      <title>Five Wrong Ways to Prove a Racing Game Is Fair</title>
      <link>https://www.gamedavinci.com/blog/five-wrong-ways-to-prove-a-racing-game-is-fair/</link>
      <guid isPermaLink="true">https://www.gamedavinci.com/blog/five-wrong-ways-to-prove-a-racing-game-is-fair/</guid>
      <description>&quot;Every row is passable&quot; sounds like a simple promise. It took five wrong versions of it to keep, and the interesting part is that the road generator was never the thing at fault — the proof was. Including one bug that did not break fairness at all, and so survived scrutiny by making the game impossible to lose.</description>
      <pubDate>Fri, 28 Aug 2026 14:26:15 GMT</pubDate>
    </item>
  </channel>
</rss>
