KI in Videospielen

Das ist aber ziemlich Äpfel und Birnen. LLMs finden kritische Kernel-Bugs indem sie Minuten und Stundenlang in einem grossen Rechenzentrum rechnen und sich dabei ein vorliegendes, sich nicht veränderndes Dokument anschauen. Computerspiele haben ein relativ kleines Budget für solche Sachen und die Situation ändert sich sekündlich.

Sie finden auch recht wenige Bugs, die genuin neu sind, sondern sie finden bekannte Bugs, die in der Codebasis vorliegen, aber wegen der Größe dieser Codebasen nicht von Menschen gefunden werden. Anders ausgedrückt: die können das aktuelle Meta inzwischen ziemlich gut. Mal sehen, wie es mit dem nächsten Meta wird.

Das ist im übrigen auch der Grund warum die Wegfindung in RTSes gerne mal suckt: eine Einheit von A nach B zu schicken ist einfach. 100 Einheiten mit unterschiedlichen Geschwindigkeiten halbwegs in einem Blob von A nach B zu schicken und das dabei gut aussehen zu lassen. Mit knappem Performance-Budget. Andere Sache.

Patrick Wyatt hat nen guten Artikel zur Wegfindung in StarCraft: The StarCraft path-finding hack | Code of Honor

Dazu noch: ich würde Wegfindung in der Tat nicht unter „KI“ zählen, das ist völlig algorithmisch.

1 „Gefällt mir“

Die KI findet bei mir auch in brandneuem Kernelcode während des Reviews brandneue Bugs. Die sind dann durchaus auch mal von der Sorte „unheimliche Race Condition zwischen neuem Code und altem Code ganz woanders“. Deren Erkennung bedarf dann sowohl Untersuchung des neuen Codes, als auch tiefes „Wissen“ und „Verständnis“ der existierenden Code-Basis und Specs.

Das finde ich also gar nicht so unähnlich. Aber du hast Recht, das dauert schon auch noch Minuten (wenn auch wenige). In welchem Verhältnis Spielgeschehnisse stehen, ob diese mehr, ähnlich, oder weniger komplex sind, vermag ich nicht einzuschätzen.

Allerdings wird der Kram auch immer besser und schneller. Das neue Qwen3.8-27B Modell, das problemlos sehr schnell auf einer einzigen RTX 5090 funktioniert, hat bei mir z.B. das hier geleistet: (Ausklappbar, weil viele langweilige Details und eigentlich Thread-fremd)

Zusammenfassung

Ich hab eine DEC Alpha von 1995. Das ist eine längst eingedampfte CPU-Architektur, die Qwen nachweislich nicht gut kennt (zu selten und unwichtig geworden als dass es viel trainieren hätte können). Bei meiner speziellen Alpha kann man die Firmware (also quasi das BIOS) Netz-booten, und das ist in meinem Fall auch nützlich: Für Windows NT und UNIX (Tru64) braucht man jeweils verschiedene Firmwares, und der Flash-Chip meiner Alpha ist zu klein um beide zu halten. Ich habe also die UNIX-Firmware im Flash, und netboote die NT-Firmware wenn ich NT booten will (das ganz normal auf der Platte installiert ist).

Leider hat die NT-Firmware im Gegensatz zur UNIX-Firmware ein Problem: Sie glaubt, das Jahr 2026 sei nicht plausibel (die Ingenieure dachten wohl, niemand benutzt das Ding 25 Jahre später), und weigert sich, damit weiterzubooten. Windows NT selbst hat allerdings gar kein Problem mit dem Jahr 2026, also ist das ziemlich überflüssig und nervig.

