Skip to content

Dev Log · Anpfiff1, Countries, Balancing, Tooling

From seven countries to fifteen: what building one involves

5 to 9 September 2026:

Anpfiff1 knew seven countries: Germany, England, Italy, France, Spain, Turkey and Brazil. Now there are fifteen. The Netherlands, Portugal, Belgium, Austria, Switzerland, Poland, Denmark and Argentina have joined them.

Setting up leagues, clubs and squads is the quick part. The work sits in five things that have to be there before a new country feels like the ones that grew over time.

The strength of a league is measurable now

The strength of a league was a matter of feel for a long time. There is now a regression through the leagues nobody ever complained about:

strength = 5.205 + 0.644 × ln(squad value / Premier League)

That gives a target instead of an opinion. Anyone building or changing a country measures it against this curve. A dry run across all fifteen countries re-rates not a single player today.

The new countries were placed with it. The drop to the second division belongs to the format as well. Measured on the league average it runs from 0.93 steps in Denmark to 1.60 in Italy, and no country falls outside that any more.

A tool that does the same thing twice

The re-rating is done by a script, and that is where the actual work sat. A run like this has to be idempotent: the second call must change nothing. Two locks make it so.

A dead zone of 0.35, because a top-11 average only moves in steps of one eleventh and the clubs partly swap ranks after a run. And a lock on the club tiers, because one tier up is a shift, not a target state. Without it, every further call lowers the whole league again.

The side effects belong to it. Market value, wages and potential have to move along, otherwise a re-rated player keeps the price of his old class, and the AI's development pulls him back up through his untouched potential.

Names built on a counted pattern

404 clubs needed names, the first three divisions of the eight new countries, 136 of them in the top flight. Instead of inventing them, we counted what the 1,056 named clubs of the seven old countries are called. As a prefix, most often FC 71 times, SC 36, Sporting 25, Racing 24, Real 18, CD 16, Union and Atletico 15 each, Dynamo 14, Inter 13, Deportivo 11, Club 10, Athletic 6, Olympique 3, and "Roter Stern" exactly once. As a suffix, United 44 times, Athletic 37, Town and Rovers 24 each, City 21.

That turned into rules the generator has to obey:

  • Neutral prefixes only, ones that carry in any country. No colour combinations, no regional abbreviations like VfB or VfL, because those fit one language area and no other.
  • Rare stays rare. "Roter Stern", "Hansa", "Eintracht", "Fortuna", "Borussia" at most once per country.
  • A prefix at most twice per league and never twice in a row. Without that brake, the top of the Polish league was called "Olympic" three times.
  • A real club word may appear, never together with its own city. The whole name is checked, because in Utrecht, Porto and Braga the city is the club name.
  • Cities in the country's own spelling: Warszawa, København, Brussel. Otherwise one league carries two spellings side by side.

The same patterns go into the 76 presets for self-built countries, so a built country looks like a built country.

The map decides, not the population

A country's strongest squad sits where the strongest real club sits. When you generate, that is not a given: without the rule, chance spreads the top squads across the largest cities. Now they sit in Amsterdam, Eindhoven and Rotterdam, in Lisbon and Porto, in Salzburg and Vienna, in Basel, Zurich and Bern.

Free agents belong to the country

A country is not only its squads. Without a pool of free agents the AI loses the buffer it uses to fill gaps. Each of the eight new countries now has 167 of them, the same number as England, Spain, Turkey and Brazil. Germany carries 177.

The target curve for it is the median of that country's club players, not the mean. In England's lowest strength group the median sits at 312,661 euro and the mean at 2,272,780, because individual outliers reach as high as 73.85 million. With the median the run settles, with the mean it wobbles on every call.

And the format is the real one

Finally, all fifteen countries were checked against their real league format. Poland, Portugal and Denmark have no relegation play-off between the first and second division. Belgium splits into three play-off groups. The Ekstraklasa split was abolished in 2021, which is a decision and not a forgotten format.

The check is a balance per league pair: relegated plus play-off above must equal promoted plus play-off below. Across all 45 leagues.

Warm regards from the workshopDigitale Manufaktur Rudolstadt