Dev Log · Anpfiff1, Update, League format, Measuring
Anpfiff1 2.2.0: Belgium without play-offs and 73 seconds of standstill
16 to 20 September 2026:
Since 20 September, Anpfiff1 2.2.0 has been on Google Play, Steam and itch.io. It is a maintenance update: a league format that changed in real life, a market value that did young players no justice, and a handful of bugs around your own databases. Behind almost every point there is a number.
Belgium changed its format, the game follows
Up to 2025/26 the Belgian Pro League split into three play-off groups after 30 matchdays: six clubs playing for the title, six for another European place, four against relegation. Two of the groups halved their points. Anpfiff1 had rebuilt exactly that format with 2.1.7.
With the reform, which was legally settled in June 2026, that is over. From 2026/27, 18 clubs play 34 matchdays and the bottom two go straight down. The second division has 15 clubs, the third stays at 16.
Three things had to follow:
- Careers already under way are in the middle of a season with 16 clubs and a split. They finish it in the old format, and at the change of season the leagues are topped up to 18, 15 and 16 clubs. This was checked with a dedicated test run on an old save.
- A league with 15 clubs has one club without an opponent every matchday. The calendar did not handle odd numbers of clubs correctly until now.
- The second promoted club from the second division is decided in play-offs in real life. The game has no play-offs within a league, so the runner-up goes up there.
The league split itself stays in the game, for custom countries and the editor. Its test now sets up the three-group format on its own instead of reading it from the Belgian data. Otherwise, after the reform, it would simply have stopped testing anything.
A premium for everyone is no premium
It started with a question from a player: why is a young player with high strength not more expensive than a 26-year-old? The answer sat in a single line. Everyone up to 20 got a flat 40 percent on top of his market value, the reserve goalkeeper just like the regular starter.
Now the factor follows strength:
- Up to 20: strength 1 to 3 only 5 percent, strength 4 the previous 40 percent, then in steps of 50 percentage points up to 3.4 times the value.
- 21 and 22: the same staircase, only flatter, from 5 percent up to 2.8 times.
Where strength is not known, the old flat premium still applies, so nothing shifts in those places. Potential is left out on purpose. The player sees strength in the squad, not potential, and a price should rest on what is visible.
Four names that were always there
Without booked boards, the stadium showed four fixed made-up names. Now the names come from the sponsors of the country and the club's tier. In a database with real names, those are real companies.
All of them can be changed in the database editor. Sponsor tiers 7 and 8 are now listed there too, which could not be reached at all before.
73 seconds for a list
A custom database is a JSON file of 20 to 35 MB. The list of your own files and the cloud window read every one of those files in full each time they opened, on the main thread, just to show a name and a few counts. Measured with six new files, the game stood still for 73 seconds.
Now the game only reads files it does not know yet, in the background, with a progress indicator. Everything known comes from a cache. The longest single frame while opening is 41 milliseconds, and the second opening takes 15 milliseconds.
A rule comes with it: no screen reads a database file on its own any more to show a name or a number. There is exactly one source for that.
Crests belong to the save
Anyone who played with a custom database and then selected another one saw the crests of the currently selected file under "Continue" in the main menu, not those of the save. A loaded career now draws with the images of its own database.
Along the way it became clear why real crests often looked small: many sit on a fixed canvas with a transparent margin. That margin is now trimmed on loading; before, such a crest looked a quarter too small. On top of that, crests are larger overall, almost twice the size in team selection.
League names that were silently dropped
The editor offered to rename the leagues of Brazil and of the eight countries added in 2.1.7. The game then silently dropped the new names, because it treated those countries like third-party add-on countries. Only countries that really are not part of the game stay locked now.
One change of season, entered twice
The change of season waits for other work at seven points. In between, a second call could come in, for instance from a tap delivered twice. Only the one button that starts it was locked.
Now a second call waits for the running change and receives its result. Simply returning "failed" would not have been enough: its screen would then jump somewhere else while the first change is still running.
What is not in it
The halftime team talk from the World Cup Edition and a rating prompt were also planned for 2.2.0. Neither has been built yet. In the World Cup Edition the talk works over a tournament of seven matches. In a league its effect carries over a whole season, and how strong it may be there should be decided by a measurement, not an estimate.
On iOS, 2.1.9 was still in review at Apple at the time of release. 2.2.0 follows there afterwards.
Most points in this update are small. Together they make the difference between a game that copies a league and one that keeps up with it.
Warm regards from the workshopDigitale Manufaktur Rudolstadt