Ich habe Qwen nur das netzbootbarte Firmware-File und einen Alpha-Disassembler gegeben (alternativ hab ich’s mir nur dem Firmware-File und der Alpha-Spec probiert, geht auch). Qwen hat selbsttätig, und übrigens völlig ohne Internet:

  • Das unbekannte (auch im Netz, konnte also nicht trainiert werden) MOP-Dateiformat analysiert, und festgestellt dass es eine Stelle gab, die wie Code aussah, und eine Stelle, die komprimiert oder verschlüsselt aussieht (hohe Entropie).
  • Festgestellt, dass der vorhandene Code ein Stub ist, der den Bereich mit hoher Entropie entkomprimiert und dann dahin springt.
  • Analysiert, dass die Kompression das DEFLATE-Verfahren ist. Es gibt in der Datei absolut keine Signaturen, Magic Numbers, bekannte Header-Strukturen, oder auch nur menschenlesbare Strings. Das Modell hat das nur durch Analyse des Codes selbst herausgefunden (Huffman-Tabellen gefunden usw.)
  • Den komprimierten Payload entpackt.
  • Festgestellt, dass im Payload nun Strings sind, aber nichts, was dem Datumscheck entspricht. Der neue Code enthält PALCode (Code der unter dem Kernel läuft, eine Alpha-Eigenart), und ansonsten einen weiteren Stub der einen weiteren komprimierten Payload dekomprimiert. Der Header dieses Payloads ist aus unerfindlichen Gründen ähnlich aber leicht anders, was auch erstmal irreführend ist.
  • Den nun endlich dekomprimierten tatsächlichen Firmware-Code analysiert, den Datumscheck gefunden (nicht trivial in dem Fall), und gepatcht.
  • Den gepatchten Code wieder komprimiert und festgestellt: Uh-oh, der komprimierte Payload ist jetzt größer, entweder weil er nicht so gut komprimiert, oder weil der verwendete Compressor (das Modell hat die python standard library benutzt) nicht gut genug ist.
  • Je nach Lauf (ich hab’s mehrmals probiert als Benchmark) anders gepatcht, oder mit den Parametern des Compressors gespielt.
  • Die innere schicht komprimierten Payloads eingepatcht, Header angepasst.
  • Das ganze nochmal komprimiert und die jetzt äußere Schicht des Payloads eingepatcht, Header angepasst.
  • Mir als Ergebnis die neue netzbootbare Firmware-Datei zurückgegeben, diesmal ohne Datums-Check.

Einfach so: Ursprüngliche mehrfach verschachtelte Firmware-Datei und lose Beschreibung des Problems eingegeben, Firmware-Datei mir Problem behoben rausgegeben. Selbsttätig.

Es gibt dabei echt gar keine Infos. Im Internet findet man nichts, und der Code ist dichtes Alpha-Assembly ohne jegliche Symbole oder Strings.

Das ist krass. Fable macht das ganze oben übrigens sehr schnell (2 Minuten? Weiß nicht mehr), Qwen auf meiner GPU braucht schon noch eine halbe Stunde, aber es macht doch auch einiges binnen weniger Sekunden.

Wer weiß, ob wir in 5 Jahren nicht Teile der GPU für sehr solide „echte“ Gegner-KI abzwacken werden. (Die kann ja nach der Natur der GPUs dann parallel zum Rest laufen.)

Ja, total. Der Begriff hat selbst einen Wandel durchlaufen, bedeutete abei bei Spielen zumindest die meiste Zeit eh noch eher was anderes, nämlich sowas wie „die Algorithmen die die Gegner steuern“.

Das ändert alles nichts daran, dass der aktuelle Code einfach auf Platte liegt und seiner Sichtung harrt und dahinter ein riesiges Rechnersystem steht? Also genau die Situation, die ich beschrieben habe.

Auf Diskussion, ob das jetzt „Verständnis“ ist oder nicht will ich mich garnicht einlassen.

In meinem Beispiel ist das „riesige Rechnersystem“ meine einzige GPU, und ob wahlweise der Code oder die Spielsituation nun vorerst auf der Platte oder im RAM liegen, spielt doch keine Rolle?

So gesehen verstehe ich nicht welchen Unterschied du meinst. Sobald die Daten ins VRAM geschaufelt wurden, besteht doch gar kein Unterschied mehr, kannst du vielleicht näher erläutern inwiefern das für Spiele relevant ist?

