<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 38-0-0 Serie A</title>
    <description>The latest articles on DEV Community by 38-0-0 Serie A (@serieadraft).</description>
    <link>https://dev.to/serieadraft</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4110610%2F8bbba838-ec58-4ac3-8020-f2a923160477.png</url>
      <title>DEV Community: 38-0-0 Serie A</title>
      <link>https://dev.to/serieadraft</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/serieadraft"/>
    <language>en</language>
    <item>
      <title>Designing a Game Around a Target Nobody Will Hit: The Arithmetic of 38-0-0</title>
      <dc:creator>38-0-0 Serie A</dc:creator>
      <pubDate>Sat, 05 Sep 2026 04:43:45 +0000</pubDate>
      <link>https://dev.to/serieadraft/designing-a-game-around-a-target-nobody-will-hit-the-arithmetic-of-38-0-0-4g2d</link>
      <guid>https://dev.to/serieadraft/designing-a-game-around-a-target-nobody-will-hit-the-arithmetic-of-38-0-0-4g2d</guid>
      <description>&lt;p&gt;Most sports games ask you to win a league. &lt;a href="https://38-0-0-serie-a.com/" rel="noopener noreferrer"&gt;38-0-0&lt;/a&gt; asks you&lt;br&gt;
to win &lt;em&gt;every match&lt;/em&gt; of a Serie A season — 38 out of 38, where a single draw ends the run.&lt;/p&gt;

&lt;p&gt;That constraint sounds like a difficulty slider set to maximum. It is not. It is a&lt;br&gt;
different kind of game, and the reason is arithmetic that anyone can check on a napkin.&lt;/p&gt;
&lt;h2&gt;
  
  
  One number decides everything
&lt;/h2&gt;

&lt;p&gt;If your XI wins any given match with probability &lt;code&gt;p&lt;/code&gt;, and the run needs all 38, the&lt;br&gt;
probability of finishing is &lt;code&gt;p^38&lt;/code&gt;. That exponent is brutal in a way that is genuinely&lt;br&gt;
unintuitive:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p per match    p^38        roughly
0.99           0.68        two runs in three
0.98           0.46        every other run
0.95           0.14        one in seven
0.90           0.018       one in fifty-five
0.85           0.0021      one in four hundred eighty
0.80           0.00021     one in forty-eight hundred
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at the gap between 0.95 and 0.90. In a normal league that difference is barely&lt;br&gt;
visible — one is a 90-point season, the other is an 85-point season, both win the title.&lt;br&gt;
Under a perfect-season constraint, one is a coffee break and the other is a weekend.&lt;/p&gt;

&lt;p&gt;This is the single most important fact about designing this kind of game: &lt;strong&gt;small changes&lt;br&gt;
in per-match strength produce enormous changes in run length.&lt;/strong&gt; Your difficulty knob is&lt;br&gt;
not linear, it is exponential, and a player cannot feel that from the inside.&lt;/p&gt;

&lt;h2&gt;
  
  
  What that does to the failure screen
&lt;/h2&gt;

&lt;p&gt;In a normal season game, losing match 12 is information: you are mid-table, adjust. In a&lt;br&gt;
perfect-season game, losing match 12 is the end, and the player has just spent ten minutes&lt;br&gt;
drafting.&lt;/p&gt;

&lt;p&gt;So the failure screen carries a load it does not carry in other games. If it says "You&lt;br&gt;
lost. Try again," you have wasted the player's time. It has to answer &lt;em&gt;why&lt;/em&gt;, and the&lt;br&gt;
honest answer is usually one of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the draft was weak in a specific position, and the sim knows which one&lt;/li&gt;
&lt;li&gt;the draft was fine and the run died to variance — at 0.93 per match only one run in
sixteen survives all 38, so most good drafts still end early&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are completely different messages, and the second one is the harder one to write.&lt;br&gt;
Telling a player "you did nothing wrong, the dice ended it" is unsatisfying, but the&lt;br&gt;
alternative — implying they made a mistake they did not make — teaches them a false&lt;br&gt;
lesson and makes the next run worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drafting blind is what makes it a game
&lt;/h2&gt;

&lt;p&gt;If you could see every rating while drafting, this would be a solved optimisation: take&lt;br&gt;
the highest number available at each position, and the only remaining variance is the&lt;br&gt;
sim. The interesting version hides some of that.&lt;/p&gt;

&lt;p&gt;Once ratings are hidden, drafting becomes inference under uncertainty. You know the club.&lt;br&gt;
You know the season. You know roughly what a Milan squad from the early nineties looks&lt;br&gt;
like. You are reconstructing a rating you cannot see from context you do have — and&lt;br&gt;
because it compounds 38 times, a systematic bias in that inference is far more expensive&lt;br&gt;
than a single bad pick.&lt;/p&gt;

&lt;p&gt;The rules panel is where a player picks which game they are playing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every club vs. locked to one club&lt;/strong&gt; — locking is a much harder constraint, because
you inherit that club's weak positions with no escape hatch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ratings visible vs. hidden&lt;/strong&gt; — turns it from inference back into optimisation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formation&lt;/strong&gt; — decides which positions you are forced to fill, which decides which
spins are wasted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are not difficulty presets. They change what skill the game is testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 38 and not 10
&lt;/h2&gt;

&lt;p&gt;A shorter perfect run would be more achievable and much less interesting. The reason is&lt;br&gt;
that at 10 matches, &lt;code&gt;0.90^10 = 0.35&lt;/code&gt; — a third of decent drafts get through. The target&lt;br&gt;
stops being a target and becomes a formality.&lt;/p&gt;

&lt;p&gt;38 is the real Serie A season length, and it happens to sit at exactly the point where&lt;br&gt;
strong play is &lt;em&gt;visible&lt;/em&gt; but not &lt;em&gt;sufficient&lt;/em&gt;. A great draft moves you from one-in-fifty&lt;br&gt;
to one-in-seven. That is a large, felt improvement that still does not guarantee&lt;br&gt;
anything. A number that rewards skill without promising success is the hardest thing to&lt;br&gt;
find in this kind of design, and here it came free with the real-world fixture count.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would tell someone building one
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Compute &lt;code&gt;p^n&lt;/code&gt; for your constraint before you tune anything else. If the curve is too
flat, the game is boring; too steep and skill stops mattering.&lt;/li&gt;
&lt;li&gt;Make the failure screen distinguish "bad draft" from "bad luck." You need the sim to
report which one it was, which means logging more than the final scoreline.&lt;/li&gt;
&lt;li&gt;Hide information deliberately, not accidentally. Hidden ratings turn optimisation into
inference; hidden &lt;em&gt;rules&lt;/em&gt; just annoy people.&lt;/li&gt;
&lt;li&gt;Resist shortening the season to make the game winnable. The impossibility is the
product.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to see the curve from the inside rather than in a table,&lt;br&gt;
&lt;a href="https://38-0-0-serie-a.com/" rel="noopener noreferrer"&gt;a run takes about ten minutes&lt;/a&gt; — spin a club, draft an XI&lt;br&gt;
from real historic squads, and watch 38 matchdays decide whether the arithmetic was on&lt;br&gt;
your side.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>javascript</category>
      <category>math</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
