Modder-Interview #1: DyDo-KI/DylanDog
DylanDog, Autor der wohlbekannten DyDo–KI, wird dieses Mal interviewt. Kurz und schmerzlos: Er ist ein Mod-Entwickler und kein Programmierer. Er hat sich bislang mit JavaScript, PHP und AJAX befasst. Echtzeitstrategiespiele wie C&C, Warcraft oder Empire Earth gehörten immer zu seinen Leidenschaften. Heute ist seine Freizeit sehr eingeschränkt, weshalb er meistens im Zug an DyDo arbeitet, auf den Hin- und Rückfahrten zu und von der Arbeit. Falls sich doch mal ein wenig Freizeit am Abend ergibt, so kann auch diese für die Arbeit an DyDo genutzt werden, wohingegen nur eine sehr geringe Chance für ihn besteht an Wochenenden zu entwickeln.
Kreuvf: Wie bist du das erste Mal mit Warzone 2100 in Kontakt gekommen? Und wie lange liegt das zurück?
DylanDog: Ich denke ich habe es Anfang 2009 mit Google gefunden, während ich nach Freeware-RTS-Spielen gesucht hatte. Dann irgendwann im Mai 2009 entschloss ich mich mir die BecomePrey-KI näher anzuschauen, ich weiß nicht mehr warum. Ich fing damit an einige Ereignisse zu verbessern, stellte dann aber fest, dass die Dinge, die ich einbauen wollte, eine vollständig neue KI benötigen würden.
Kreuvf: Was war dein Grund überhaupt mit einer anderen KI anzufangen? War die Standard-KI zu schwach? Worin unterscheidet sich BecomePrey? Und was ist im Vergleich zu DyDo anders?
DylanDog: Es war einfach Neugier! Ich fing an mir das BP-Script anzuschauen, weil jeder dachte es wäre die beste KI. Ich stellte dann schnell fest, dass ich in der Lage war die Script-Sprache zu verstehen und es eine tolle Sache wäre an einer KI für ein Echtzeitstrategiespiel zu arbeiten. Der größte Unterschied zwischen DyDo und BP? Alles!!! Vom Ernten (Bau von Ölbohrtürmen) bis zum Basenbau, von der Energieverwaltung (BP hat keine) hin zur Verwaltung von Gruppen (BP hat keine Verteidigergruppe, seine Basis ist praktisch unverteidigt, sofern ich mich recht entsinne). Auch die Forschungswege sind unterschiedlich… und DyDo ist sogar mit 4 verschiedenen Persönlichkeiten angelegt, selbst wenn die Unterschiede noch nicht wirklich ausgeprägt sind. Ich habe Niker, BP-Entwickler, zu danken, da er wirklich eine ausgezeichnete Dokumentation zu BP erstellt hat, was die Dinge echt einfacher macht. Noch dazu sind einige Teile aus DyDos KI-Script-Code (nur paar Funktionen) aus der Standard-KI und Aivolution, die ich für eine bessere KI halte als die Standard-KI und die BP–KI, übernommen.
Kreuvf: Bei all den Features, welches davon a) funktioniert am besten, b) erfüllt dich am stärksten mit Stolz und c) ist am problematischsten, was die Implementierung anbelangt?
DylanDog: Zu a: Ich kann nicht wirklich sagen, welches das beste ist, da dort so viele gute Dinge sind. Es gibt da aber ein paar Features, die gut funktionieren:
- DyDo verwaltet zwei Verteidiger- und zwei Angreifergruppen aus Einheiten (zusätzlich zu einer VTOL– und einer Unterstützergruppe).
- Eine der Gruppen ist gemischt (Cyborgs + Panzer).
- Es sendet niemals zwei LKW zu selben Ölquelle.
- LKW sind ebenfalls in Gruppen organisiert: Bauen (baut Gebäude), Verteidigung (baut Verteidigungsanlagen) und Ernte (baut Ölbohrtürme).
- Zielauswahl ist nicht zufällig: Benötigt eine KI Energie, so werden die feindlichen Bohrtürme angegriffen, nicht deren Basen.
- Die Zahl an zu bauenden Gebäuden hängt von der Zahl an Ölbohrtürmen ab.
- Forschung geschieht nicht zufällig.
- Die Energieverwaltung funktioniert auch gut, denke ich.
Zu b: In sämtlichen anderen KI werden Entscheidungen, was zu tun ist, von zahlreichen Einzelereignissen im Skript bestimmt, in DyDo nicht. Ich habe ein zentralisiertes Ereignis für die Kontrolle der meisten wichtigen Aktionen eingeführt, das ich „AIbrain“ nenne. Dieses Ereignis wird sekündlich ausgeführt, sammelt einige Statistiken und entscheidet dann welche anderen Ereignisse aktiviert werden sollen und welche nicht. Die Energieverwaltung findet hier statt. Mir gefällt auch der Umstand, dass ich KI-Stärke-Stufen eingeführt habe… und offensichtlich bin ich stolz darauf, dass DyDo nicht schummelt! Es erhält nicht mehr Energie, es gewährt sich nicht selbst Zugang zu irgendwelchen Forschungsthemen und es erhält keinerlei Geschenke (Einheiten oder Gebäude). Die einzige Sache, die es tut, die kein Mensch tun kann, ist die Sammlung von Statistiken über die Feinde.
Zu c: Die VTOL-Verwaltung könnte stark verbessert werden und ich werde das auch tun… problematisch ist auch den verschiedenen KI-Persönlichkeiten unterschiedliche Verhalten zu geben. Aber wirklich problematisch ist es die Erwartungen der WZ-Spieler zu erfüllen!!! Viele denken, dass eine KI wie ein Mensch agieren könne, aber das wird niemals der Fall sein. Ein guter WZ-Spieler ist in der Lage eine KI durch verschiedene Taktiken zu schlagen. Die Fähigkeit mehrere Taktiken zu benutzen (wie etwa die Entscheidungen einen bestimmten Forschungspfad für ein bestimmtes Ziel zu verfolgen) ist schwierig zu implementieren. Was die KI-Stärke anbelangt: Ein Spiel 1 KI gegen 1 menschlichen Spieler wird immer der Mensch gewinnen, „Jeder gegen jeden“ in einem 4er-Spiel ist eine andere Sache (und sogar noch schwieriger, wenn DyDo auf eine Stärke von 5 gesetzt ist).
Kreuvf: Was denkst du sind die begrenzenden Faktoren der KI-Engine des Spiels für dich als KI-Entwickler? Welche Dinge würdest du gerne einbauen, kannst es aufgrund der Beschränkungen aber nicht?
DylanDog: Ich habe keinerlei Erfahrung mit anderen KI-Engines, aber ich muss sagen, dass die Warzone-KI-Engine echt großartig ist. Als KI-Entwickler hast du so gut wie alles, was du zum Entwickeln einer guten KI brauchst. Sicher gibt es ein paar Dinge, die man noch einbauen könnte, aber nichts davon würde große Veränderungen bewirken. Es gibt da eine Sache, die ich ein wenig einschränkend finde: Entfernungsberechnungen basierend auf Wegsuche. Was ich meine ist, dass man die Länge einer Route, die ein LKW bis zu einem bestimmten Punkt braucht, nicht wissen kann. Es gibt eine Funktion, die den Abstand zweier Punkte liefert, aber das ist „nur“ der reine Punkt-zu-Punkt-Abstand „in der Luft“, diese Funktion führt keine Wegsuche durch oder berechnet die Route, die der LKW nehmen würde. Eine neue Funktion, die die Weglänge zum Objekt ausgibt, wäre wirklich toll, aber ich denke, dass es zu schwierig zu implementieren ist.
Kreuvf: Zusammengefasst heißt dies, dass das Spiel an sich die nötigen Voraussetzungen erfüllt, um eine herausfordernde KI zu erstellen und du versuchst genau das, richtig? Die Entwickler planen Aivolution mit der Dydo-KI zu ersetzen. Aivolution war eines von Tromans Projekten und er wollte eine lernfähige KI. Was denkst du über lernfähige KI? Was denkst du sind die Chancen einer solchen KI und wo liegen ihre Grenzen?
DylanDog: Nun… ich habe nicht versucht eine zu bauen, ich habe schon eine gebaut! Ich hätte das bis November/Dezember 2009 nicht sagen können, aber jetzt bin ich ziemlich zufrieden mit der geleisteten Arbeit. Ich habe immer noch einige Ideen im Kopf wie man DyDo weiter verbessern könnte, aber ich sehe es jetzt schon als eine wirklich herausfordernde KI an.
Soweit ich weiß kannst du mit dem derzeitigen Engine-Interface keine lernende KI aufstellen, weil es dir an Wegen mangelt eine Datenbank zu verwalten, in der Informationen permanent gespeichert werden (ich meine auch nach Spielende). Troman konnte das vermutlich durch ein ad hoc eingebautes Feature für AIvolution im Warzone-2100-C-Code tun, irgendwie erkennt Warzone, dass AIvolution geladen ist und speichert einige Informationen. Lernfähigkeiten wären sicher eine tolle Sache für eine KI.
Dies ist eine Übersetzung des englischen Originals „Modder interview #1: DyDo AI/DylanDog“.
Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)