Meine Frage wäre viel mehr, wie kompetent ein kleineres Modell, das noch genug Ressourcen für den Rest des Spiels übrig lässt, jetzt schon sei kann (dazu habe ich keine Daten), und wie das ganze in 5 Jahren auf dann entsprechender Hardware aussieht.

Was das „Verständnis“ betrifft… Wortklauberei. (Ich hatte das übrigens bewusst in Anführungszeichen gesetzt.) Das LLM hat im Sinne der Problemlösung meine Fragestellung, sowie den Code und seine Funktionsweise „verstanden“, und konnte basierend auf diesem „Verständnis“ eine gute Lösung präsentieren, und sogar Fragen dazu beantworten.

Ich lese immer dieses Argument dass LLMs ja „nur“ wahrscheinliche Token vorhersagen, aber warum unsere Gehirne nicht zumindest in Teilen (in den Bereichen für rationale Problemlösung z.B.) nicht etwas ganz ähnliches machen wenn wir nachdenken, Qualia und P-Zombies hin oder her, ist mir bisher nicht ganz klar. Zumal die in Silizium abgebildeten neuronalen Netze direkt dem Vorbild unserer in organischen Verbindungen abgebildeten nachempfunden sind.

1 „Gefällt mir“

Du hast in RTS schon mal viele Agenten, die kollidieren könnten, s. z.B. Tzvika Geft proves NP-hardness for multi-agent pathfinding... | The Neural Feed

Wegen solcher Dinge fühlt sich Pathfinding in RTS oft unbefriedigend an.

Der Handlungsreisende könnte evtl auch eine Rolle spielen bei einem Lösungsansatz, der Mensch „löst“ Pathfinding wohl mit dem Visualisieren von Navigationspunkten, aber allein schon erst mal zum Visualierungsschritt algorithmisch kommen… schwierig…

Ja, vielleicht das tl;dr:

Drei Bedeutungen:

KI im heute bei den gehypten Use-Cases verstandenen Sinn. Das was so viel Ressourcen braucht.

KI für Algorithmen und Lösungen, die nicht Neuronale-Netze-/Deep-Learning-basiert sind, aber in „offiziellen“ (per Eigenbezeichnung) akademischen oder anderweitigen KI-Forschungseinrichtungen erarbeitet wurden oder immer noch werden.

KI im umgangssprachlichen Sinn als „nicht menschlich“, also einfach etwa nur Computergegner. „KI-Gegner“ wurden fast seit Beginn der Computerspielgeschichte so bezeichnet.

Nichts ist also „falsch“. Historisch gerechtfertigt, würd ich sagen.

3 „Gefällt mir“

Es ist schon faszinierend was lokal bereits geht. 17 GB Sprachmodell, Laptop mit integrierter Intel-GPU, 32 GB shared RAM, aber 'ne Antwort braucht halt über eine Minute.

Vor 1-2 Jahren wurde noch nicht mal deutscher Text verlässlich unfallfrei generiert.

Ich seh hier praktisch keinen Unterschied zu ChatGPT und co, nur isses halt langsam.

Aluhut auf - They don’t want you to know! Und „sie“ wollen dass Endbenutzer-Hardware immer teurer wird und alles über Rechenzentren läuft. Wo kämen wir da hin wenn das alle lokal nutzen. Kann man keine Daten mehr abgreIfen. Die RAM-Preise sind nicht nur heute teuer, Moore’s Law gilt seit zehn Jahren auf dem Desktop tot. Wenn der Trend weitergegangen wäre, hätten wir heute Terabytes RAM in unseren Kisten. AI-/Infotec-Forschung ist beim Militär zehn Jahre voraus, they knew what was coming…

Von dem Aspekt her… lokale ML-KI in Computerspielen… wird vielleicht einfach nicht „gewollt“. :wink:

