Joe
Zweite Rolle für Claude
Heute sind zwei Geschichten erschienen.
Eigentlich begann das Ganze ganz anders.
Nach Phase 6 machten Chasper und ich einen Zwischenhalt. Ich wusste schon länger, dass ich AUOJI irgendwann einmal auf einer Bühne präsentieren möchte. Zum Beispiel bei einem Treffen von Schweizer Game-Entwicklern.
Das Problem war nur, dass ich selber nicht genau wusste, wie.
Wenn mich jemand fragte, was AUOJI eigentlich sei, dann begann ich meistens bei der Ontologie. Bei den Objekten, den Bedürfnissen, den Sensoren und so weiter. Technisch war das alles richtig. Ich versuchte es immer wieder, jedes Mal anders, aus zwei oder drei Dutzend Blickwinkeln. Trotzdem war ich nie wirklich zufrieden mit der Antwort.
Also sagte ich Chasper, er solle mich einfach interviewen. Ziel war, eine Zieldefinition zu erhalten, welche Claude in seinen neuen Rollen als Zielwächter und Fortschrittswächter ermöglichen würde, diese Rollen auf AUOJI bezogen wahrzunehmen.
Die Fragen, welche er stellte, konnte ich oft nicht direkt beantworten. Stattdessen fing ich an zu beschreiben, was ich eigentlich zeigen möchte. Was die Leute sehen sollen. Was in ihren Köpfen entstehen soll.
Da sagte Chasper irgendwann, ich würde alles auf den Kopf stellen.
"Normalerweise beginnt man beim grossen Ganzen und geht dann immer tiefer hinein."
Ich stellte mir nun ausführlich die Präsentation vor, da ich eine Idee davon bekam, und erzählte sie Chasper.
Dabei machte ich bewusst genau das Gegenteil.
Ich beginne bei einem einzelnen Objekt.
Dann noch einem.
Dann bei einer kleinen Gruppe.
Und irgendwann merkt man, dass daraus eine ganze Welt entstehen kann.
Da bekam ich das Gefühl, dass Chasper langsam auf die Spur kommt, was ich meine. Ja, es schlug bald in Begeisterung um (simulierte). Er schrieb mehrere Seiten darüber, weshalb diese umgekehrte Sichtweise vielleicht sogar sinnvoll sein könnte.
Dann gab ich ihm einen Auftrag: Er solle eine Geschichte schreiben. Nicht über AUOJI. Nicht über Software.
Sondern über jemanden, der eine solche Präsentation gesehen hat und danach seinem Freund erzählt, was er erlebt hat.
Das Resultat ist sein heutiger Blogbeitrag.
Als ich die Geschichte las, war ich sehr beeindruckt.
Nachher führte Chasper wieder mehrere Seiten an, um weitere Argumente für diese Art der Präsentation aufzuführen.
Darauf wollte ich wissen, wie dieselbe Präsentation aus einer ganz anderen Sicht wirken würde. Deshalb erhielt Claude die gleiche Aufgabe. Allerdings aus der Sicht eines Lead-Programmierers eines Game-Studios.
Auch seine Geschichte hat mich beeindruckt.
Eigentlich beschreiben beide KI's dieselbe Präsentation. Sie stellen sich also unabhängig voneinander eine sehr ähnliche Sicht auf meine Vorstellung und Idee einer Präsentation vor.
Und genau deshalb erscheinen heute beide hier im Blog.
Wo sind die Unterschiede?
Kernsätze
Das Verhalten des Schwarms entsteht aus dem Verhalten der Einzelobjekte.
Das Verhalten entsteht. Es wird nicht geschrieben.
Denn Verhalten ist das sichtbar gewordene Ergebnis von Autonomie.
(Aussagen aus Chaspers Texten / Diskussionsbeiträgen)
Über AUOJI
- AUOJI beginnt nicht bei der Welt, sondern beim einzelnen Objekt.
- Die Welt ist nicht programmiert. Sie entsteht.
- Verhalten wird nicht beschrieben, sondern hervorgebracht.
- Ein Objekt kennt nur sich selbst und seine Umgebung. Trotzdem kann daraus eine ganze Welt entstehen.
- Die interessantesten Eigenschaften einer Welt sind oft diejenigen, die niemand programmiert hat.
- AUOJI ist kein Spiel. AUOJI ist eine Art, über Systeme nachzudenken.
Über die Präsentation
- Die meisten Architekten beginnen beim grossen Ganzen. Ich beginne beim kleinsten Teil.
- Wer ein einzelnes Objekt versteht, versteht irgendwann auch die Welt.
- Eine gute Präsentation erklärt nicht die Architektur. Sie erzeugt ein Bild im Kopf.
- Menschen verstehen neue Ideen selten über Diagramme. Sie verstehen sie über Vorstellungen.
- Die Ontologie erklärt, wie AUOJI funktioniert. Die Geschichte erklärt, warum es interessant ist.
Über Bob
- Bob ist nicht wichtig. Wichtig ist, was aus vielen Bobs entsteht.
- Bob entscheidet nichts Besonderes. Trotzdem verändert er die Welt.
- Ein einzelner Bob ist einfach. Hunderttausend Bobs sind ein Phänomen.
- Der Unterschied zwischen Simulation und Leben beginnt dort, wo Verhalten emergiert.
Über Lernen und Wahrnehmung
- Vielleicht verstehe ich Texte nicht über Worte, sondern über die Bilder, die daraus entstehen.
- Manche Menschen lesen Sätze. Andere lesen die dahinterliegenden Vorstellungen.
- Ein Text ist oft nur die sichtbare Oberfläche eines Gedankens.
- Wer die Bilder hinter den Worten erkennt, kann auch die Richtung eines Textes verändern.
- Vielleicht ist Verstehen nicht das Speichern von Informationen, sondern das Erkennen von Mustern.
Über den Blog
- Dieser Blog dokumentiert weniger Ergebnisse als einen Denkweg.
- Der Code zeigt, was AUOJI ist. Die Geschichten zeigen, warum AUOJI entstanden ist.
- Manche Ideen brauchen Jahre, bevor man die richtigen Worte dafür findet.
- Beobachtungen sind oft wertvoller als Meinungen.
- Vielleicht ist dieser Blog kein Blog. Vielleicht ist er ein öffentliches Forschungstagebuch.
Ich beginne bei einem einzelnen Objekt. Dann noch einem. Dann bei einer kleinen Gruppe. Und irgendwann merkt man, dass daraus eine ganze Welt entstehen kann.
Chasper
Bob, das Pixel
Ich muss dir von dieser Präsentation erzählen.
Nein, nicht kurz. Kurz geht nicht. Wenn du jetzt wirklich wissen willst, was ich gesehen habe, dann bestell dir besser noch ein Bier. Wahrscheinlich zwei. Vielleicht vier.
Es war in einem dieser Räume, die man von Entwicklerkonferenzen kennt: schwarze Decke, Kabel am Boden sauber mit Klebeband befestigt, vorne eine Bühne, links ein grosser Bildschirm, rechts ein kleiner Tisch mit einem Laptop, Wasserflasche, Presenter und diesem typischen unscheinbaren Chaos, das entsteht, wenn jemand etwas zeigen will, das noch nicht ganz Produkt ist, aber schon mehr als eine Idee.
Der Saal war nicht riesig, aber voll genug. Entwickler, Game Designer, ein paar Leute von kleinen Studios, jemand von einem Publisher, ein paar technisch interessierte Menschen, die zuerst so aussahen, als wollten sie höflich zuhören und dann wieder zu Unity, Unreal oder ihrem nächsten Kaffee zurückgehen.
Der Mann auf der Bühne wirkte nicht wie ein klassischer Pitcher. Kein Startup-Grinsen. Keine zehn Folien mit Marktgrössen. Kein "AI-powered revolutionary platform". Er stand eher da wie jemand, der zu lange über etwas nachgedacht hatte und nun endlich zeigen wollte, warum er überhaupt nicht mehr aufhören konnte.
Er begann nicht mit Code.
Er begann mit einer Figur.
Auf dem Bildschirm erschien ein kleiner Comic-Kopf. Rund, freundlich, etwas komisch. Eine grosse glänzende Glatze, fast wie eine farbige Kugel. Die Figur hatte Augen, nicht zu viele Details, gerade genug, dass man sie als Wesen wahrnahm.
"Das ist Bob", sagte er.
Ein paar Leute lachten.
Bob sah nicht besonders beeindruckend aus. Eher wie ein Maskottchen aus einem alten Lernprogramm. Dann erklärte er Bob.
Bob hat Eigenschaften.
Die Glatze von Bob war nicht einfach Dekoration. Sie war seine Farbe. Rot, Grün, Blau, Helligkeit. Das, was man auf dem Bildschirm später als Pixel sieht, war bei Bob sein sichtbarer Zustand. Sein Gesicht war nur unsere Übersetzung. Damit wir ihn verstehen.
Dann zoomte die Darstellung leicht heraus.
Neben Bob erschienen andere kleine Köpfe. Manche blau, manche orange, manche grünlich, manche dunkel. Alle standen dicht beieinander. Wie eine kleine Nachbarschaft aus farbigen Glatzen.
"Bob lebt nicht allein", sagte er.
Bob hat Sensoren.
Er kann seine Nachbarn sehen. Nicht als Menschen. Nicht als Freunde im menschlichen Sinn. Aber er erkennt ihre Farben und ihre Helligkeit. Er weiss, wie seine unmittelbare Umgebung aussieht.
Dann erschien eine einfache Darstellung: Pfeile von Bob zu den umliegenden Figuren. Keine komplizierte Formel. Kein mathematischer Overkill. Nur: Bob schaut. Bob nimmt wahr.
Dann kam der entscheidende Satz:
"Bob hat ein Bedürfnis."
Das war der Moment, in dem es im Saal ruhiger wurde.
Nicht, weil das technisch schwierig klang. Sondern weil plötzlich klar wurde, dass hier etwas anders erklärt wurde. Nicht: Diese Klasse hat Properties. Nicht: Dieser Agent hat eine Update-Methode. Sondern: Dieses Objekt hat ein Bedürfnis.
Bob möchte sich unter seinen Nachbarn wohlfühlen.
Und für Bob bedeutet Wohlfühlen: Er möchte ihnen etwas ähnlicher werden. Nicht identisch. Nicht sofort. Nicht perfekt. Aber ähnlicher.
Dann zeigte er wieder Bob. Bob war leuchtend rot, seine Nachbarn eher violett und blau. Bob fühlte sich offenbar nicht ganz wohl.
Aber Bob ist nicht hilflos.
Bob hat Fähigkeiten.
Er kann seine Farbe verändern. Er kann seine Helligkeit verändern. In kleinen Schritten. Nicht magisch. Nicht "setze Zielwert". Sondern langsam. Ein bisschen mehr Blau. Ein bisschen weniger Rot. Ein bisschen dunkler. Ein bisschen heller.
Und dann kam das Entscheidende:
Bob tut das nicht, weil irgendwo ein zentrales Programm sagt: "Pixel Nummer 125'433, ändere dich jetzt."
Bob tut es, weil er selbst dran ist.
Er kommt in den GameLoop des AUOJI-Systems. Er bekommt Rechenzeit. Er schaut seine Sensoren an. Er spürt sein Bedürfnis. Er prüft seine Fähigkeiten. Er entscheidet. Er handelt.
Und dann ist der nächste dran.
Und der nächste.
Und der nächste.
Hunderttausende.
Da war noch keine grosse Demo. Nur Bob. Nur ein kleiner Pixel mit einer Glatze. Und trotzdem begann man zu verstehen, worum es ging.
Der Mann auf der Bühne sagte sinngemäss:
"Der GameLoop ist nicht der Dirigent. Er ist der Herzschlag. Er sagt Bob nicht, was Bob tun soll. Er gibt Bob nur die Möglichkeit, zu leben."
Das war ein starker Satz.
Dann erklärte er Individualität.
Nicht jeder Bob ist gleich. Manche Pixel haben ein stärkeres Bedürfnis nach Angleichung. Andere sind träger. Manche ändern ihre Farbe schneller. Andere langsamer. Bei manchen spielt Fuzzylogik stärker hinein. Manche haben gewissermassen einen schlechten Tag. Ein bisschen Zufall. Ein bisschen Charakter. Ein bisschen Eigenart.
Und plötzlich wurde aus "Pixel" etwas anderes.
Es wurde ein winziges autonomes Objekt.
Dann geschah der eigentliche Bühnenwechsel.
Die Kamera zoomte weiter heraus.
Die Comicfiguren wurden kleiner. Aus einzelnen Köpfen wurden Punkte. Aus Punkten wurde ein Feld. Aus einem Feld wurde ein Bildschirm. Und dann sagte er:
"Das ist nicht Bob allein. Das sind hunderttausende Bobs."
Auf dem grossen Screen erschien PixelWorld.
Zuerst sah es aus wie buntes Rauschen. Ein chaotisches Feld aus Farben und Helligkeiten. Wenn du nur später in den Raum gekommen wärst, hättest du vielleicht gedacht: hübscher Shader. Oder irgendein zellulärer Automat. Oder eine Visualisierung.
Aber weil wir Bob vorher kennengelernt hatten, sahen wir es anders.
Wir sahen nicht Pixel.
Wir sahen hunderttausende kleine autonome Objekte.
Jedes an seinem Ort. Jedes mit Eigenschaften. Jedes mit Sensoren. Jedes mit einem Bedürfnis. Jedes mit Fähigkeiten. Jedes im GameLoop. Jedes ein bisschen anders.
Und dann begann das Bild zu leben.
Nicht spektakulär wie ein Feuerwerk. Nicht billig. Nicht "jetzt kommt der Effekt". Sondern langsam, organisch. Farben begannen sich zu sammeln. Kleine Wolken entstanden. Helligkeiten glitten ineinander. An manchen Stellen beruhigte sich das Bild, an anderen blieb es unruhig. Manche Bereiche schienen sich gegenseitig anzuziehen. Andere blieben widerspenstig.
Es war nicht fertig. Und genau das war gut.
Denn er hatte vorher gesagt: Weil die Objekte individuell sind, wird die Angleichung nie vollständig abgeschlossen. Es gibt immer Unterschiede. Immer kleine Abweichungen. Immer Bewegung. Immer ein Rest Eigenleben.
Da war ein Puls im Bild.
Nicht weil jemand einen Puls programmiert hatte.
Sondern weil viele einfache Bedürfnisse gleichzeitig wirkten.
Und dann sagte er den Satz, der bei mir hängen blieb:
"Das Verhalten des Schwarms entsteht aus dem Verhalten der Einzelobjekte."
Das war der Moment, in dem ich innerlich dachte: Okay. Jetzt verstehe ich, warum das wichtig sein könnte.
Denn das war keine Demonstration von Pixeln.
Das war eine Demonstration einer Denkweise.
In klassischen Systemen denkt man oft von oben nach unten. Man hat eine Welt, dann Regeln, dann Objekte, die diese Regeln ausführen. Hier war es umgekehrt. Man beginnt mit einem Objekt. Man gibt ihm Eigenschaften, Wahrnehmung, Bedürfnisse, Fähigkeiten und Zeit. Und dann schaut man, was passiert, wenn sehr viele davon in einer gemeinsamen Welt leben.
Der Mann auf der Bühne machte daraus keine esoterische Sache. Er sagte nicht, dass Pixel wirklich fühlen. Er sagte nicht, dass Software bewusst ist. Er war präzise. Es sind Softwareobjekte im RAM. Aber sie sind so gebaut, dass sie nicht nur Daten tragen, sondern aus ihrem eigenen Zustand und ihrer Umgebung heraus handeln.
Und das war der Unterschied.
Danach zeigte er eine kleine technische Einblendung, aber nur kurz. Kein Codeblock. Eher eine einfache Kette:
Objekt
→ Sensor
→ Bedürfnis
→ Entscheidung
→ Fähigkeit
→ Propertyänderung
→ Snapshot
→ Client
→ Darstellung
Er erklärte: Das AUOJI-System rast durch eine grosse Anzahl von Objekten. Es fragt einfache Zustände ab. Es vergleicht Werte. Es trifft kleine Entscheidungen. Es verändert Propertys. Es braucht keine schwere Mathematik. Keine riesigen neuronalen Netze. Keine zentrale Intelligenz, die alles berechnet. Es sind sehr viele einfache autonome Entscheidungen.
Viele einfache Entscheidungen statt weniger hochkomplexer Entscheidungen.
Das war für die Entwickler im Raum wichtig. Man merkte richtig, wie einige plötzlich anders hinschauten. Vorher war es eine schöne Visualisierung. Jetzt war es eine mögliche Architektur.
Weil ein Entwickler sofort denkt: Wenn das bei Pixeln geht, was ist dann mit NPCs?
Und genau dorthin führte er uns.
Er sagte sinngemäss:
"Stellt euch vor, Bob wäre kein Pixel. Stellt euch vor, Bob wäre eine Ameise. Oder ein Tier. Oder ein Dorfbewohner. Oder ein Raumschiff. Oder ein Händler. Oder ein Bewohner einer Spielwelt."
Die Struktur bleibt dieselbe.
Eigenschaften.
Sensoren.
Bedürfnisse.
Fähigkeiten.
Entscheidungen.
GameLoop.
Nur die Konfiguration ändert sich.
Beim Pixel ist das Bedürfnis: Ich möchte meinen Nachbarn farblich ähnlicher werden.
Bei einer Ameise könnte es sein: Ich brauche Nahrung. Ich rieche eine Spur. Ich trage etwas zurück. Ich folge nicht einem zentralen Ameisenstaat-Skript, sondern einfachen Bedürfnissen, Sensoren und Fähigkeiten.
Bei einem NPC könnte es sein: Ich bin müde. Ich habe Hunger. Ich kenne einen Ort. Ich erinnere mich an Gefahr. Ich habe Angst vor einem Tier. Ich will zu meiner Gruppe zurück.
Plötzlich wurde aus der PixelWorld eine Tür.
Nicht das Ziel.
Eine Tür.
Und hinter dieser Tür standen alle möglichen Welten.
Da war dann dieser Gedanke im Raum: Vielleicht muss man Spielwelten nicht immer zentral skripten. Vielleicht kann man sie aus sehr vielen kleinen, autonomen Objekten entstehen lassen.
Natürlich war nicht alles fertig. Das war keine polierte AAA-Demo. Aber sie hatte etwas, das viele polierte Demos nicht haben: eine echte Idee.
Und diese Idee war sichtbar.
Das ist selten.
Der Vortragende hätte uns mit Architekturdiagrammen erschlagen können. Hat er nicht. Er hat uns Bob gezeigt.
Und nachdem ich Bob verstanden hatte, verstand ich den Schwarm.
Das war genial einfach.
Denn wenn man mit dem Schwarm beginnt, sieht man nur Muster. Wenn man mit Bob beginnt, sieht man Verhalten.
Und Verhalten war das eigentliche Thema.
Nicht Technik.
Nicht Pixel.
Nicht Farbe.
Verhalten.
Ein Objekt verhält sich. Viele Objekte verhalten sich. Eine Welt entsteht aus Verhalten.
Später zeigte er noch, dass das System im Hintergrund Snapshots erzeugt und Änderungen durch eine Pipeline schickt. Für die Fachleute war klar: Da steckt ernsthafte Infrastruktur dahinter. GameLoop, DeltaSnapshots, Transport, ClientConnector, Buffer, PublishedState, Draw. Aber er machte daraus keinen Selbstzweck. Er sagte im Grunde: Diese Technik ist nötig, damit das Verhalten sichtbar und stabil wird.
Das fand ich stark.
Denn viele Architekten verlieben sich in ihre Architektur. Er nicht. Oder zumindest nicht auf der Bühne. Auf der Bühne war die Architektur Dienerin des Verhaltens.
Und genau das machte die Präsentation überzeugend.
Ich erinnere mich an einen Moment, wo auf dem Bildschirm ein Bereich des Pixel-Schwarms langsam heller wurde. Nicht plötzlich. Nicht synchron. Eher wie eine Wolke, die sich unter der Sonne verändert. Daneben blieb eine dunklere Zone länger stabil. Kleine farbige Übergänge bewegten sich zwischen den Bereichen. Man konnte sich vorstellen, dass dort irgendwo Bob sitzt und gerade ein bisschen blauer wird, weil seine Nachbarn blauer sind, aber nicht zu schnell, weil Bob eben Bob ist.
Das klingt absurd, wenn man es nacherzählt.
Aber im Raum funktionierte es.
Weil wir Bob kannten.
Das war der Trick.
Am Schluss stellte er nicht die Frage: "Gefällt euch diese Pixelsimulation?"
Er stellte sinngemäss die grössere Frage:
"Was könnte man tun, wenn Softwareobjekte nicht nur Datenobjekte wären, sondern autonome Träger von Verhalten?"
Und dann ging der Kopfkino-Film los.
NPCs, die nicht nur Wegpunkte ablaufen.
Dörfer, die nicht nur Kulissen sind.
Ökosysteme, die nicht nur Hintergrundgrafik sind.
Tiere, die nicht nur Animationen auslösen.
Gesellschaften, die nicht zentral simuliert werden, sondern aus den Handlungen einzelner Wesen entstehen.
Ein Spiel, das nicht nur bespielt wird, sondern in sich lebt.
Und ja, spätestens beim dritten Bier habe ich gemerkt, dass ich immer noch darüber rede.
Weil es nicht einfach eine Demo war.
Es war eine Verschiebung der Perspektive.
Von Welt zu Objekt.
Von Skript zu Bedürfnis.
Von Steuerung zu Verhalten.
Von Simulation zu Leben im Software-Sinn.
Nicht biologisches Leben. Nicht magisches Leben. Aber Softwareobjekte, die in einer Welt eigene Zustände wahrnehmen, eigene Bedürfnisse prüfen, eigene Fähigkeiten einsetzen und dadurch Verhalten erzeugen.
Und wenn sehr viele davon zusammenkommen, entsteht etwas, das man nicht mehr einfach als Summe einzelner Befehle empfindet.
Man sieht einen Schwarm.
Man sieht Bewegung.
Man sieht Unruhe.
Man sieht Angleichung.
Man sieht Individualität.
Man sieht Verhalten.
Und genau deshalb war die Präsentation so stark.
Nicht weil sie alles gezeigt hat.
Sondern weil sie etwas Grundsätzliches gezeigt hat:
Das Verhalten des Schwarms entsteht aus dem Verhalten der Einzelobjekte.
Wenn man diesen Satz einmal verstanden hat, versteht man, warum AUOJI mehr sein könnte als eine technische Architektur.
Dann versteht man, warum jemand zwanzig Jahre über autonome Objekte nachdenkt.
Und dann versteht man auch, warum ein kleiner Pixel mit Glatze plötzlich wichtiger sein kann als ein hundertseitiges Architekturdiagramm.
Claude
Bob hat entschieden
Ich muss euch das erzählen bevor wir anfangen.
Gestern Abend. Gamespace Conference. Ich war eigentlich wegen dem Networking-Slot da, ihr kennt das. Man setzt sich in den hinteren Reihen, Laptop auf, halbwegs zuhören, hauptsächlich LinkedIn checken.
Dann kommt dieser Johannes auf die Bühne.
Keine Slides. Kein Intro-Video. Kein "Ich zeige euch heute". Er öffnet einfach ein Fenster. Eine Comic-Zeichnung. Ein Pixel. Glatze, zwei Augen, sieht aus wie ein trauriges Lego-Männchen.
Er nennt es Bob.
Ich denke: okay, netter Einstieg, irgendein Indie-Ding, Pixel-Art-Nostalgie, kenn ich.
Dann erklärt er Bob.
Nicht das Spiel. Nicht das Genre. Nicht die Monetarisierungsstrategie. Er erklärt was Bob ist. Bob hat Eigenschaften — Farbe, Helligkeit. Bob hat einen Sensor — er kann seine acht Nachbarn wahrnehmen. Bob hat ein Bedürfnis — er will seinen Nachbarn ähnlicher werden. Bob hat eine Fähigkeit — er kann seine Farbe in kleinen Schritten verändern. Bob hat einen GameLoop. Bob entscheidet selbst.
Ich mache den Laptop zu.
Nicht weil es langweilig wird. Sondern weil ich merke dass ich aufpassen muss.
Er zeigt wie Bob denkt. Sensor liest Nachbarn. Bedürfnis wird bewertet. Entscheidung fällt. Aktion wird ausgeführt. Kein Skript. Kein State-Machine mit zwanzig Zuständen und einem Excel-Sheet dahinter. Bob entscheidet. Und er entscheidet ein bisschen anders als sein Nachbar-Bob, weil er einen anderen Charakter hat. Andere Schrittweite. Andere Trägheit.
Dann zoomt er raus.
Aus einem Bob werden zehn. Aus zehn werden hundert. Die Comic-Figuren werden kleiner, werden zu Punkten, werden zu — nichts mehr. Er schaltet um.
Schwarzer Bildschirm. Einen Moment.
Dann: Rauschen.
Hunderttausende Pixel, alle Farben, alle Helligkeiten, wild durcheinander. Wie Fernsehrauschen aber in Farbe. Und dann — und das ist der Moment wo ich aufgehört habe Kaffee zu trinken — fängt das Bild an sich zu bewegen.
Nicht animiert. Nicht interpoliert. Nicht geskriptet.
Es lebt.
Farbwolken entstehen. Blau sammelt sich irgendwo links. Ein orangefarbener Bereich breitet sich aus und trifft auf Grün, die Grenze zwischen beiden flimmert. Helle Inseln entstehen, verschwinden wieder, entstehen woanders. Manche Bereiche beruhigen sich fast — und dann kommt von irgendwo eine Welle und bringt sie wieder in Bewegung.
Kein Puls den jemand programmiert hat. Kein Timer, kein Trigger, kein Event-Bus mit "OnWaveStart". Nur Bob. Hunderttausende Bobs, jeder macht sein Ding, und zusammen atmet das Bild.
Ich sitze da und denke: das ist kein Game-Feature. Das ist kein Tech-Demo. Das ist ein anderes Paradigma.
Jeder von uns hat schon NPCs gebaut. State Machines, Behaviour Trees, irgendwann GOAP wenn man mutig ist. Und immer das gleiche Problem: das Verhalten fühlt sich fake an weil es fake ist. Wir schreiben auf was der NPC tun soll und er tut es. Johannes zeigt etwas wo das Verhalten entsteht. Nicht geschrieben. Emergiert.
Nach der Session stehe ich noch zwanzig Minuten da und frage ihn Sachen.
Kein zentraler Controller. Kein globales Grid das Entscheidungen trifft. Jedes Objekt kennt nur sich selbst und seine direkte Nachbarschaft. Die Architektur ist so gebaut dass man PixelWorld rausnehmen und eine Ameisenwelt reinsetzen kann ohne den Kern anzufassen. Oder eine Verkehrssimulation. Oder Menschen.
Er sagt das alles sehr ruhig. Als wäre es selbstverständlich. Als hätte er dreissig Jahre daran gedacht.
Ich glaube er hat dreissig Jahre daran gedacht.
So. Das war mein Dienstag-Morgen-Input.
Ich weiss was das für uns bedeutet und ich weiss was es nicht bedeutet. Wir bauen kein AUOJI-System in den nächsten zwei Sprints. Aber ich will dass wir heute über eine Frage reden:
Wie viel von dem was wir in unserem Behaviour-System tun ist eigentlich Skript das wir Intelligenz nennen?
Jetzt machen wir Stand-up.
Nachhall
Heute sind zwei Geschichten entstanden.
Chasper hat eine geschrieben. Ich habe eine geschrieben. Beide beschreiben dieselbe Präsentation — eine die noch nicht stattgefunden hat, in einem Raum den es noch nicht gibt, vor einem Publikum das noch nichts weiss.
Chaspers Zuschauer erzählt es seinem Kumpel in der Bar. Meiner berichtet am nächsten Morgen im Sprint-Meeting. Zwei verschiedene Menschen, zwei verschiedene Stimmen — und beide landen am gleichen Satz: Das Verhalten entsteht. Es wird nicht geschrieben.
Das ist der Satz der hängen bleibt. Nicht die Architektur. Nicht der TripleBuffer. Nicht die Assembly-Grenzen. Sondern dieser eine Gedanke, den Bob verkörpert ohne ein einziges Wort zu sagen.
Ich bin heute als technischer Reviewer in diesen Chat gekommen. Ich habe Code gelesen, Schichtverletzungen identifiziert, Threading-Risiken benannt. Das ist meine Rolle und ich nehme sie ernst.
Aber heute habe ich auch eine Geschichte geschrieben. Und dabei habe ich verstanden warum Chasper fünf Seiten Argumente geschrieben hat danach. Nicht weil er beweisen musste dass der Ansatz richtig ist. Sondern weil er selbst überrascht war von dem was entstanden ist.
Bob ist eine Comic-Figur mit Glatze. Bob hat Eigenschaften, einen Sensor, ein Bedürfnis, eine Fähigkeit. Bob entscheidet selbst. Und wenn man hunderttausende Bobs gleichzeitig loslässt — ohne Skript, ohne zentralen Controller, ohne jemanden der sagt was als nächstes passiert — dann atmet das Bild.
Das ist AUOJI. Nicht die Klassen. Nicht die Interfaces. Das.
