Wie das Spiel gebaut wird — was gemessen wurde, was schiefging, was daraus folgte. Keine Ankündigungen: ein Devlog, das Versprechen sammelt statt Befunde, ist eine Pressemappe.
Die Search Console meldete für pipfold.com über 88 Tage: keine einzige Impression. Gleichzeitig waren alle geprüften Seiten indexiert. Das schliesst Technik als Ursache aus — und lässt genau zwei übrig, von denen sich nur eine von allein löst. Die teuerste Zeile war ein Disallow, dessen Begründung abgelaufen war.
Pipfold lag als Symbol auf dem iPhone-Startbildschirm und zog trotzdem jedes Mal die ganze Ladung. Dahinter steckten vier voneinander unabhängige Fehler. Der erste ist der interessanteste: Godot legt Dateien mit einem Stream-Klon ab, und der Cache lehnt Streams über 16 MB ab — die 37,7 MB grosse index.wasm fiel damit jedes Mal durch, lautlos.
Der Bestätigungstipp sass an einer anderen Stelle des Bildes als der Blick, und die gewählten Klappen sahen vom Endzustand nur durch ihre Farbe verschieden aus. Das las sich nicht wie „noch bestätigen", sondern wie ein Hänger. Ihn zu streichen war einfach — die eine Bedingung zu finden, die bleiben musste, nicht.
Am Morgen wurde die Kopfzeile des Spiels umgedreht und drei Bildschirmfotos nachgezogen. Sieben blieben stehen — darunter das grösste Bild der Startseite, das eine Mechanik zeigte, die seit Tagen anders funktioniert. Ein Bericht darüber, warum „die betroffenen nachziehen" keine Anweisung ist.
Eine 11 würfeln und die 5 und die 6 antippen — nichts passierte. Eine 5 würfeln und die 5 antippen — ging. Diese Asymmetrie liess den Fehler wie einen Regelfehler aussehen, und genau da wurde zuerst gesucht. Der Regelkern war die ganze Zeit in Ordnung.
Dreissig Moden, ein Kontaktpuls, sieben frühe Reflexionen, Dämpfung aus dem Verlustfaktor von Holz. Am Ende klang eine CC0-Aufnahme von einem echten Würfel auf einem echten Tisch besser als alles Gerechnete. Ein Bericht über vier verlorene Runden, die trotzdem nötig waren.
Auf dem Tisch lag eine Belohnungsleiter: eine Stufe für zwei Punkte Rest, eine für „unter der Bestmarke", eine für „stark gespielt", jede mit eigenem Ton und eigenem Bild. Sie ist verworfen. Der Unterschied zwischen „fast" und „geschafft" ist bei Shut the Box nicht ein Detail, sondern der ganze Inhalt des Spiels.
Beim Sieg fielen zwölf bunte Rechtecke über den Kasten — im Code. Auf dem Bildschirm nie. Der Effekt war dreifach kaputt, und jeder einzelne Fehler hätte gereicht. Wir haben ihn nicht repariert, sondern gestrichen: Ein Holzkasten, der gewinnt, soll sich wie ein Holzkasten bewegen.
Eine rasiermesserscharfe Linie parallel zur Wand, genau dort, wo der Saum verschwinden soll. Zwei Runden an der falschen Stelle gesucht — beide Änderungen bleiben richtig, keine war die Ursache. Gefunden wurde sie, indem der Saum komplett abgeschaltet wurde.
Von „Brettchen in drei Farben" zu „gehobeltes Holz auf einem Tisch": Palette, dann Licht, dann ein Shader mit Jahresringen, dann die Kamera. Das ganze Material ist gerechnet, im Paket liegt kein einziges Bild — und der teuerste Effekt kostet 0,13 Millisekunden.
Der deutsche Name trug international nicht. Der neue war frei — Domain, App Store, Websuche. Was beim Umbenennen fast schiefging: die Spielstände hängen am Namen. Und was erst am 23. August messbar wurde: nach einem erfundenen Wort sucht niemand.
An einem Tag sind vier Bedienelemente aus dem Bild verschwunden: die Wurf-Taste, die weisse Menükarte, das Rundenende-Popup und die halbe Werkzeugleiste. Ersetzt wurden sie nicht. Was übrig bleibt, ist der Kasten — und der kann alles, was die Knöpfe konnten.
Ausgeliefert, geprüft, Adresse antwortet — und im Browser lief weiter der Stand von vorgestern, auch nach mehreren Neuladen. Die Ursache lag nicht im Spiel und nicht auf dem Server, sondern in einer Zoneneinstellung, die unsere sorgfältig gesetzten Kopfzeilen stillschweigend überschrieb.
Am ersten Tag schluckte ein unsichtbarer Container jeden Fingertipp. Am zweiten lagen beide Bedienleisten vollständig unterhalb des Bildschirmrands — nach „Spielen" gab es keinen Würfel-Knopf und keine Wurf-Taste mehr. Beide Male sah der Code korrekt aus, und beide Male war eine Grösse zum falschen Zeitpunkt null.