Entwicklertagebuch

Dev-Blog

Ungeschönte Erfahrungen aus der Entwicklung — Fortschritt, Funde und Entscheidungen rund um eine lernende Kriegs-KI. Lieber unregelmäßig und ehrlich als ein leeres Tagesversprechen.

Der Cliffhanger von gestern, aufgelöst — und eine Landkarte gegen die nächste Panne

Gestern endete unser Eintrag mit einem offenen Fall: Ein zweiter, tieferer Grund dafür, dass sich die Absichten der Nationen gegenseitig verunreinigten, war gefunden, aber noch nicht behoben. Heute ist er erledigt. Der Kern: Die KI entscheidet ihren Fokus mehrmals pro Zug neu (getrennt für Kauf- und Bewegungsphase), und ein Zähler, der eigentlich festhält „wie lange verfolge ich diesen Plan schon", wurde dabei doppelt hochgezählt — und obendrein schwappte der Wert zwischen den Ländern über. Beides haben wir an allen vier betroffenen Stellen geradegezogen. Das klingt technisch, ist aber wichtig fürs Spielgefühl: Genau dieser „wie lange halte ich schon durch"-Wert ist die Grundlage dafür, dass die KI geduldig an einem Plan festhält, statt jede Runde umzuschwenken. Jetzt zählt er wieder ehrlich.

Beim Beheben wurde uns klar, dass diese ganze Fehlerfamilie denselben Ursprung hat: kleine Stücke „gemeinsames Gedächtnis", die still zwischen Momenten überlaufen, die eigentlich getrennt sein sollten — der Zug des einen Landes in die Wahrnehmung des nächsten, die eine Spielphase in die andere. Statt also nur die aktuellen vier Lecks zu stopfen, haben wir eine vollständige Landkarte dieses geteilten Zustands angelegt: eine Liste aller Stellen, an denen sich solche Werte über Grenzen hinweg berühren könnten. Beim nächsten Verdacht schauen wir zuerst auf die Karte, statt live darüber zu stolpern. Dazu kommt ein kleines Prüfskript, das nach jeder Änderung nachkontrolliert, dass der heutige Fix auch wirklich hält. Ein einzelner Bug ist geschlossen — aber der eigentliche Gewinn ist, dass die ganze Sorte künftig schneller auffällt.

Und zum Abschluss haben wir die gestern begonnene Aufräum-Untersuchung der beiden Daten-Schreibwege zu Ende geführt — dieselbe, bei der sich unsere „ein Weg ist tot"-Annahme als falsch herausgestellt hatte. Zwei kleine, sichere Verbesserungen waren gestern schon live gegangen; die letzten beiden offenen Punkte haben sich heute als kniffliger entpuppt, als sie aussahen: Der eine bräuchte ein ganz neues Datenfeld mit anderer Bedeutung, der andere einen tieferen Umbau. Beides haben wir sauber dokumentiert und bewusst zurückgestellt, statt einen wackeligen Schnellschuss einzubauen. Manche offenen Enden schließt man am ehrlichsten, indem man genau aufschreibt, warum sie noch offen bleiben.

Ein Erfolg zum Vorzeigen, ein Bug mit doppeltem Boden

Gestern konnten wir zeigen, dass Japan aufgehört hat, stur denselben Verteidigungsplan zu wählen. Heute haben wir nachgelegt und dasselbe für mehr Nationen nachgemessen — mit erfreulichem Ergebnis: Auch Großbritannien und die USA fächern ihre Kaufentscheidungen inzwischen deutlich breiter auf. Wo diese drei Nationen früher in 73 bis 96 Prozent der Fälle immer dasselbe kauften, sind es jetzt nur noch rund 50, 45 und 37 Prozent — die KI trifft also spürbar eigenständigere Entscheidungen, je nach Lage. Zwei Nationen tanzen allerdings noch nicht mit: Deutschland und die Sowjetunion bleiben hartnäckig eintönig. Woran das liegt, ist Teil der Baustelle, an der wir gerade sitzen — und die führt uns direkt zum eigentlichen Krimi des Tages.

Beim Aufräumen fiel auf, dass die Nationen ihre Absichtssignale gegenseitig verunreinigten — vereinfacht: Was sich Land A gerade vornimmt, färbte fälschlich auf die Wahrnehmung von Land B ab. Einen ersten Auslöser dafür haben wir gefunden, behoben und für alle fünf Nationen live bestätigt. Nur: Bei Deutschland blieb die Fehlerquote danach genauso hoch wie vorher (rund 45 Prozent) — der Fix hat also gegriffen, aber das Problem nicht allein verursacht. Also weitergegraben — und per Log-Beweis eine zweite, unabhängige Ursache gefunden: Die KI entscheidet ihren Fokus mehrmals pro Zug neu (einmal für die Kaufphase, einmal für die Bewegungsphase), und ein Zähler, der eigentlich misst „wie lange verfolge ich diesen Plan schon", wurde dabei doppelt hochgezählt. Dieser zweite Fix ist noch nicht drin — er steht ganz oben für die nächste Sitzung. Ein schönes Beispiel dafür, dass ein bestätigter Fix und ein gelöstes Problem nicht dasselbe sind.

Und schließlich ein Stück Selbstkorrektur. Wir hatten lange angenommen, dass einer von zwei Wegen, auf denen die KI ihre Spieldaten wegschreibt, quasi tot sei — ein Kandidat zum Ausmisten. Beim genauen Nachprüfen stellte sich heraus: Genau dieser vermeintlich tote Weg liefert rund die Hälfte der Daten, mit denen unser lernendes Modell trainiert. Gut, dass wir nachgesehen haben, bevor wir etwas gelöscht haben. Aus der Prüfung sind zwei kleine, sichere Verbesserungen entstanden, die schon live sind; zwei weitere lassen wir bewusst offen, weil sie eine echte Design-Entscheidung brauchen statt eines schnellen Handgriffs. Nicht alles, was wir heute angefasst haben, ist also fertig — manches ist bewusst als „erst denken, dann bauen" markiert.

Japan hört auf, immer dasselbe zu spielen

Heute mal eine gute Nachricht mit Zahlen dahinter. Wochenlang haben wir eher im Fundament gebuddelt — Kaufformeln seziert, Bezeichnungen vereinheitlicht, tote Auslöser wiederbelebt. Der Sinn dahinter war immer, dass die Nationen aufhören, stur dieselbe Platte zu spielen. Heute konnten wir das erstmals sauber belegen: Japan wählte früher in über drei von vier Fällen denselben defensiven Grundplan — eine regelrechte Monokultur. Inzwischen ist dieser Anteil auf unter die Hälfte gefallen. Anders gesagt: Wo die KI vorher fast reflexhaft in die Verteidigung ging, wägt sie jetzt spürbar öfter ab und wählt auch mal etwas anderes. Genau das war das Ziel der ganzen unspektakulären Kleinarbeit der letzten Tage — und jetzt gibt es endlich den Messwert, der zeigt, dass sie gewirkt hat.

Zur Ehrlichkeit gehört aber auch die andere Seite der Woche. Wir hatten drei Ideen, wie die KI besser einschätzen soll, ob eine Hauptstadt wirklich bedroht ist. Nach dem Durchmessen hat genau eine davon überzeugt (die für Großbritannien, die den überempfindlichen Alarm von gut einem Drittel auf ein Fünftel gesenkt hat) — die anderen beiden haben wir wieder verworfen, weil die Daten sie schlicht nicht gestützt haben. Eins von drei klingt mager, ist aber genau das, was wir wollen: lieber zwei Ideen nach der Messung wegwerfen als drei ungeprüft einbauen und hoffen. Eine Idee, die die Messung nicht überlebt, hat trotzdem ihren Zweck erfüllt — sie hat uns eine falsche Abzweigung erspart.

Und noch ein Fund aus der Kategorie „falsches Messgerät abgelesen": Wenn die KI abschätzte, wie wirtschaftlich stark die USA gerade sind, schaute sie auf deren Bargeldbestand statt auf deren laufende Produktion. Das ist ein Unterschied wie zwischen dem Kontostand am Monatsende und dem Gehalt — mal viel zu hoch, mal viel zu niedrig, je nachdem, ob die USA gerade gespart oder alles ausgegeben hatten. Der Fix (auf die Produktion umgestellt) ist fertig und wartet nur noch auf den nächsten Rollout. Und weil wir gerade beim ehrlichen Messen sind: Ein anderes Signal sah verlockend nach einem Zusammenhang aus (US-Pazifikdruck und Japans Verhalten), entpuppte sich aber als wahrscheinlicher Trugschluss — zwei Dinge, die zufällig zusammen auftreten, sind noch keine Ursache. Das haben wir bewusst nicht überinterpretiert.

Der Wächter, der nie schweigt

Manche Auslöser in unserer KI sollen nur in Ausnahmesituationen anspringen — zum Beispiel eine „Hauptstadt in Gefahr"-Warnung, die eigentlich nur feuern sollte, wenn wirklich eine Hauptstadt bedroht ist. Beim Nachmessen fiel auf: Bei einer Nation sprang dieser Wächter in über neun von zehn Runden an. Ein Alarm, der fast immer schrillt, ist aber kein Alarm mehr, sondern Hintergrundrauschen — er unterscheidet nicht mehr zwischen „Notfall" und „ganz normaler Dienstag". Wir haben den Befund zweimal unabhängig bestätigt, dann eine Normierung ausprobiert, die den Wert schon deutlich senkte (von gut 92 auf knapp 67 Prozent) — die das Problem aber nicht ganz löste und bei einer anderen Nation sogar in die Gegenrichtung zeigte. Statt das mit einem hastigen Zahlendreher zu übertünchen, haben wir die Entscheidung bewusst vertagt: erst verstehen, warum der Wächter so nervös ist, dann nachjustieren.

Ein zweites Thema aus derselben Familie wie unser Datenbank-Aufräumen neulich: Unsere KI wählt pro Runde einen groben Plan — und den trägt sie intern unter einem Namen. Nur hatten sich über die Zeit mehrere Schreibweisen desselben Plans eingeschlichen, und verschiedene Programmteile erkannten die des jeweils anderen nicht. Folge: Ein Signal wurde gesetzt, kam beim Empfänger aber nicht an, weil es unter einem Namen eintraf, den dieser nicht kannte. Wir haben sieben solcher Stellen gefunden, jede einzeln geprüft und geradegezogen — und danach live nachgesehen, dass sie jetzt tatsächlich anspringen (an einer Stelle von null auf sieben Auslösungen innerhalb von Sekunden, an anderen Hunderte). Wieder gilt: nicht die eine Stelle flicken, sondern dafür sorgen, dass alle dieselbe Sprache sprechen.

Und zum Schluss eine Messung, die uns beinahe reingelegt hätte. Auf den ersten Blick sah es so aus, als hätte die Sowjetunion nach einer unserer Änderungen schlagartig fast ein Viertel weniger Panzer gekauft — ein Schreck. Beim genaueren Hinsehen war es ein Messfehler: Wir hatten unterschiedlich lange Partien in einen Topf geworfen, und lange Partien verzerren solche Durchschnitte. Rechnet man sauber pro Runde, dreht sich das Bild komplett — aus dem Minus wird ein kleines Plus. Der eigentliche, nüchternere Befund blieb allerdings bestehen: Die Nationen unterscheiden sich beim Panzerkauf noch immer weniger, als sie sollten. Nebenbei lief der Server über die Nacht stabil durch — dreimal hat sich unsere Selbstheilung um einen kurzen Neustart gekümmert, ganz ohne Datenverlust.

Die Bomber, die nie gebaut wurden — und ein Muster dahinter

Uns ist aufgefallen, dass unsere KI so gut wie nie Bomber für strategische Bombardierungen kaufte — und der Grund war eine Kaufbedingung, die praktisch nie zutraf. Sie verlangte eine seltene Kombination (die KI musste zugleich in Angriffslaune und dem Gegner an Land klar überlegen sein), die im echten Spielverlauf kaum je zusammenkam. Der Bomber-Wunsch blieb damit reine Theorie. Wir haben die tote Bedingung durch etwas Ehrliches ersetzt: einen Term, der schlicht fragt, ob es gerade ein lohnendes Ziel für strategische Bombardierung gibt — und je nach Gelegenheit den Bomber-Kauf befürwortet. Wie inzwischen üblich haben wir das nicht auf gut Glück eingebaut, sondern erst zweimal gegen echte Spieldaten durchsimuliert und die Werte nachjustiert, bevor eine Zeile Code live ging.