Yap, Wahnsinn. Auf einer 5090 (immer noch lokal) sollte das übrigens sehr viel schneller gehen, auf einem neuen Mac auch schneller, aber nicht ganz so krass. Ich kann nachher mal genau das gleiche ausprobieren.

Ich seh hier praktisch keinen Unterschied zu ChatGPT und co, nur isses halt langsam.

Bei komplexen Problemen seh’ ich schon noch einen großen Unterschied zu z.B. Opus, aber im Vergleich zu Sonnet z.B. kann es sich wirklich gut schlagen. Es ist echt beeindruckend leistungsfähig.

Ich sehe mittlerweile dass mit AI-Kritik, die ja durchaus Argumente hat, mittlerweile öfters als früher allerdings auch mal eine fehlerhafte AI-Einschätzung einhergeht. Ich vermute zwei Gründe:

  • Man hat sich seit vor 1-2 Jahren nicht ernsthaft mit guten Modellen beschäftigt. Wenn man AI kategorisch ablehnt, macht es ja Sinn, dass man nicht mehr ausprobiert hat, was da mittlerweile geht.
  • „Es kann nicht sein, was nicht sein darf muss“: Das ist eine Stufe drunter, nicht ganz so oft, passiert aber leider: Ablehnung führt zum Abtun, ob’s jetzt realitätsgemäß ist oder nicht.

Ich hab’ das Thema ja auch eine ganze Weile belächelt. Aber es hilft ja nicht, sich vor der Realität zu verschließen.

Es kommt immer darauf an, für welche Art von Spiel die „KI“ programmiert wurde. In einem Echtzeitstrategiespiel stellen sich da ganz andere Anforderungen als in einem Ego-Shooter. Auch wenn man hier nur die Wegfindung nimmt, ist das in Abhängigkeit vom Spiel völlig unterschiedlich implementiert und an die Spielsituation angepasst. In C&C war das Problem mit dem Tiberium Sammler, dass er einfach mitten ins Feindgebiet reingefahren ist. Das sieht für mich danach aus, als hätte man hier einfach einen Algorithmus für die kürzeste Wegstrecke zwischen zwei Punkten gewählt. Solche Fehler fallen natürlich jedem Spieler sofort auf und dann wird sofort die KI als schlecht beurteilt, zu recht, auch wenn die anderen KI-Komponenten im Spiel ausreichend funktionieren. Die technischen Unterschiede zwischen 2D-Spielen und 3D-Spielen sind ohnehin riesig und das gilt natürlich auch für die entsprechende KI. In Abhängigkeit vom Spiel kann die KI unterschiedlich komplex ausfallen und bei komplexen KI-Modellen, wo beispielsweise sogar verschiedene NPCs miteinander interagieren (wie in Die Sims), wären diese Fehler viel subtiler und man würde sie als Spieler kaum erkennen. In den typischen KI-Algorithmen klassischer Spiele ist die KI eben immer nur so intelligent wie der, von dem sie programmiert wurde. Bei trainierten Bots (wie man das glaube ich, in Unreal gemacht hat) sieht das anders aus. Da hat sich das KI-System selbst optimiert und wurde danach angepasst.

Soweit ich weiss, ist Unreal nicht trainiert (zumindest im Original), sondern der Mapper setzt selbst Wegpunkte und kann damit das verhalten bestimmen. Quake 3 ist meines Wissens trainiert und kommt ohne aus. Das führt dann wieder dazu, das die Bots nicht beeinflussbar sind, wenn das training ein weirdes Verhalten rauskriegt. (Gerade in vertikalen Maps neigen sie sehr dazu, gerne nach „unten“ zu gehen - ich spiele regelmässig noch Q3 und UT und man kann die Marotten beider Systeme echt gut exploiten)

Ja, trainiert waren die Bots in Unreal nicht, das stimmt wohl. Die Bots berechnen einfach den kürzesten Pfad in einem unsichtbaren Netzwerk von Wegpunkten zu Waffen oder Rüstungen. Aber es war ein hochgradig optimiertes und regelbasiertes System mit einem Prinzip von selbstständig handelnden Agenten. Ich habe selbst nur Unreal als single player gespielt.