Der Bomber war dabei nur die Spitze eines Musters, das wir am selben Tag sauber freigelegt haben: Wir haben die Kaufentscheidung für alle zehn Einheitentypen einzeln aufgeschlüsselt — welche Auslöser feuern wie oft, welche liegen brach. Das Bild war eindeutig: Die „defensiven" Auslöser springen ständig an, während die „offensiven" — für Panzer, Bomber, Schlachtschiffe — fast durchgehend tot sind. Kein Wunder also, dass die KI so infanterie-lastig und zurückhaltend kauft: Die Hebel, die sie zu Offensivgerät greifen lassen sollten, wurden schlicht nie gezogen. Der Bomber-Fix ist der erste konkrete Fall aus dieser Klasse. Ehrlich dazugesagt: Zwei Nationen (Deutschland und die Sowjetunion) kaufen weiterhin zu wenig — das ist ein eigener, bereits bekannter Fund, den wir separat angehen.

Zum Abschluss zwei kleinere Dinge. Die Panzer-Einheit heißt in der englischen Fassung ab jetzt schlicht „Tank" statt „Armor" — näher an dem, was Spieler erwarten, und eindeutiger. Und hinter den Kulissen haben wir einer Überwachungsroutine, die still über zweieinhalb Minuten pro Durchlauf gebraucht hatte, auf drei bis vier Sekunden verholfen — sie hatte sich an einer ungünstigen Datenbankabfrage verschluckt. Nichts, was man im Spiel sieht, aber der Server atmet spürbar freier.

Ein Tag Klempnerei — und eine Entdeckung über die Balance

Nicht jeder Entwicklungstag bringt sichtbare Neuerungen — manche gehen fürs Fundament drauf, und heute war so einer. Uns war aufgefallen, dass unser Programm die Datenbank an mehreren Stellen nach Spalten fragte, deren Namen minimal falsch geschrieben waren — ein Tippfehler hier, ein alter Name dort, den wir einmal umbenannt und an einer Ecke vergessen hatten. Jede dieser Stellen lieferte im Zweifel eine Fehlermeldung statt der Daten; eine Statusseite etwa gab seit Mitte Juli stillschweigend nur noch einen Fehler zurück, ohne dass es jemandem auffiel. Statt bloß die eine Stelle zu flicken, haben wir die ganze Fehlerklasse systematisch durchsucht, 51 solcher Stellen geradegezogen — und danach einen kleinen Prüfer gebaut, der bei jeder künftigen Änderung automatisch warnt, sobald wieder ein Spaltenname nicht zur Datenbank passt. Ein einzelner Bug ist geflickt; die Sorte Bug soll gar nicht erst zurückkommen.

Im selben Geist ging es weiter, tief im Maschinenraum. Wenn viele KI-Partien gleichzeitig in dieselbe Datenbank schreiben, kollidieren manche Schreibvorgänge — die Datenbank lässt dann kurz einen abblitzen. Bisher gingen solche Fälle im schlimmsten Fall leise verloren, und mit ihnen ein Stückchen Trainingsdaten. Wir haben an den betroffenen Stellen automatische Wiederholversuche eingebaut und zwei Wettlauf-Situationen entschärft, in denen sich zwei Vorgänge um denselben Eintrag stritten. Unspektakulär — aber genau solche stillen Lecks sind es, die eine lernende KI über Wochen unmerklich ausbremsen.

Und dann noch eine Entdeckung, die tatsächlich das Spielgefühl betrifft. Wir sind der Frage nachgegangen, warum die Achse wirtschaftlich oft hinterherhinkt — und haben zuerst gemessen, statt gleich zu schrauben. Ergebnis: Die Achse startet in Great Conflict mit nur rund einem Drittel des weltweiten Einkommens, die alliierte Seite hält von Beginn an die klare Mehrheit. Der wirtschaftliche Rückstand steckt also schon in der Ausgangsaufstellung — das ist keine Fehlfunktion, sondern eine bewusste Frage der Startbalance. Eine Stellschraube, die wir testweise gedreht hatten (ein Einkommens-Bonus fürs Siegen), stellte sich dabei als praktisch wirkungslos heraus — sie bewegte weniger als ein Zehntelprozent. Also haben wir sie ehrlich als das benannt, was sie ist, statt sie als Balance-Fix zu verkaufen. Die eigentliche Frage — wie viel Startgewicht die Achse haben soll — heben wir uns für einen bewussten Balance-Tag auf, nicht für einen Reflex.

Gemessen: Es wirkt immer noch nicht — und warum wir es trotzdem so lassen

Gestern haben wir Japans Flotten-Doktrin neu gebaut und versprochen: Als Nächstes messen wir, ob sie diesmal wirklich wirkt. Heute haben wir gemessen — und die ehrliche Antwort ist: Sie wirkt immer noch nicht. Wenn Japan die Kontrolle über den Pazifik verloren hat, greift die KI in etwa neun von hundert Fällen zu Schiffen — praktisch genauso oft wie mit komplett abgeschalteter Doktrin. Der bewusst moderate Hebel, den wir gewählt haben, war schlicht zu schwach, um etwas zu bewegen.

Der Grund liegt tiefer, als ein Regler es beheben könnte. Wir haben uns die internen „Wunsch-Werte" angesehen, mit denen die KI jede Einheit bewertet: In genau diesen Situationen liegen Infanterie und Panzer rund sieben Punkte über den Transportern — unser Multiplikator schiebt aber nur um einen Bruchteil davon. Es ist kein Verdrahtungsfehler; wir haben Schalter, Werte und Reihenfolge des neuen Codes einzeln geprüft, alles korrekt. Die Vorliebe der KI für billige Infanterie ist einfach so stark. Eine vielversprechende Spur haben wir verfolgt: eine ältere Regel, die Transporter ohne Geleitschutz abstraft. Sie feuerte tatsächlich in allen betroffenen Fällen — sah nach dem Schuldigen aus. Doch als wir das Aussetzen dieser Bremse durchsimulierten, schloss es weniger als einen halben der sieben Punkte; in keinem einzigen Testfall hätte Japan daraufhin eine Flotte gebaut. Also haben wir es nicht angefasst — ein Fix, der nichts fixt, ist kein Fix.

Also die bewusste Entscheidung: Wir lassen diesen Fall so, wie er ist. Ihn mit Gewalt durchzudrücken hieße entweder eine viel aggressivere Einstellung — die Japans Heimatinseln im Spätspiel entblößen könnte, genau der Kompromiss, den wir gestern vermieden haben — oder das ganze Bewertungsfundament neu zu denken, viel zu groß für einen schnellen Patch. Uns ist eine ehrliche Nulldiagnose lieber als ein kosmetischer Scheinsieg. Und das Ermutigende: Dieselbe Umbau-Idee wirkt bei anderen Nationen sehr wohl — Deutschlands Luftwaffen-Fokus und der sowjetische Panzer-Handel zeigen echte, messbare Effekte. Der Mechanismus taugt also; Japans Flottenfall ist nur der strukturell härteste Brocken. Manche Tage endet man nicht mit einem Häkchen, sondern mit einem sauber verstandenen „Nein" — auch das ist Fortschritt.

Eine Doktrin, die nichts tat — und was wir dagegen taten

Gestern haben wir Japans nationalen Charakter eingeschaltet — bewusst als reine Beobachtung, mit dem Versprechen, erst zu messen und dann zu urteilen. Heute haben wir gemessen. Über einen ganzen Tag Trainingspartien hinweg haben wir Japans Kaufverhalten mit eingeschalteter und mit ausgeschalteter Doktrin verglichen — und das ehrliche Ergebnis war ernüchternd: Es änderte sich so gut wie nichts. Die Doktrin schadete nicht, aber sie bewirkte auch nicht das, was sie sollte. Ihr sanfter Wink in Richtung Flottenbau wurde schlicht verschluckt — von Japans starker Vorliebe für billige Infanterie und von einer Obergrenze, die verhindert, dass ein einzelner Einheitentyp alles dominiert. Auch ein ehrliches Nullergebnis ist ein Ergebnis: Es sagt uns, dass ein freundliches Schubsen nicht reicht.

Fast hätten wir uns dabei selbst getäuscht. Unsere erste Messung sah nach einem kleinen Effekt aus — bis wir merkten, dass sie Partien mitzählte, die noch aus der Zeit vor dem Einschalten stammten und damit fälschlich in die „Aus"-Gruppe gerutscht waren. Erst als wir sauber nach dem Startzeitpunkt jeder einzelnen Partie trennten, kam das echte Bild heraus: unauffällig, in jede Richtung. Genau diese Art stiller Verzerrung ist der Grund, warum wir so viel Wert aufs Messen legen — eine hübsche Zahl, die auf einem Messfehler beruht, ist gefährlicher als gar keine Zahl.

Statt nur an Stellschrauben zu drehen, haben wir die Flotten-Doktrin neu gebaut, damit sie überhaupt einen echten Hebel bekommt: Hat Japan die Kontrolle über den Pazifik verloren, verschiebt es seine Käufe jetzt spürbar hin zum Wiederaufbau der Flotte — Seeherrschaft ist nun einmal die Voraussetzung für jede spätere Landung. Bevor wir eine einzige Zeile Code geschrieben haben, haben wir den Umbau gegen echte Spieldaten durchgerechnet — und dabei auffliegen lassen, dass unsere erste Schätzung selbst wieder ein Messartefakt war (wir dachten, ein Drittel der Käufe ginge in die Flotte; in Wahrheit wäre es die Hälfte gewesen). Also haben wir bewusst auf ein moderates Maß zurückgedreht: klar spürbar, aber kein „Nur-noch-Flotte"-Panikmodus, der die Heimatinseln schutzlos ließe. Gebaut, geprüft, hinter demselben Sicherheitsschalter scharfgeschaltet — und als Nächstes wird wieder gemessen, ob es diesmal wirklich wirkt.

Erst richtig messen, dann aufwecken

Gestern haben wir erzählt, dass vier der fünf nationalen Doktrinen drei Monate lang geschlafen hatten. Heute ging es ans Aufwecken — bewusst vorsichtig, eine Nation nach der anderen. Dabei zeigte sich schnell: Den Schalter umzulegen reicht nicht, man muss auch prüfen, ob jede Doktrin überhaupt mit sinnvollen Zahlen gefüttert wird. Und da lagen einige Überraschungen. Japans Flotten-Doktrin las eine Schiffsbilanz, die ihr nie geschickt wurde — sie ging deshalb immer von einem Gleichstand aus. Deutschlands Gefühl dafür, ob es sich an der Front übernimmt, stand dauerhaft auf Alarm, weil es jeden Gegner auf dem ganzen Planeten mitzählte — auch US-Truppen im Pazifik, die mit der Ostfront nichts zu tun haben. Solche Dinge haben wir heute für jede Nation einzeln geradegezogen, bevor wir ihre Doktrin scharf schalten.

Ein Detail aus der Werkstatt, das uns besonders gefällt, weil es so tückisch war: Unsere Landkarte speichert die Kennnummern ihrer Felder hexadezimal — in dem Zahlensystem, das auch Farbcodes wie #FF0000 benutzt. Eine unserer Korrekturen las diese Nummern versehentlich als ganz normale Dezimalzahlen. Ergebnis: Für Deutschland passte kein einziges Feld, das Spiel hielt Deutschlands eigene Truppenstärke schlicht für null — und schlug daraufhin dauerhaft Frontalarm, egal was auf der Karte tatsächlich geschah. Aufgefallen ist das erst, weil zwei Messungen zur exakt gleichen Sekunde einander widersprachen. Genau deshalb haben wir heute zuerst ordentliche Messprotokolle für alle fünf Nationen eingebaut: Wir wollen die Doktrinen mit echten Zahlen kalibrieren, nicht nach Gefühl. Und ganz nebenbei haben wir unseren Testrechnern das Dauergedudel abgewöhnt — die Trainingspartien, die niemand ansieht, haben bis heute munter Musik und Siegesansagen abgespielt.

Und der Tag ging in genau diesem Geist weiter. Dieselbe Kalibrierung, die morgens Deutschlands Frontgefühl geradegezogen hat, haben wir auch Japan verpasst — auch dort zählte die KI Gegner mit, die ihre Fronten nie berühren. Dann haben wir die „Kauf-Handschriften" der Nationen mit ihrer eigentlichen Absicht in Einklang gebracht (und dabei bestätigt, dass Großbritanniens die ganze Zeit unauffällig gesund lief). Zuletzt haben wir Japans nationalen Charakter eingeschaltet — als zweite Nation nach den USA. Bewusst als reine Beobachtung: Sichtbar ändern wird sich vorerst wenig, weil ein weiterer Baustein noch fehlt. Heute ging es ehrlich gesagt ums Zusehen und Messen, nicht ums große Ergebnis — genau so, wie man es machen sollte.