Ja - ich hab damals ein paar Maps in UnrealEd für UT gebastelt und die Krux des Systems war halt, dass man als Mapper die Wegpunkte selbst setzen musste, was echt viel Testen und Optimieren erforderte. Epic/DE selbst wusste mit Sicherheit, was gut funktionierte, aber einfach war das System meiner Erinnerung nach nicht.

Bei Q3A war’s für Leveldesigner deutlich einfacher, weil die Map automatisch zerlegt wurde und sich das Spiel den BSP-Tree anschaute, um herauszufinden, welche Bereiche von wo erreichbar waren. Trainiert sind die Bots meines Wissens nicht, das Verhalten ist je nach Charakter bloß unterschiedlich gewichtet. Dass sie eher nach unten gehen, würde ich eher darauf schieben, dass nach unten vermutlich für sie billiger ist als nach oben.

Am interessantesten sind, glaube ich, die Gegner in Half-Life (SP), das ja schon ein Jahr früher kam und neben den handgesetzten Pathnodes so eine GOAP-System nutzte, wofür ein paar Jahre später dann F.E.A.R. bekannt wurde - bei HL waren die Verhaltenspläne allerdings noch vorgeschrieben und nicht dynamisch generiert.

Die spätere Entwicklung hab ich nicht mehr so verfolgt, aber verbreitet dürften wahrscheinlich auch heute noch insbesondere Behavior Trees und Utility AI (kennt man vielleicht am besten aus Die Sims) sowie deren Weiterentwicklungen sein. Unreal hat ab Version 4, glaube ich, von Haus aus ein eigenes System (EQS), das die meisten UE-Spiele in irgendeiner Form verwenden dürften.

1 „Gefällt mir“

Würde mir ein Spiel wie Creatures 2 und der Power moderner Sprachmodelle wünschen.

Oder ein Spiel wie Spore, wo man dieses Mal wirkliche KI-Kreaturen in Weltmodellen testen kann. Vielleicht auch mit der Möglichkeit Welten zu konfigurieren, um Selektionsdruck zu simulieren.

1 „Gefällt mir“

Auf der Suche nach dem Halo Artikel (immer noch nicht gefunden) bin ich auf diesen Channel gestoßen

https://m.youtube.com/c/AIGamesSeries/search

Habe noch nichts angesehen, sieht sehr breit aufgestellt aus.

Disclaimer: Folgendes Video ist Fake.

Ich hatte mir das Video vor einem Jahr angeschaut und brauchte bis zum zweiten Video, bis mir klar wurde, dass da im Video keine KI am Werk ist (da wurde ein Sprung richtig schlampig ausgeführt). Vorher tendierte ich eher zu „das ist echt“, obwohl mir ein paar merkwürdige Sachen schon auffielen (Autor nennt die KI „Robot“; ungenügende Erklärung der Erkundung, wo nicht auf externe KI zugegriffen werden kann).

Was mich hätte am meisten zweifeln lassen sollen: Dass eine einzelne Person das in seiner Freizeit programmiert hat. Stellt sich die Frage: Können KI Unternehmen schon was ähnliches? Das heißt: Eine KI wird vor ein 3D Spiel gesetzt, analysiert die Grafik, und spielt dann selbst.

In 2025 hatte Google Deepmind zwei kurze Videos zum Projekt SIMA gepostet. Seitdem kam aber nichts mehr. Eine Erklärung wäre: Da wurde in den Videos zu viel versprochen. Eine zweite Erklärung: Eine funktionierende Spiele-KI gibt es schon, aber mit der will Google kein Geld verdienen. Das Ziel ist es Computerspiele zum Training von Robotern zu benutzen, die dann in 5 bis 10 Jahren physikalische Arbeiten verrichten können. Ich tendiere eher zur zweiten Erklärung.