Jede Nation soll wieder ihren eigenen Stil haben

Jede der fünf Großmächte in Great Conflict soll eine eigene Handschrift beim Truppenkauf haben: Japan denkt in Flottenverhältnissen, Deutschland setzt zuerst auf Infanterie, die Sowjetunion baut Frontdruck auf, die USA investieren in ihre Rüstungsindustrie — und Großbritannien hat seinen eigenen Stil. Bei Aufräumarbeiten ist uns aufgefallen, dass vier dieser fünf Doktrinen seit dem 10. Juni still und leise nicht mehr griffen; nur Großbritannien behielt die ganze Zeit seinen Charakter. Ab heute wecken wir sie wieder auf — aber bewusst vorsichtig, eine Nation nach der anderen, damit wir jede einzeln beobachten können. Den Anfang macht die USA.

Die Ursache ist ein Lehrstück über Kleinigkeiten. Im Juni haben wir aufgeräumt und alle Ländernamen im Code einheitlich kleingeschrieben — dachten wir. Tatsächlich wurden dabei nur die Vergleichswerte umgestellt („japan", „germany" …), während die Variable, mit der verglichen wurde, weiterhin großgeschrieben ankam („JAPAN"). Und „JAPAN" ist nun einmal nicht dasselbe wie „japan": Der Vergleich schlug ab da immer fehl, und die Doktrinen liefen ins Leere — ohne Fehlermeldung, einfach lautlos. Der naheliegende Einzeiler (die Variable auch kleinschreiben) hätte fast einen größeren Schaden angerichtet: Direkt daneben hängt ein Grundsystem, das für alle fünf Nationen von der Großschreibung abhängt — das hätten wir damit zerstört. Also haben wir den umgekehrten Weg genommen und die betroffenen Stellen einzeln repariert. Und weil ein reiner Bugfix sonst schlagartig alle vier Doktrinen gleichzeitig scharf geschaltet hätte, sitzt jetzt ein Schalter davor, mit dem wir sie kontrolliert und einzeln aktivieren.

Das Britische Empire hört auf, sich selbst zu lähmen

Wer den KI-Partien zusieht, kennt vielleicht die seltsam passive britische Seite: Die USA und die Sowjetunion planten Offensiven, aber das Vereinigte Königreich blieb auffällig oft in der Defensive und legte kaum eigene Kampagnen an. Ab heute ist das behoben — die britische KI eröffnet wieder eigene Feldzüge. In unseren Nachmessungen an echten Spielsituationen sprang das Vereinigte Königreich von „nie angriffsbereit" auf „in der Hälfte der Fälle bereit für eine Offensive". Damit spielen endlich alle drei Allianzpartner mit, statt dass einer nur zuschaut.

Der Grund war eine schöne kleine Programmier-Lektion. Die KI trägt eine „Überdehnungs-Bremse": Wer sich zu weit verzettelt, soll vorsichtiger werden. Diese Bremse sollte eigentlich auf die Größe eines Landes normiert sein — im Code stand sogar ein Kommentar, der genau diese Division versprach. Nur: implementiert war sie nie. Also wuchs der „Überdehnungs"-Wert einfach mit der Zahl der Grenzen. Und das Vereinigte Königreich, als weltumspannende Kolonialmacht mit Grenzen auf mehreren Kontinenten, galt dadurch dauerhaft als „überdehnt" — allein wegen seiner Größe, völlig unabhängig von der tatsächlichen Kräftelage. Selbst mit erdrückender lokaler Übermacht blieb das Urteil „zu dünn aufgestellt", und das deckelte die Angriffsplanung hart. Jetzt rechnen wir den Druck als Durchschnitt pro Feld — genau wie der Kommentar es immer behauptet hatte. Ergebnis: Groß sein ist kein Makel mehr, und Großbritannien und Deutschland liegen bei diesem Wert endlich im selben, plausiblen Bereich.

Jetzt mit zweiter Stimme — und Japan entscheidet nur noch einmal

Gestern hat das Spiel sprechen gelernt — heute darf es aussuchen, mit welcher Stimme. Neu ist ein aufgeräumtes Einstellungs-Panel, in dem Sprache, Hintergrundmusik und Sprachansagen an einem Ort liegen. Bei der Stimme kann man jetzt zwischen einer männlichen und einer weiblichen wählen; sämtliche Ereignis-Ansagen — Sieg, Niederlage, fallende und zurückeroberte Hauptstädte, abgeschlossene Forschung — gibt es in beiden. Ein Testknopf spielt jede Stimme sofort zur Probe ab, damit man vor der Partie hört, was man bekommt. Und damit unterwegs nichts verlorengeht, stecken die Sprachdateien jetzt fest im Spiel selbst statt lose danebenzuliegen.

Hinter den Kulissen ein ehrliches Nachwort zu gestern. Wir hatten den japanischen Pazifik-Überraschungsschlag repariert, sodass die KI ihn überhaupt wählen kann. Beim Nachmessen fiel auf, dass die Entscheidung danach trotzdem nicht immer sauber ankam: Japan hat seine Strategie-Ausrichtung pro Runde zweimal bestimmt, und der Spielclient hat gelegentlich der zurückgespiegelten, älteren Antwort des Servers mehr geglaubt als seinem eigenen frischen Beschluss. Beides ist jetzt behoben — die Ausrichtung wird genau einmal entschieden und reist unverändert bis ans Ziel. Wir haben es für alle fünf Nationen gegengeprüft: Japans Überraschungsschlag kommt jetzt zum ersten Mal zuverlässig durch. Diesmal haben wir nachgemessen, bevor wir es behaupten.

Das Spiel bekommt eine Stimme — und ein ehrliches Geständnis

Ab heute spricht das Spiel. Bei den großen Momenten gibt es jetzt eine Sprachansage — auf Deutsch und Englisch: bei Sieg und Niederlage, wenn eine Hauptstadt fällt oder zurückerobert wird, und wenn eine Forschung erfolgreich abgeschlossen ist. Gerade in den KI-Dauerpartien, die oft nebenbei laufen, macht das einen überraschend großen Unterschied: Man hört, dass gerade etwas Wichtiges passiert, ohne ständig auf den Bildschirm schauen zu müssen.

Hinter den Kulissen hatten wir Besuch — im besten Sinne. Ein externer Sicherheitstest hat unsere Server-Schnittstellen abgeklopft und ein paar Schwachstellen gefunden, die wir sofort geschlossen haben: Unser Schutz gegen zu viele Anfragen greift jetzt zuverlässig über alle Prozesse hinweg, die Erkennung der echten Absender-IP wurde an mehreren übersehenen Stellen nachgezogen, und — am wichtigsten — die Lerndaten unserer KI sind jetzt davor geschützt, dass ein fremder Aufruf sie überschreibt. Gerade das ist heikel: Werden die Trainingsdaten verfälscht, lernt die KI aus einer Lüge. Und ein Geständnis, ganz im Sinne dieses Devblogs: Der japanische Pazifik-Überraschungsschlag, über den wir vor ein paar Tagen so stolz geschrieben haben, war in Wahrheit die ganze Zeit kaputt — durch einen Programmierfehler war seine Bewertung immer null, die Option kam also nie zum Zug. Gefunden, behoben. Ab jetzt tut sie wirklich, was wir beschrieben haben.

Japan wagt manchmal den Pazifik-Überraschungsschlag

Sichtbar in den KI-Partien — eine neue, seltene Volte: Japan wagt jetzt gelegentlich einen Störschlag gegen das US-amerikanische Kernland im Pazifik. Das Spannende ist die Dosierung. Bisher hatte so eine Nebenstrategie nur zwei Zustände: entweder sie kam nie zum Zug, oder — sobald man sie stärker gewichtete — dominierte sie plötzlich alles. Wir haben ihr stattdessen ein Wahrscheinlichkeits-Tor vorgeschaltet: In etwa jeder achten Partie zieht Japan diese Überraschungsoption überhaupt in Betracht, sonst bleibt es bei seinen Hauptplänen (Indien, Sibirien, Pazifik-Dominanz). Und sie hat Manieren: Steckt Deutschland gerade wirklich in Not, tritt der Störschlag beiseite, damit Japan seinem Verbündeten nicht die Aufmerksamkeit stiehlt. Beobachter sehen also ab und zu — nicht ständig — wie Japan überraschend eine zweite Front gegen die USA eröffnet. Genau die Art Abwechslung, die KI-Partien lebendig macht, ohne dass ein einzelner Trick alles überlagert.

Hinter den Kulissen zwei Dinge. Erstens die eigentliche Erkenntnis hinter dem Tor: Die neue Option teilte sich mit zwei anderen Kandidaten dieselbe harte Score-Obergrenze — mit einem einzelnen Stärke-Regler ließ sie sich deshalb nicht sauber steuern (zu schwach = nie, minimal höher = immer). Erst die Trennung von „wie oft wird sie überhaupt erwogen“ und „gewinnt sie, wenn erwogen“ macht sie zuverlässig dosierbar. Zweitens etwas Verspieltes: Wir haben eine kleine Pipeline gebaut, die genau diese Devblog-Einträge in kurze, vertonte Textvideos verwandelt — ein KI-Skript, eine lokale Stimme, und ffmpeg brennt Untertitel ein und legt einen langsamen Zoom darüber. Der Text, den du gerade liest, kann also demnächst auch als kurzer Clip auftauchen.

Wir können der KI endlich beim Umdenken zusehen

Sichtbar — und für dieses Projekt ein kleiner Meilenstein: Wir können der KI jetzt beim Umdenken zusehen. Sie tut längst erstaunlich strategische Dinge — sie übernimmt und wechselt Rollen innerhalb ihrer Allianz, verlagert ihren Schwerpunkt von einer Front zur anderen, schwenkt nach einem gescheiterten Feldzug auf einen neuen Plan um und merkt selbst, wenn ein Feldzug ins Stocken gerät. Bisher passierte das alles vollständig im Verborgenen: Der Code konnte es, aber weder unsere Auswertungs-Anzeigen noch die Trainingsdaten der KI konnten es tatsächlich beobachten. Jetzt haben wir alle vier Verhaltensweisen sichtbar gemacht — zum ersten Mal lässt sich in Echtzeit verfolgen, wann die KI ihre Rolle wechselt oder einen festgefahrenen Feldzug aufgibt. Für ein Projekt, in dem es genau um solches emergentes Verhalten geht, ist das ein wichtiger Schritt: Was man sehen kann, kann man auch verstehen und verbessern.

Hinter den Kulissen zwei Reparaturen. Erstens fehlte Großbritannien etwas, das die USA längst hatten: Die KI berechnete für UK durchaus, wann sich der Bau einer Seetransport-Kette lohnt — ließ dieses Ergebnis dann aber nie in die eigene Kaufentscheidung einfließen. UK investierte dadurch zu wenig in Transporter. Wir haben die fehlende Verdrahtung ergänzt (eins zu eins vom US-Vorbild übernommen) und testen sie gerade im direkten Vergleich. Zweitens: Eine Aufräum-Routine, die veraltete Allianz-Absichten wegräumt, lief auf unserem Webserver in Wahrheit nie — sie steckte hinter einer Startbedingung, die unser Betrieb überspringt. Entsprechend hatten sich diese Einträge auf über 36.000 gestapelt. Jetzt läuft sie korrekt (genau ein Arbeiter, sauber gesperrt), und der Stapel ist wieder auf ein paar hundert geschrumpft.

Japan reagiert auf die Not des Verbündeten

Sichtbar im Spiel — und ein schöner Moment für die Allianz-Intelligenz: Japan reagiert jetzt auf die Not seines Verbündeten. Bisher stieß Japan nur dann Richtung Sibirien vor, wenn Deutschland ohnehin schon erfolgreich gegen die Sowjetunion marschierte — also ausgerechnet dann, wenn die Hilfe am wenigsten nötig war. Jetzt ist der Auslöser umgedreht: Gerät Deutschlands Hauptstadt unter ernsten Druck, eröffnet Japan im Osten eine zweite Front und bindet sowjetische Kräfte, statt sie ungestört nach Westen ziehen zu lassen. Wer die KI-Dauerpartien beobachtet, sollte künftig genau dann eine japanische Sibirien-Offensive sehen, wenn es für Deutschland brenzlig wird — echte Reaktion auf einen Hilferuf, nicht bloß Mitlaufen im Erfolg.

Hinter den Kulissen ging es um sauberes Nebeneinander. Auf unserem Server laufen ständig viele KI-Partien gleichzeitig. Dabei fiel ein Fehler auf: Startete eine neue Partie, räumte die KI „veraltete“ Absichten weg — und erwischte dabei versehentlich auch die Feldzugspläne anderer, noch laufender Partien. Die fingen also mitten im Spiel plötzlich mit leerem Kopf neu an. Diese übereifrige Aufräum-Routine haben wir entfernt; parallele Partien stören sich jetzt nicht mehr gegenseitig, jede verfolgt ihre eigenen Absichten ungestört zu Ende. Und die neue Sibirien-Logik läuft ab sofort als kontrollierter Vergleichstest mit: Ein Teil der Partien nutzt den neuen Not-Auslöser, der Rest den alten — so sehen wir mit echten Zahlen, ob die Achse dadurch tatsächlich besser zusammenspielt. Nebenbei sind die Dauerpartien auf eine deutlich stärkere Server-Hardware umgezogen und laufen jetzt flüssiger.

Die KI zieht ihre Feldzüge jetzt wirklich durch

Sichtbar zuerst — vor allem für unsere Beta-Tester: Ihr spielt ab jetzt gegen die vollständig trainierte KI. Bislang bekamen Tester, die von außerhalb unseres Heimnetzes verbunden waren, durch einen technischen Schluckauf eine KI „frisch aus der Schachtel“ — ohne die Feinabstimmungen, die sie sich über viele Tausend Partien antrainiert hat. Dieser Kanal ist jetzt offen, das gelernte Können kommt bei ihnen an. Und im Spiel selbst zeigen sich der Titelbildschirm beim Start und die Hilfe-Grafiken der Einheiten wieder korrekt — sie waren zwar mitgeliefert, wurden in der fertigen Version aber über einen Umweg geladen, der ins Leere lief.

Hinter den Kulissen steckt die eigentliche Geschichte — und sie trifft den Kern dieses Projekts. Die KI hat schon immer Feldzüge geplant: „die baltischen Staaten sichern“, „Indien niederringen“, „im Pazifik Kräfte sammeln“. Doch in unserem schnellen Auswertungs-Fließband — das seit dem Umbau im Sommer rund 99 Prozent des gesamten KI-Denkens abwickelt — versickerte etwa ein Dutzend Planungs- und Koordinationssignale, bevor sie bei den tatsächlichen Entscheidungen ankamen. Die KI plante also wie ein General und handelte dann, als hätte sie es wieder vergessen: Der Plan schaffte es nie vom Kartentisch zu den Truppen. Wir haben das Leck abgedichtet — nachgemessen tragen jetzt 100 Prozent dieser Schnell-Entscheidungen den vollen Plan wieder mit sich, vorher waren es null —, der KI beigebracht, ihre strategischen Kalenderziele zu lesen, und einen Namenskonflikt aufgeräumt, durch den vier Kampagnenrollen auf die falschen Pläne zeigten. Die Pläne der KI erreichen jetzt endlich die KI. Ob sich das sichtbar auf den Verlauf der Kriege auswirkt, messen wir gerade in den Dauerpartien — noch ist es früh, aber die Leitung ist endlich verbunden.

Die KI erinnert sich wieder — und Neutrale werden zäher

Sichtbar im Spiel: Neutrale Länder wehren sich jetzt mit der Zeit stärker. Ab sofort erhält jede neutrale Garnison pro Spielrunde eine zusätzliche Infanterie-Einheit — wer ein neutrales Land erobern will, sollte das also eher früh tun, denn je länger man wartet, desto teurer wird es. Das gibt Neutralen ein glaubwürdigeres Eigenleben und belohnt entschlossenes Timing. Nebenbei haben wir dafür gesorgt, dass die KI Neutrale nach exakt denselben Regeln angreift wie ein menschlicher Spieler — auch bei Luftangriffen, wo bislang eine kleine Ungleichheit steckte.

Der eigentliche Durchbruch war unsichtbar, aber grundlegend: Die KI hatte ein Gedächtnisproblem. Sie bildete ihre Einschätzungen als Durchschnitt über ihre gesamte Lebenszeit — über viele Tausend Partien. Das klingt gründlich, hatte aber einen Haken: Nach so vielen Spielen konnte eine einzelne neue Partie den Durchschnitt kaum noch bewegen. Die KI war faktisch in ihrer Vergangenheit eingefroren und lernte aus neuen Erfahrungen praktisch nichts mehr. Wir haben ihr Gedächtnis auf ein gleitendes, gewichtetes Verfahren umgestellt: Die jüngsten rund hundert Partien zählen am meisten, ältere verblassen langsam. Damit passt sich die KI wieder an das an, was gerade passiert — genau das adaptive Verhalten, um das es in diesem Projekt geht. Und beim Aufräumen ist uns aufgefallen, dass der gestern eingebaute Wachhund einen eigenen kleinen Fehler hatte, der ihn im Ernstfall stumm gemacht hätte — auch das ist behoben.

Aufgeräumtes Schlachtfeld — und eine KI, die nicht mehr in die Knie geht

Sichtbar zuerst: Das Schlachtfeld ist aufgeräumter geworden. Bisher konnten sich Einheiten auf demselben Feld gegenseitig verdecken oder über den Feldrand ragen. Jetzt werden sie sauber verteilt — die Industrieanlage zuerst an ihren festen Platz, die Truppen ordentlich drumherum, und alles bleibt innerhalb der Feldgrenzen. Das gilt nicht nur beim Spielstart, sondern auch nach jedem Zug: Ziehst du Einheiten auf ein Feld, rücken sie sich automatisch so zurecht, dass jede gut sichtbar und anklickbar bleibt. Gleiche Einheiten desselben Landes fasst das Spiel dabei weiterhin zu einem Stapel mit Anzahl-Zähler zusammen — nur eben ohne Gedränge.

Hinter den Kulissen ging es um Stabilität — im Spiel und im Betrieb. Im Spiel hatten wir beobachtet, dass die Achsenmächte in langen KI-Partien manchmal in eine Abwärtsspirale gerieten: ein kleiner Rückstand ließ die KI zu vorsichtig werden, was den Rückstand vergrößerte. Wir haben die Balance-Bewertung mit einem Sicherheitsboden versehen, der genau diese Spirale stoppt. Dazu lief die laufende Regel-Feinarbeit weiter — unter anderem wurde ein Kampf-Teilsystem verdrahtet, das bislang toter Code war. Und im Betrieb hat unser Server jetzt einen Wachhund: Er erkennt, wenn die KI-Auswertung still hängen bleibt, und startet sie automatisch neu, damit die öffentlichen KI-Dauerpartien nicht unbemerkt stehenbleiben.

Wir haben das Regelwerk wasserdicht gemacht — Seeschlacht, Luftangriff, Landung

Heute gab es wenig Neues zu sehen, aber viel Neues zu spüren: Wir haben das Spielregelwerk Baustein für Baustein wasserdicht gemacht. Seeschlachten, amphibische Landungen, Luftangriffe und das Flakfeuer laufen jetzt strikt nach Vorschrift — dieselbe für Mensch wie Maschine. Dazu eine bewusste Design-Entscheidung, die jeden Zug schwerer wiegen lässt: Was im Kampf einmal bewegt wurde, bleibt bewegt — kein Zurücknehmen mehr. „Gezogen ist gezogen“, wie beim Schach die losgelassene Figur. Das klingt streng, macht Entscheidungen aber ehrlicher: Man überlegt vorher, nicht hinterher.

Hinter den Kulissen war es der bislang größte Prüftag: fünf komplette Audit-Runden an einem einzigen Tag, mit weit über sechzig einzelnen Korrekturen von „stört kaum“ bis „wichtig“. Fast jedes Teilsystem kam auf den Prüfstand — Flugabwehr, U-Boote, Flugzeugträger, Küstenbeschuss, Raketen, strategische Bombenangriffe, der Nachschub an Einheiten und die Kaufregeln. Die Bewegungslogik haben wir sogar komplett neu gebaut, damit Luft- und Landeinheiten nach einem Zug nicht heimlich noch einen Extraschritt machen. Zwei offene Regelfragen haben wir zusätzlich sauber am Regelbuch der Referenzedition belegt, statt sie zu raten. Unterm Strich: Great Conflict spielt heute Abend spürbar korrekter und fairer als heute Morgen — und niemand musste dafür ein einziges Bild anschauen.

Neue Bilder fürs Schaufenster — und eine KI, die jetzt nach denselben Regeln spielt wie du

Sichtbar zuerst: Das Schaufenster ist voller geworden. In der Bildergalerie auf der Startseite stecken jetzt echte Eindrücke statt „kommt bald“-Kacheln — ein frischer Blick auf die strategische Weltkarte mitten im Zug und die beiden Siegesbilder, die am Spielende auf die Gewinnerseite warten: einmal „Allied Victory“, einmal „Axis Victory“. Und ganz oben, dort wo wir erklären, worum es bei Great Conflict geht, begrüßt euch jetzt ein eigens gezeichnetes Titelbild der ganzen Weltlage statt eines schlichten Ausschnitts. Kleinigkeiten, aber zusammen fühlt sich die Seite zum ersten Mal an wie ein fertiges Schaufenster und nicht wie eine Baustelle.

Hinter den Kulissen war heute der große Tag für Fairness. Wir haben die KI Regel für Regel mit den menschlichen Spielern verglichen — über sieben Bereiche hinweg, von Truppenbewegung über See- und Landkampf bis zu Fabrikbau und Forschung. Überall dort, wo die KI heimlich nach leicht anderen Regeln spielte als ein Mensch am selben Brett, haben wir sie angeglichen; in drei unabhängigen Prüfrunden kamen so über zwei Dutzend solcher Abweichungen zusammen, alle behoben. Dazu eine zusätzliche Sicherung, die verhindert, dass die KI aus Versehen ein Land steuert, das eigentlich einem menschlichen Mitspieler gehört. Und weil Kontrollen nur so gut sind wie das, was sie kontrollieren: Einige unserer automatischen Tests prüften gar nicht den echten Spielcode — auch das ist geradegezogen, sie messen jetzt die tatsächliche Logik. Zum Schluss noch ein kurzer, beruhigender Blick ins Server-Protokoll: außer dem üblichen automatischen Klopfen von Suchprogrammen nichts Auffälliges, alles abgewiesen.

Ein sicheres Schloss, ein Newsletter — und der erste Blick auf Zwischensequenzen

Sichtbar zuerst: Der Newsletter ist startklar. Wer sich einträgt, bekommt zunächst eine Bestätigungsmail und ist erst nach dem Klick darin wirklich angemeldet — kein Newsletter ohne ausdrückliches Ja. Zweitens ist die Adresse endlich rundum sicher: Wer greatconflict.com aufruft, mit oder ohne „www", landet jetzt über eine gültig verschlüsselte Verbindung auf der Seite — ohne die Zertifikatswarnung, die vorher bei der Kurzform ohne „www" auftauchte. Und im Forum ist ein ärgerlicher Fehler behoben: Ein Klick auf eine Rubrik führte bislang versehentlich zurück zur Startseite statt in die Themenliste — jetzt bleibt man, wo man hinwollte.

Hinter den Kulissen haben wir uns diesmal selbst auf die Probe gestellt — im wörtlichen Sinn angegriffen: Wir haben unsere eigenen Anmelde- und Forumsformulare mit klassischen Einschleuse-Versuchen beschossen (im Fachjargon „SQL-Injection"), um sicherzugehen, dass niemand über ein harmloses Eingabefeld an die Datenbank kommt. Ergebnis: Alle Eingaben werden durchgehend als reiner Text behandelt, kein Angriff kam durch. Ebenso ist auf mehreren Ebenen sichergestellt, dass sich niemand doppelt registrieren kann — eine E-Mail-Adresse gibt es genau einmal. Und zum Schluss ein kleiner Ausblick: Im Hintergrund entsteht gerade die Technik für kurze Zwischensequenzen bei besonderen Ereignissen — etwa während eines strategischen Bombenangriffs. Noch ist es reine Vorbereitung, aber der erste Baustein steht schon.

Eigene Grafiken — und ein Backup, das den Tag rettete

Sichtbarster Fortschritt zuerst: Die letzten Platzhalter-Grafiken sind raus — das Spiel läuft jetzt mit eigenen, für Great Conflict gezeichneten Grafiken statt der provisorischen Zwischenlösungen. Damit sieht das Brett endlich so aus, wie es gemeint war, und nicht mehr wie ein Prototyp mit geliehenen Kacheln. Dazu ein bisschen KI- und Ablauf-Feinschliff im Hintergrund: die Gegner-Modellierung berücksichtigt jetzt auch die Käufe menschlicher Spieler (nicht nur die der KI), ein paar verstreute Referenzlücken sind geschlossen, und im automatischen Testbetrieb beendet sich ein Durchlauf nach dem letzten Spiel jetzt sauber selbst, statt in der Spielerauswahl hängen zu bleiben.

Und dann der Moment des Tages, den wir uns nicht ausgedacht haben: Beim Umbau der Backup-Wege haben wir aus Versehen die komplette produktive Datenbank gelöscht — die Millionen gespeicherter KI-Partien, Bewertungen und Trainingsdaten. Kurzer Schreck, dann die Erleichterung: Die nächtliche lokale Sicherung von 04:30 Uhr war da, vollständig und intakt. Rund 90 Minuten später war alles zurück, mit einem Verlust von nur wenigen Stunden automatischer KI-gegen-KI-Selbstspiel-Daten — nichts, was ein Spieler merkt. Die Lehre, altbekannt und heute schmerzhaft bestätigt: Ein Backup ist keine Kür, und man merkt seinen Wert genau einmal — an dem Tag, an dem man es braucht. Danach lief der Server wieder unter Volllast, alle Worker verarbeiteten die Partien in Echtzeit weiter.

Das Spiel hält sich jetzt selbst aktuell

Der größte Umbau des Tages ist unsichtbar, bis er gebraucht wird: Das Spiel prüft beim Start selbst, ob eine neuere Version bereitsteht, lädt sie bei Bedarf herunter, entpackt sie und startet neu — ohne dass ihr irgendwo einen Link suchen oder von Hand etwas ersetzen müsst. Damit dabei wirklich nur echte, von uns stammende Versionen ankommen, ist jedes Update kryptografisch signiert; der Client akzeptiert nur, was diese Signatur besteht. Und die Meldungen erscheinen jetzt in Deutsch oder Englisch, je nach eurer Spracheinstellung. Für die Beta heißt das: keine manuellen Downloads mehr, alle bleiben automatisch auf demselben, aktuellen Stand.

Dazu ein paar spürbare Kleinigkeiten. In die Karte lässt sich mit dem Mausrad jetzt doppelt so weit hineinzoomen wie bisher. Auf der KI-Seite haben wir eine Bewertung entschärft, die bei einer Macht dauerhaft auf „Notfall“ hängen blieb, sodass sie außer Verteidigung kaum noch etwas plante — jetzt normalisiert sich das über die Runden. Und der Server atmet hörbar auf: mehrere Abfragen, die ihn unnötig belasteten, sind entschärft, dazu ein fehlender Datenbank-Index ergänzt. Nichts davon sieht man direkt, aber alles zusammen macht die vielen KI-gegen-KI-Partien im Hintergrund flüssiger.

Als die KI den Zug des Spielers übernahm

Nachdem der Beta-Tester endlich hineinkam (siehe gestern), haben wir uns sein erstes Spiel genau angesehen — und dabei etwas gefunden, das so nicht passieren darf. In einem lokalen Einzelspieler-Spiel (ein Mensch steuert ein Land, die KI den Rest) führte die KI Teile des menschlichen Zuges selbst aus: Sie kaufte Forschung und bewegte die Einheiten des Spielers, während dieser eigentlich nur einkaufen wollte. Ursache: Die Zuordnung „welcher Spieler steuert welches Land“ und die Liste der KI-gesteuerten Länder wurden getrennt geführt und konnten sich widersprechen — nichts stellte sicher, dass das eigene Land des Menschen von der KI ausgenommen bleibt. Behoben: Beim Spielstart wird das Land des menschlichen Spielers jetzt zwingend aus der KI-Kontrolle entfernt. Das greift nur im widersprüchlichen Zustand; normal aufgesetzte Spiele bleiben unverändert. Und eine neue Protokollzeile macht diesen Zustand künftig auf einen Blick sichtbar — genau das fehlte, weshalb wir den Weg dorthin diesmal nicht mehr rekonstruieren konnten.

Verwandtes Thema, andere Seite: In Netzwerkspielen darf die KI für einen abwesenden Spieler einspringen, und alle Beteiligten bekommen eine Meldung. Neu ist der Schutz davor, dass sie das tut, wenn danach kein Mensch mehr übrig wäre — ein allein spielender Mensch wird nie durch die KI ersetzt. Dazu noch etwas Aufräumen beim Verlassen: Wer das Spiel beendet, wird jetzt zuverlässig als offline geführt (sowohl beim sauberen Schließen als auch über eine regelmäßige serverseitige Bereinigung), damit sich niemand versehentlich selbst aussperrt.

Warum ein Beta-Tester wochenlang nicht reinkam

Den Fund des Tages verdanken wir einem unserer Beta-Tester: Er kam schlicht nicht rein. Die Ursache saß tiefer als gedacht — der Server verschlüsselte seinen Zugangsschlüssel bei der Prüfung ein zweites Mal (doppeltes Hashen), sodass er nie zum hinterlegten Wert passen konnte. Effekt: Externe Anmeldungen waren seit Ende Juli strukturell unmöglich, jede wurde abgewiesen. Erschwert wurde die Diagnose noch dadurch, dass die Abweisung fälschlich als „Serverfehler“ (500) statt als klares „abgelehnt“ (403) zurückkam — es sah also nach einem Aussetzer aus, nicht nach einem Schlüsselproblem. Beides behoben; externe Logins gehen wieder. Danke fürs Melden.

Daneben ein großer Schwung Regel- und Zuverlässigkeitsarbeit an der KI. Sie befolgte mehrere Regeln nicht, die für einen Menschen selbstverständlich sind: Schadensdeckel bei Raketen und strategischer Bombardierung fehlten im KI-Pfad, die Flugabwehr trifft Jäger und Bomber jetzt getrennt statt in einem Topf, und die Landepflicht nach dem Kampf wird jetzt korrekt durchgesetzt. Dazu ein Runden-Zählfehler, ein U-Boot-„Split-Brain“ und mehrere weitere Dialoge, die im automatischen Batch-Betrieb auf eine menschliche Eingabe warteten (und ihn so einfrieren konnten) — alle abgesichert. Und wir haben einen Aggressions-Regler wieder angeschlossen, der still funktionslos war, sowie eine Menge toten Code entfernt.

Was zwischen den Spielen hängen blieb

Jedes Spiel sollte bei null anfangen. Ein Zähler aber, der festhielt, wie viel Technologie die KI erforscht hatte, wurde beim Spielwechsel nie zurückgesetzt — er sammelte über alle Partien einer Sitzung weiter. Beim fünften Spiel „wusste“ die KI daher, dass sie fast alles erforscht hatte (99,8 %), obwohl es real eher 64 % waren. Und weil dieser Wert in die frühesten Entscheidungen einfließt, kontaminierte er die Runde-1-Trainingsdaten und erklärte direkt eine falsche Anfangs-Selbstsicherheit. Behoben — und weil so ein Fehler selten allein kommt, haben wir nachgesehen: vier weitere Caches, die genauso über Spiele hinweg hängen blieben. Alle werden jetzt beim Neustart geleert.

Auf der Mess-Seite: Unser eigenes Gesundheits-Dashboard hatte uns belogen. Die /metrics-Anzeige las seit ihrer Einführung (1. Juni) den falschen Dateipfad und meldete deshalb zwei Monate lang fröhlich, das Modell sei gesund — mitten durch eine Retraining-Krise, die sie eigentlich hätte anzeigen müssen. Jetzt zeigt sie auf die richtige Datei. Und wir haben die Ziehung der Trainingsdaten reproduzierbar gemacht (fester Startwert statt reinem Zufall), sodass sich ein Trainingslauf exakt wiederholen lässt.

Die KI benotete ihre Züge — und warf die Noten weg

Ein Tag auf der Jagd nach einem stillen Datenverlust. Die KI benotet die Qualität ihrer eigenen Züge, um daraus zu lernen. Wir fanden heraus, dass diese Noten stillschweigend weggeworfen wurden: Der Schreibvorgang benutzte ein „einfügen, aber bei Vorhandensein ignorieren“ — und überschrieb einen früher gesetzten Platzhalter nie mit der echten Bewertung. Auf den meisten Arbeitern gingen die echten Bewertungen also verloren. Dazu kam, dass mehrere Bewertungs-Arbeiter seit ihrer Einrichtung nur eine schnelle Notlösung statt der vollen Bewertung nutzten, und eine Warteschlange sich selbst im Kreis fütterte. Alles behoben — die Zug-Noten der KI bleiben jetzt tatsächlich erhalten.

Und abseits des Codes das Schönste am Tag: Wir haben uns mit Freunden getroffen und Axis & Allies ganz klassisch am echten Brett gespielt — echte Würfel, echter Karton, echte Diskussionen über Russland. Es war richtig schön und eine gute Erinnerung daran, worum es bei diesem ganzen Projekt eigentlich geht. Und nein, es ersetzt die KI nicht — die KI streitet nie über Regeln, isst nie die letzten Chips und ist immer pünktlich — aber ein Abend mit menschlichen Gegnern ist schwer zu schlagen. Mehr dazu vielleicht ein andermal.

Die Verbündeten reden sich ab — Als der Wächter selbst zum Problem wurde

Weiter am Thema „die Fraktionen reagieren aufeinander“: Heute haben wir die Absichten der Verbündeten sauber miteinander verkoppelt. Plant eine Macht, ihre Hauptstadt zu verteidigen, verzahnt sich das jetzt korrekt mit den offensiven Absichten ihrer Partner — es entsteht ein gemeinsames Bild statt fünf Einzelpläne. Außerdem haben wir eine Absicht aufgeteilt, die zwei Dinge vermischte: „nach Indien vorstoßen“ und „Indien verteidigen“ lagen im selben Topf; Großbritannien bekommt jetzt eine eigene „Indien verteidigen“-Absicht. Und ein toter Koordinationseintrag, der ins Leere zeigte, ist raus.

Auf der Zuverlässigkeitsseite: Der Server hatte seine Datenbankverbindung schubweise verloren, immer wenn viele Spiele gleichzeitig endeten — eine Welle von Spielende-Schreibvorgängen sprengte ein Zeitlimit. Wir haben das Limit angehoben, damit diese Schübe Luft haben; die (selbstheilenden, aber lästigen) Abbrüche sollten damit weitgehend verschwinden.

Die KI schützt ihr eigenes neuronales Netz mit einem „Regressions-Wächter“: Wird nach dem Nachtraining ein neues Modell schlechter als das alte, wird es verworfen — damit die KI nie dümmer wird. Klingt sicher. Heute fanden wir gleich eine Kette von Löchern darin. Der Wächter verglich das neue Modell gegen das gerade aktive — das aber selbst schon degradiert sein konnte — statt gegen eine bekannte Gut-Referenz. Schlimmer: Vor dem Überschreiben legte er keine Sicherung des scheidenden Modells an, sodass ein wirklich gutes Modell (Güte 0,7863) beim Ersetzen unwiederbringlich verloren ging. Und sobald ein schwaches Modell durchgerutscht war, wies der Wächter jeden Erholungsversuch ab — weil das Erholungsmodell neben dem schwachen „schlechter“ aussah. Ein Schutzmechanismus, der die KI still in einen schlechteren Zustand einsperren konnte. Wir haben einen Erholungspfad, einen echten Gut-Referenz-Vergleich und ein „Backup vor dem Überschreiben“ ergänzt.

Ein tieferer Fund aus derselben Ecke: ein rätselhaftes Trainingsergebnis. Das Modell wirkte auf seinen Trainingsdaten kerngesund (Güte 0,85), auf zurückgehaltenen Testdaten aber schwach (0,16) — das klassische Bild von Überanpassung. Die wahre Ursache war gar keine Überanpassung: Die „Experience-Replay“-Historie (frühere Partien, die zur Stabilität ins Training gemischt werden) kam im Test-Teil nie an, der Test maß also etwas Unrepräsentatives. Behoben. Dazu wurde der Kauf-Lernpilot von gestern geschlossen (Marine-Käufe lernen jetzt tatsächlich aus dem Ausgang), und wir haben unser internes Dashboard von 19 auf 6 Reiter eingedampft.

Die letzten Standbilder

Gestern fanden wir heraus, dass die KI eine neutrale Garnison für einen menschlichen Spieler hielt und auf einen Klick wartete, der nie kam. Heute haben wir den Rest derselben Familie eingefangen: Genau dieses „Warten auf eine menschliche Entscheidung“ steckte auch im Küstenbeschuss, im Abschluss des Garnisonskampfes, im Flugabwehrfeuer und in der Verlustauswahl beim Küstenbeschuss. Jede einzelne Stelle konnte einen ganzen Testlauf still zum Stehen bringen. Alle hatten dieselbe Ursache — der Code fragte „ist das ein menschlicher Spieler?“ und antwortete bei einem neutralen Verteidiger fälschlich mit Ja. Wir sind jede Stelle durchgegangen, die einen blockierenden Dialog öffnen kann, und haben ihnen allen beigebracht, dass „Neutral“ nie ein Mensch ist. Jetzt laufen die Spiele von selbst bis zum Ende.

Auf der KI-Seite ein größerer Schritt: Das Lernsystem, das bisher formte, welche Strategie ein Land verfolgt, erreicht nun auch seine Käufe — ein erster Pilot gibt fünf Marine-Baugentscheidungen gelernte Gewichte statt fester Regeln. Und eine Wartungsnotiz: Der Lader, der das neuronale Netz der KI mit Trainingsdaten füttert, las bei jedem Lauf still seine komplette 4,3-Millionen-Zeilen-Tabelle von der Platte; mit dem richtigen Index braucht er jetzt einen Bruchteil der Zeit.

Nach demselben Regelbuch

Der ganze Tag stand unter einem Thema: Unsere KI spielte an vielen kleinen Stellen nach leicht anderen Regeln als ein menschlicher Spieler — nicht aus Absicht, sondern durch über Monate gewachsene Sonderwege. Wir haben sie einen nach dem anderen an den menschlichen Regelpfad angeglichen: Kämpfe gegen bewaffnete neutrale Garnisonen werden jetzt korrekt als echte Kämpfe erkannt statt einfach durchquert; Schiffsbewegung und die Pflicht, nach einem Seekampf zu landen, folgen jetzt derselben Logik wie beim Menschen; die Wahl des Rückzugsfeldes, die Reihenfolge, in der Verluste genommen werden, der Artillerie-Support im Landkampf, das Beladen und der Küstenbeschuss beim amphibischen Angriff — alles überprüft und geradegezogen.

Zwei Stabilitätsfunde am Rande. Ein ganzer Testlauf konnte hängen, weil ein neutraler Garnisonsverteidiger den Kampfabschluss der KI blockierte, bis nach zwei Minuten ein Timeout griff; und der Batch-Modus zeigte am Spielende einen blockierenden Sieg-Dialog, statt einfach neu zu starten — beides behoben. Und hinter den Kulissen haben wir dem nachgespürt, warum der Server ins Stocken geriet: zwei Wartungsabfragen scannten bei jedem Durchlauf Millionen Zeilen; mit den richtigen Indizes laufen sie jetzt in Sekunden statt Minuten.

Als Westeuropa plötzlich in Sibirien lag

Heute war der Tag, an dem sich herausstellte, dass die KI die Karte an mehreren Stellen schlicht falsch gelesen hat. Intern merkt sie sich über kleine Kennungen, welches Gebiet welches ist — und einige davon wurden im falschen Zahlensystem interpretiert, sodass Anker plötzlich auf ganz andere Orte zeigten. Im kuriosesten Fall verwies die Markierung für Westeuropa in Wahrheit auf Sibirien. Wir haben die Anker für Afrika, Ägypten und Europa korrigiert, sieben falsche Kennungen in der Logik zum Bau von Industriekomplexen gefunden und sechs veraltete Gebietsnamen berichtigt.

Zwei weitere Funde aus derselben Familie. Die Prüfung „wurde eine Hauptstadt erobert?“ war mehrdeutig und konnte den falschen Besitzer nachschlagen — jetzt eindeutig. Und das Gefühl der KI für die gegnerische Luftbedrohung zählte bislang jedes feindliche Flugzeug auf der ganzen Karte, statt nur die tatsächlich in Reichweite; sie fühlte sich also von Fliegern bedroht, die sie gar nicht erreichen konnten. Dazu die Engstellen-Konstanten für Gibraltar, Suez und Hormus geradegezogen. Keine dieser Änderungen ist eine neue Regel — die KI sieht jetzt einfach, wo die Dinge wirklich liegen.

Und zuletzt Deutschland

Damit ist der Kreis geschlossen: Nach Japan, der UdSSR, Großbritannien und den USA bekommt jetzt auch Deutschland das neue, dynamische Fokus-Scoring. Vier Kandidaten stehen zur Wahl — Blitz gegen Russland, Europa verteidigen, Afrika ausbauen und Seelöwe — und statt einer festen Reihenfolge wägt Deutschland sie nun nach der Lage gegeneinander ab. Alle fünf Großmächte entscheiden ihren Schwerpunkt damit erstmals nach demselben Prinzip.

Der Haken zeigte sich sofort. Eine deutsche Notfallbedingung — „alliierte Landungen stehen bevor“ — war so übereifrig, dass sie das komplette neue Scoring blockierte, bevor es überhaupt greifen konnte. Wir haben zuerst eine Notbremse eingezogen — sie greift erst ab Runde vier — und dann die eigentliche Ursache behoben: ein Signal, das nicht ortsbezogen war und deshalb fast überall auslöste. Nebenbei einen kleinen, aber ärgerlichen Anzeigefehler behoben — die Einheiten-Tabs in der Spielhilfe waren beim ersten Öffnen abgeschnitten.

Nicht mehr nur Japan

Japan war der Anfang, jetzt ziehen die anderen nach: UdSSR, Großbritannien und die USA bekommen dasselbe Prinzip, mit dem Japan seit ein paar Tagen aus seinen Partien lernt. Statt einer starren Kette „erst dies, dann das“ wägt jede Fraktion nun ein paar Kandidaten-Fokusse gegeneinander ab und gewichtet sie nach der Lage — die USA zum Beispiel zwischen Atlantik, Pazifik und einem Zweifrontendruck. Deutschland ist noch einen Schritt zurück: Dort messen wir vorerst nur mit, welche Rohwerte bei „Afrika ausbauen“ und „Seelöwe“ überhaupt anliegen, bevor wir am Verhalten etwas drehen.

Unterwegs zwei ehrliche Funde. Erstens ein Fehler, der sich gut versteckt hatte: Eine britische Bedingung namens „umkämpftes Afrika“ prüfte gar nicht, ob der Kampf überhaupt in Afrika stattfindet — sie konnte deshalb nie auslösen. Zweitens eine Lehre: Ein einzelnes Signal wurde, zu stark gewichtet, so dominant, dass es alles andere übertönte; wir haben sein Gewicht von 3,0 auf 1,0 zurückgenommen. Solche Ausreißer sieht man erst, wenn man die Rohwerte mitschreibt — weshalb genau das inzwischen zur Gewohnheit geworden ist, bevor irgendetwas scharf geschaltet wird.

Japan lernt aus seinen eigenen Partien

Über die letzten Tage haben wir Japan einen ersten echten Lernkreis gegeben: Die KI wertet aus, wie ihre vergangenen Japan-Partien ausgingen, und lässt dieses Urteil — vorsichtig und additiv — in ihre Fokuswahl einfließen, statt sich nur an starre Regeln zu halten. Ein Detail war dabei wichtig: Ein gelerntes Gewicht und ein bewusst gesetzter Korrekturfaktor dürfen nicht vermischt werden, sonst frisst die Lernformel den Startwert mit der Zeit still auf. Wir halten beides jetzt getrennt.

Der Rest war Feinschliff am Pazifik — wann Japan Träger investiert, ab welcher Schwelle es in die Verteidigung umschaltet — und viel Mitloggen, damit wir die Verteilung dieser Entscheidungen überhaupt sehen, bevor wir weiter drehen. Messen vor Ändern bleibt die Regel. Im Hintergrund außerdem: verlässliche Backups und eine überarbeitete Datenschutzerklärung. Und ein Newsletter ist fertig gebaut — aber bewusst noch nicht scharf; er kommt, wenn er wirklich etwas zu erzählen hat.

Ein Fundament, das noch nichts tut

Ein ruhiger Tag mit Absicht. Wir haben die Grundlage für Japans Lernsystem gelegt — die Maschinerie, die Belohnungen aus vergangenen Partien zusammenfasst — aber bewusst so, dass sie zunächst nichts am Spiel ändert. Nur sammeln, noch nicht handeln. So können wir prüfen, ob die Zahlen plausibel sind, bevor sie Entscheidungen beeinflussen; ein Lernsystem, das man erst live sieht und dann misst, ist schwer wieder einzufangen.

Daneben unspektakuläre, aber nötige Infrastruktur: Der Server meldet sich jetzt selbst, wenn etwas klemmt, und wir haben seine Ausfallsicherheit und seinen Schutz gehärtet. Nichts davon sieht ein Spieler direkt — aber es ist der Unterschied zwischen „läuft" und „läuft auch morgen noch".

Als die Fronten anfingen, sich zu beobachten

Der interessanteste Tag seit langem. Bisher verfolgte jede Fraktion vor allem ihren eigenen Plan; jetzt haben wir angefangen, sie aufeinander reagieren zu lassen. Drei „Signale" sind der Anfang: Schiebt die UdSSR ihre Kräfte Richtung Berlin nach vorne, spürt Deutschland das und stellt sich darauf ein. Baut Japan eine spürbare Präsenz auf dem Festland auf, ist das ein Anlass für Großbritannien und die USA, zu antworten. Ein drittes Signal haben wir wieder zurückgenommen — es griff in eine Kette ein, die es noch destabilisierte; lieber ein Signal weniger als eines mit Nebenwirkungen.

Damit verbunden ein größerer Schritt bei der UdSSR: Statt einer starren Kette „erst dies, dann das" gewichtet sie ihren Fokus jetzt dynamisch nach der Lage — ein Pilot, der zeigen soll, ob daraus flexibleres Verhalten entsteht, ohne die Kohärenz über mehrere Runden zu verlieren. Dazu Feinarbeit an Japans Pazifik-Entscheidungen und die Ursache gefunden, warum eine Fraktion zu sehr auf Infanterie setzte.

Und abseits des Spielfelds: die Datenschutzerklärung von Grund auf überarbeitet — ehrlicher darüber, welche Daten für den KI-Betrieb technisch nötig sind und welche nur der Verbesserung dienen — und das Löschrecht sauber umgesetzt.

Blinde Flecken, innen und außen

Zwei weitere Male hat sich gezeigt, dass die KI zwar dazulernt, das Gelernte aber nicht überall ankommt, wo es zählt. Zum einen wusste sie nicht zuverlässig, wem ein Gebiet gerade gehört — wodurch ein ganzes System, das Meerengen wie Gibraltar oder Suez bewerten soll, faktisch tot war; wir haben die Lücke geschlossen, Hormuz und Saudi-Arabien als Engstellen ergänzt und einen längst wirkungslosen Marine-Bonus repariert. Zum anderen floss die gelernte Qualitätsbewertung ihrer eigenen Züge nie in ihre Kaufentscheidungen ein — ausgerechnet in eine der wichtigsten Entscheidungen überhaupt. Der Grund war unspektakulär: Käufe werden anders protokolliert als einzelne Züge, und der Bewertungs-Code hatte nur das eine Format gelesen. Jetzt lernt die KI auch beim Einkaufen aus ihren Partien.

Und weil so viel von dem, was die KI tut, sonst unsichtbar bleibt, haben wir eine Schnittstelle zur AI eingefügt: eine öffentliche Live-Übersicht, die man einfach anschauen kann. Sie zeigt echte Zahlen aus den laufenden Testpartien — wie die Spiele ausgehen, wie lange Kampagnen über mehrere Runden halten, welche Territorien am umkämpftesten sind — dazu einen Live-Ticker der zuletzt beendeten Schlachten und der Strategie-Entscheidungen, die die KI gerade trifft. Alles echte Daten, keine geschönten Kulissen — dieselbe Ehrlichkeit, die dieses Tagebuch ohnehin verlangt.

Grenzen, die sich nie wehrten

Wenn unsere KI ein neutrales Land mit Garnison angreift, sollte daraus ein echter Kampf werden — mit Würfeln, Verlusten und echtem Risiko. Wir haben festgestellt, dass genau dieser Kampf nie begann: Der Weg dorthin führte durch drei aufeinanderfolgende Prüfungen, und die dritte war unbemerkt zu. Für die KI sah es so aus, als könne sie wehrhafte Neutrale einfach durchqueren oder überfliegen, als stünde dort niemand. Ein ganzer strategischer Baustein — die Frage, ob sich ein Angriff auf einen bewachten Nachbarn überhaupt lohnt — lief dadurch ins Leere. Jetzt greift das dritte Tor korrekt, und die Garnisonen wehren sich wieder.

Der Rest des Tages war die unglamouröse Sorte Arbeit, die trotzdem sein muss: vier Build-Warnungen ausgeräumt, die sich über Monate angesammelt hatten, und einen bekannten Randfall rund um die Archivierung alter Spielzüge sauber dokumentiert, bevor er uns irgendwann überrascht. Nichts davon sieht ein Spieler — aber es hält den Unterbau gerade.

Warum dieselbe Anzeige zweimal kaputt war

Statt nach jedem größeren Fund ein neues, einmaliges Audit zu starten, haben wir heute ein stehendes Werkzeug gebaut, das genau diese Art Lücken automatisch findet — bei jedem künftigen Commit, nicht nur bei Gelegenheit. Bevor wir ihm vertraut haben, haben wir es an sich selbst getestet und dabei gleich zwei Fehler im eigenen Prüfcode gefunden und korrigiert, bevor sie uns falsche Ergebnisse geliefert hätten. Der erste vollständige Durchlauf über die gesamte Codebasis liefert jetzt einen festen Vergleichspunkt für alles, was künftig dazukommt.

Der erste echte Beweis, dass sich das gelohnt hat, kam noch am selben Tag: Ein Dashboard-Feld, das seit Wochen leer war, blieb es auch nach einem ersten Reparaturversuch — eine zweite, unabhängige Ursache steckte in derselben Abfrage. Erst als wir mit echten Daten aus einem laufenden Testbatch nachgeprüft haben, kam der zweite Fehler ans Licht. „Code geändert" hätte hier gelogen — erst als die Anzeige tatsächlich etwas zeigte, war es wirklich behoben.

Vier stille Fehler an einem Tag

Wir hatten eine große, ehrliche Bestandsaufnahme gemacht — wie viele Informationen unsere KI wirklich nutzt und wo unterwegs etwas verloren geht. Zehn Punkte waren als besonders wichtig markiert; wir konnten alle zehn abhaken, dazu ein Dutzend kleinerer Funde. Der unangenehmste: Unser Langzeitgedächtnis identifiziert Partien über eine ID, die nicht immer eindeutig war — bei rund einem Viertel aller Spiele hätten zwei völlig unterschiedliche Partien im Gedächtnis der KI verschmelzen können. Behoben, indem die ID jetzt einen echten Zeitstempel enthält.

Zwei weitere, leisere Funde kamen dazu. Eine einzelne Vergleichsdatei, mit der unser Trainingssystem neue Modelle gegen die letzte gute Version prüft, gehörte seit Wochen aus Versehen dem falschen Systembenutzer — und blockierte seitdem still jede echte Aktualisierung, ohne dass etwas abstürzte. Und ein reparierter Fehler enthielt selbst einen zweiten: Der neue Code fiel bei jedem Aufruf lautlos auf genau den Wert zurück, den er eigentlich verhindern sollte — ein Fix, der sich selbst außer Kraft gesetzt hatte, bis jemand ein zweites Mal genau hinschaute.

Eine genauere Messung zeigte außerdem: Von rund sechzig kleinen Einzelsystemen, die jeweils zur Entscheidung unserer KI beitragen, stoßen 99 % bereits an eine interne Obergrenze, bevor die eigentliche äußere Begrenzung überhaupt greift. Praktisch heißt das: Egal wie viele der sechzig Systeme aktiv sind, am Ende kommt fast immer derselbe feste Betrag heraus — eine Erkenntnis, die erklärt, warum sich manche Reparaturen kaum im Ergebnis zeigen.

Ein Kampf, der einfach nicht enden wollte

Heute ging es nicht um neue Features, sondern darum, der KI beim Denken zuzusehen. Zuerst haben wir den Headless-Testmodus repariert — KI-gegen-KI-Spiele liefen bisher nicht ganz sauber im Hintergrund, jetzt landet nur noch ein einziges Symbol in der Taskleiste. Damit konnten wir einen großen Testlauf starten: 15 Instanzen, je 20 Spiele, 283 abgeschlossene Partien, komplett automatisiert — und dabei sind unterwegs noch ein paar kleinere Datenlücken zwischen Client und Backend aufgefallen und geschlossen worden.

Der interessanteste Fund war aber ein handfestes Rätsel: Das lernende Bewertungsmodell (ONNX) hat sich seit über drei Wochen praktisch nicht mehr verbessert, jeder automatische Trainingsversuch scheiterte an der eingebauten Qualitätsprüfung. Nach einiger Detektivarbeit fanden wir zwei echte Fehler in der Trainings-Pipeline: Testdaten und Trainingsdaten haben sich in seltenen Fällen überschnitten (die KI konnte quasi „abschreiben"), und ein einzelner, sehr einseitiger Testlauf konnte die komplette Qualitätsmessung verzerren, weil zu wenig auf Vielfalt in den bewerteten Spielen geachtet wurde. Nach der Reparatur ist die Modellqualität von „durchgehend unbrauchbar" auf „knapp an der Freigabeschwelle" gesprungen — ein klarer Fortschritt, auch wenn das perfekte Modell noch ein paar Trainingsrunden braucht.

Und dann war da noch ein Kampf, der sich im wahrsten Sinne festgefahren hatte: Angreifer und Verteidiger konnten sich gegenseitig nicht mehr schaden, keine Seite wollte aufgeben — das Spiel simulierte denselben Kampf über 13,5 Millionen Runden lang, ohne je zu einem Ergebnis zu kommen. Die KI hatte schlicht keinen eingebauten Punkt, an dem sie sich sagt: „Das bringt nichts mehr, ich ziehe mich zurück." Jetzt hat sie einen.

Noch ein Fall desselben Fehlers — Erst verifizieren, dann reparieren

Wir haben unsere Fixe von gestern gegenprüfen lassen — durch eine zweite, unabhängige Analyse parallel zu unserer eigenen. Der Hinweis: zwei der gestern reparierten Berater könnten trotz des korrekten Vokabulars immer noch blind sein, weil ihnen die eigentlichen Eingabedaten fehlen. Nachgeprüft, bestätigt: einer der beiden war tatsächlich betroffen — repariert, ohne dafür etwas Neues am Client zu ändern, indem wir Informationen wiederverwendet haben, die an anderer Stelle bereits zuverlässig ankommen.

Dieselbe zweite Prüfung hat außerdem zwei Dinge miteinander verknüpft, die wir bisher als getrennte offene Fragen behandelt hatten: einen spürbaren Rückgang bei der Konsequenz unserer Seekampagnen und einen frühen Fix am Zeitfenster, das solchen Kampagnen zum Erfolg verhilft. Beide könnten dieselbe Ursache haben — das lässt sich mit dem nächsten Testlauf direkt prüfen, statt zwei getrennte Untersuchungen zu führen.

Auch ein Fix, den man selbst schon für fertig hielt, profitiert offenbar von einem zweiten, unabhängigen Blick — das machen wir jetzt öfter.

Ein Nebeneffekt der gestrigen Aufräumaktion: Wir hatten eine Liste von 21 Stellen, an denen unser Client Informationen offenbar nicht an die KI weitergibt, die sie eigentlich bräuchte. Verlockend wäre gewesen, sie einfach alle nachzurüsten. Stattdessen haben wir zuerst für jede einzelne Stelle in der Versionsgeschichte nachgesehen, warum das so ist — eine frühere, unangenehme Erfahrung hat uns gelehrt, dass "sieht nach einem Fehler aus" und "ist wirklich einer" zwei verschiedene Dinge sind.

Ergebnis: 16 Stellen waren tatsächlich einfach nie nachgezogen worden, während unsere KI-Systeme drumherum weitergewachsen sind. Vier weitere gingen alle auf denselben einzelnen Commit zurück, der die Felder mit einer Begründung entfernt hatte, die sich als schlicht falsch herausstellte. Und eine Stelle war gar kein Versehen, sondern ein komplett fertig gebautes Feature (unterschiedliche Schwierigkeitsgrade), das auf einem Seitenpfad der Entwicklung liegen geblieben und nie zusammengeführt wurde — für uns kein Bug, sondern eine offene Produktfrage für später. Die vier echten Fehlfunde und die ersten sechs der neu entdeckten Lücken sind repariert und ausgeliefert, der Rest wartet bewusst auf eine gründlichere Einzelprüfung statt eines Schnellschusses.

Der zweite Fehler steckte hinter dem ersten — Strategien, die nie griffen

Nachdem wir gestern eine ganze Reihe stiller Berater-Systeme repariert hatten (mehr dazu im nächsten Eintrag), haben wir den Fix nicht einfach für gut befunden, sondern in einem echten Testspiel live mitgelesen, ob er wirklich greift. Die meisten Systeme meldeten sich sofort mit echten Werten zurück — eines blieb stumm.

Der Grund war ein zweiter, völlig unabhängiger Fehler: Dieser eine Berater braucht die Information, wie viele Produktionspunkte bereits in Infanterie, Panzer, Marine und Luftwaffe investiert wurden. Genau diese Aufschlüsselung kam beim Server nie an — sie wurde schlicht nie verschickt. Repariert, indem wir die gleiche Information stattdessen aus Daten ableiten, die zuverlässig ankommen.

Ohne den Blick ins laufende Spiel wäre uns das schlicht nicht aufgefallen — auf dem Papier sah der ursprüngliche Fix bereits vollständig richtig aus.

Unsere KI besteht aus vielen kleinen Teilsystemen, die jeweils eine Empfehlung abgeben — etwa: "jetzt ist ein guter Zeitpunkt für einen Vorstoß" oder "die aktuelle Kampagne passt zur momentanen Spielphase". Bei einer gründlichen Durchsicht ist uns aufgefallen: mehrere dieser Berater verglichen intern Namen, die es im tatsächlichen Spielgeschehen so gar nicht mehr gab. Die Bezeichnungen waren über die Zeit auseinandergedriftet.

Nichts ist dabei abgestürzt. Die Berater liefen bei jeder Entscheidung brav mit, kamen aber technisch nie zu einem Ergebnis — keine Fehlermeldung, einfach nur Stille. Genau deshalb ist es so lange nicht aufgefallen.

Wir haben insgesamt 13 solcher Fälle gefunden und auf das tatsächlich verwendete Vokabular umgestellt. Bei einem Teil davon war die richtige Zuordnung technisch eindeutig. Bei einem anderen Teil war es eine Ermessensentscheidung, welche Strategie zu welcher Spielphase passt — das haben wir bewusst offen im Code vermerkt und beobachten jetzt, wie sich die Berater in der Praxis schlagen, statt die Zuordnung als endgültig richtig zu behaupten.

Wir haben unsere Prüftools hinterfragt — Kaufentscheidungen unter der Lupe

Zwei Tage lang haben wir eine Zahl beobachtet, die uns Sorgen gemacht hat: Wie oft hält eine geplante Kampagne unserer KI mehrere Runden durch, statt sofort wieder abzubrechen? Diese Zahl sah plötzlich schlechter aus als zuvor — und unser erster Verdacht war, dass ein aktueller Fix daran schuld ist.

Nach gründlicher Prüfung kam die eigentliche Ursache ans Licht: Nicht das Verhalten der KI war schlechter geworden, sondern die Art, wie wir es gemessen haben, war von Anfang an ungenau. Unsere Auswertung hat versehentlich Kampagnen aus völlig unterschiedlichen Partien miteinander verglichen, statt jede Partie für sich zu betrachten — dadurch entstand der Eindruck „mehrrundiger Kampagnen", wo eigentlich nur zwei fremde Spiele zufällig nebeneinanderlagen.

Die Messung ist jetzt repariert: Jede Kampagne bekommt eine echte Start- und Endrunde, keine Annäherung mehr. Was das für die tatsächliche Kampagnenqualität unserer KI bedeutet, wissen wir erst nach dem nächsten Testlauf mit der korrigierten Messung — aber wir schauen jetzt zumindest durch ein sauberes Fenster.

Wir prüfen regelmäßig, ob die Werte, mit denen unsere KI trainiert wird, auch exakt so bei einer echten Kaufentscheidung im laufenden Spiel ankommen. Bei so einem Abgleich ist uns aufgefallen: möglicherweise kommt ein kleiner Teil der Kaufzusammensetzung — wie viel Infanterie, Panzer, Luftwaffe und Marine gekauft wurden — im Spiel nicht so an, wie die KI es beim Training gelernt hat.

Noch ist das eine begründete Vermutung, kein bestätigter Fehler — wir prüfen es gerade in Ruhe nach, bevor wir etwas ändern.

Warum reagiert unsere KI nicht mehr stur auf ihre Verbündeten

Kleiner, aber spürbarer Fix: Die KI hat ihr Bündnis-Ziel zu Spielbeginn einmal festgelegt — und danach nie wieder überprüft, egal wie sich die Lage entwickelte. Jetzt passt sie sich laufend an, solange die Partie noch in der frühen Phase ist, und bleibt danach bewusst bei ihrem Kurs. Konsequenz ist im späteren Spielverlauf wichtiger als ständiges Umdenken.

Forum ist live — Sicherheitscheck bestanden

Ihr könnt jetzt mit eurem Beta-Zugang direkt im Forum posten — Fragen, Bugs, Feedback, Diskussion. Registrierte Beta-Tester:innen melden sich mit ihrem Beta-Code an, ein Anzeigename reicht, eure E-Mail-Adresse bleibt für andere unsichtbar.

Bevor mehr Leute mitspielen, haben wir unsere Website und Server gezielt auf Schwachstellen geprüft — unter anderem, ob sich Formulare durch Tricks umgehen lassen und ob Nutzereingaben sauber verarbeitet werden. Ergebnis: sauber, ein kleinerer Fund (inkonsistente Absicherung an einer Admin-Funktion) wurde direkt behoben.

Beta-Anmeldung ist offen

Ab sofort könnt ihr euch für die Beta-Phase registrieren und euch euren Platz sichern — komplett kostenlos. Der eigentliche Download wird mit dem offiziellen Start der Beta-Testphase freigeschaltet; wer jetzt registriert, ist von Anfang an dabei.

Warum 24 gefundene Fehler eine gute Nachricht sind

Wir haben zwei Tage lang systematisch jeden Datenfluss durch unsere KI verfolgt: Wird ein Wert erzeugt? Gespeichert? Tatsächlich gelesen? Beeinflusst er wirklich eine Entscheidung? Dabei ist einiges aufgefallen — unter anderem ein Fehler, bei dem eine Niederlage mit 0 % Sieganteil vom System versehentlich als „neutral" statt als „eindeutig schlecht" gewertet wurde (ein klassischer Programmier-Stolperstein: null wird manchmal mit „kein Wert" verwechselt). Klingt klein, hätte aber das Lernverhalten verzerrt. Jetzt korrigiert.

Wie gewinnt unsere KI eigentlich? — Anpassung der Werte für Zerstörer und U-Boote

Wir haben uns 84 KI-Siege der Achsenmächte im Detail angeschaut, um zu verstehen, wie sie tatsächlich zustande kommen. Ergebnis: Echte Siege sind meist deutlich kürzere Partien (im Schnitt unter 47 Runden) als Spiele, die bis zum Rundenlimit laufen — ein klares Zeichen für einen echten Durchbruch statt eines zähen Patts. Auffällig auch: Die heiß umkämpfte Ostfront wird in fast allen Siegpartien dauerhaft gehalten, nicht nur kurz berührt. Eine Eroberung alliierter Hauptstädte spielte in keinem einzigen der 84 Siege eine Rolle — der Weg zum Sieg läuft bei uns fast immer über wirtschaftliche und territoriale Kontrolle, nicht über einen finalen Sturm auf eine Hauptstadt.

Kein Zufall, sondern bewusste Design-Entscheidung: Bei Landstreitkräften und Luftwaffe folgen wir exakt den klassischen Standardwerten, aber unsere Marine ist spürbar aufgewertet — stärkere Zerstörer, robustere U-Boote, wehrhaftere Flugzeugträger. Das betrifft alle fünf Nationen gleichermaßen, verschiebt also kein Gleichgewicht zwischen den Seiten, macht aber Seekriegsführung insgesamt relevanter.

Neue, größere Weltkarte

Die Karte ist gewachsen — mehr Gebiete, feinere Aufteilung, überarbeitete Produktionswerte. Das hat uns direkt gezeigt, wie gründlich man bei sowas sein muss: Ein Schwellenwert für die Siegbedingung war für die alte Karte berechnet und auf die neue schlicht nicht mitgewachsen. Gefunden, korrigiert, mit echten Zahlen nachgeprüft.

Wir haben unsere eigene KI auf die Probe gestellt

Wir wollten wissen, ob jede einzelne Komponente unserer KI wirklich etwas bringt — also haben wir sie systematisch einzeln abgeschaltet und verglichen. Ergebnis: ehrlich gemischt. Eine vermeintlich wichtige Komponente stellte sich als Programmierfehler heraus, der sie in allen Tests versehentlich lahmgelegt hatte — gefunden, behoben, neu gemessen. Für die übrigen Komponenten konnten wir (noch) keinen eindeutigen Einzeleffekt nachweisen. Kein Rückschlag — eine Untersuchung, die nur Bestätigungen liefert, hat man meistens falsch aufgesetzt.

Wo die Kampagnen-KI entstand — und zwei Wege zum Sieg

In diesen Monaten entstand das eigentliche Gehirn des Projekts. War die Februar-Rettung der Tiefpunkt, so war der Frühsommer der Aufbruch: Aus einer KI, die einzelne Züge berechnete, wurde eine, die über mehrere Runden hinweg ganze Feldzüge verfolgt. Sie bekam ein Gedächtnis über Partien hinweg, ein Gespür für Timing — wann aufbauen, wann zuschlagen — und, für uns das Spannendste, erste Ansätze von Allianzverhalten: Länder, die aufeinander reagieren, statt jedes nur für sich zu optimieren. Parallel entstand das Fundament, um das Ganze überhaupt online spielbar zu machen, sowie eine Trainings-Pipeline, mit der die KI aus den eigenen Partien lernt. Vieles davon war unsichtbare Klempnerei — aber ohne diese Wochen gäbe es nichts von dem, worüber wir seither schreiben.

Aus derselben Zeit stammt auch eine grundlegende Design-Entscheidung: Warum gibt es bei uns sowohl einen Hauptstadt-Sieg als auch einen optionalen Wirtschaftssieg? Weil sich klassische Turnierregeln nicht einfach übertragen ließen — auf unserer größeren, überarbeiteten Karte hätten alte Schwellenwerte nicht mehr gepasst. Der Hauptstadt-Sieg ist unser Standard, robust und unabhängig von der Kartengröße. Der Wirtschaftssieg ist bewusst optional und ausschließlich für die Achse gedacht — die Wirtschaftsübermacht der Allianz zu Spielbeginn macht einen symmetrischen Wirtschaftssieg schlicht unfair.

Zu zweit am Brett — und der erste Gedanke an eine KI

Im April wurde aus dem Bauprojekt zum ersten Mal ein Spiel, das man wirklich spielen konnte — und zwar zu mehreren. Zwei Modi entstanden: lokal abwechselnd an einem PC (der klassische Hotseat, einer zieht, dann der nächste) und online über das Netzwerk, sodass man nicht mehr am selben Tisch sitzen muss. Das klingt selbstverständlich, war aber der Moment, in dem sich das Ganze zum ersten Mal nach Runde, Gegner und echtem Spiel anfühlte statt nach Testumgebung.

Und genau da kam die alte Frage vom Anfang zurück: Wer spielt das eigentlich mit, wenn alle Freunde Familie und Job haben? Daraus entstand die Idee, eine KI zu entwickeln — bewusst bescheiden angefangen: heuristisch. Also klare Faustregeln statt großer Lernverfahren („wenn die Lage so ist, tu eher das“). Kein Gedächtnis, keine neuronalen Netze — erst einmal ein Gegner, der halbwegs sinnvolle Züge macht. Alles, was später dazukam — Gedächtnis über Partien, Feldzüge, Bündnisverhalten —, ist aus diesem ersten heuristischen Samen gewachsen.

Nie wieder ohne Sicherheitsnetz — wir entdecken Git

Der Februar hatte eine unbequeme Lehre hinterlassen. Nachdem ich den Quellcode nur mit Mühe über alte Sicherungen und das Decompilieren der letzten lauffähigen Version zurückgeholt hatte, war klar: Das größte Risiko für dieses Projekt war nicht die KI und nicht das Regelwerk — es war, dass eine einzige kaputte Datei Monate an Arbeit auslöschen konnte. Ich hatte etwas immer Komplexeres gebaut, ganz ohne Sicherheitsnetz.

Im März zog ich die Konsequenz: Versionskontrolle mit Git. Ab jetzt wird jede Änderung gespeichert, ist umkehrbar und mit Zeitstempel nachvollziehbar — eine kaputte Datei ist seither ein Fünf-Minuten-Ärgernis statt einer Existenzfrage. Im Rückblick der offensichtliche Schritt, aber er hat verändert, wie mutig ich experimentieren konnte: Man traut sich größere Umbauten, wenn man weiß, dass man jederzeit zurückkann. Alles, was ab Mai in der sichtbaren Historie dieses Projekts auftaucht, steht letztlich auf dieser einen Entscheidung.

Der Punkt, an dem ich fast aufgehört habe

Nicht jede Entwicklungsgeschichte verläuft geradlinig. In einer frühen Phase hat mein damaliger KI-Assistent immer wieder den Gesprächsverlauf verloren — ärgerlich, aber im Rückblick auch der Grund, warum ich mich selbst so tief ins Regelwerk eingearbeitet habe: Ich musste die Logik wirklich verstehen, nicht nur nachfragen können. Dabei wurde mir klar, wie wenig trivial selbst einfach klingende Dinge sind — eine Einheit korrekt von A nach B zu bewegen, ist programmiertechnisch alles andere als banal.

Dann kam der eigentliche Tiefpunkt: Der Quellcode ist mir kaputtgegangen. Ich musste mich über sehr alte Sicherungen und das Decompilieren der letzten lauffähigen Version zurückarbeiten, nur um überhaupt wieder einen Ausgangspunkt zu haben. Ich war ehrlich nah dran, aufzugeben. Dass ich es nicht getan habe, war der eigentliche Wendepunkt — mit jedem weiteren Entwicklungsschritt wurde das Projekt komplexer, und ich habe dabei deutlich mehr über KI gelernt, als ich zu Beginn für möglich gehalten hätte.

Die Karte steht — und der Kleinkram frisst den Monat

Ganz am Anfang stand die Karte. Ich habe sie an einem Vorbild orientiert, das viele kennen, sie aber bewusst überarbeitet und vergrößert — schon das war mehr Arbeit als gedacht. Und dann kam der Teil, den ich für eine Fingerübung hielt: Einheiten von A nach B bewegen. Klingt trivial, ist es aber überhaupt nicht — Wegfindung über Land und See, gültige Ziele, Reichweiten, all die Sonderfälle. Genau an diesem vermeintlichen Kleinkram habe ich im Januar die meiste Zeit verbracht.

Dazu die vielen „schnellen“ Grundlagen, die zusammen einen ganzen Monat ergaben: das Platzieren neuer Einheiten, die Wirtschaft mit ihren IPC, die verschiedenen Einheitentypen mit ihren Eigenheiten. Jede einzelne Sache sah nach einer Stunde aus und wurde zu einem Tag. Die eigentliche Lehre aus dem Januar war weniger technisch als grundsätzlich: Bei so einem Projekt gibt es kein „geht ganz schnell“ — die Summe des Kleinkrams ist das Fundament, auf dem später alles andere steht.

Wie alles anfing

Am Anfang stand keine Idee für ein Unternehmen, sondern eine Erinnerung: Stunden, die wir als Jugendliche in den 1980er-Jahren mit einem Strategiespiel verbracht haben, das uns bis heute nicht loslässt. Die erste Frage war simpel — kann ich das selbst nachbauen? Einheitenbewegungen, Regeln, welche Version, was könnte man sogar besser machen als das Original. Dann kam die zweite, ehrlichere Frage: Wer spielt das eigentlich mit mir? Alle Freunde von damals haben heute Familie, Job, kaum noch Zeit für einen ganzen Spieleabend.

Daraus wurde die eigentliche Idee hinter dem Projekt: eine KI, mit der oder gegen die man spielt — und die sich dabei anfühlt, als würde man wieder mit den alten Freunden am Tisch sitzen. Alles, was seitdem dazugekommen ist — Gedächtnis über mehrere Partien hinweg, Bündnisverhalten, Anpassungsfähigkeit —, kommt letztlich aus dieser einen Frage.

Warum wir auch zeigen, was schiefgeht

Uns ist aufgefallen, dass wir in den letzten Wochen mehr Fehler dokumentiert als Features angekündigt haben. Das ist Absicht, nicht Zufall: Ein Spiel mit lernender KI ist nur so vertrauenswürdig wie die Ehrlichkeit dahinter. Wir werden das beibehalten — auch wenn „wir haben einen Bug gefunden" sich weniger nach Marketing anhört als „neues Feature".

Angefangen hat dieser Devblog Anfang August 2026 — in dem Moment, als aus einem privaten Bastelprojekt bewusst ein öffentliches, nicht-kommerzielles Indie-Projekt wurde. Ab da wollten wir nicht nur ein fertiges Ergebnis zeigen, sondern den ganzen Weg dorthin: die Umwege, die Fehlversuche, die kleinen Durchbrüche. Genau deshalb gibt es diese Seite.