Wir sind Jonas (der kühle Kopf mit Brille) und Johannes (die Grinsebacke) und wir arbeiten als Gameplay-Programmierer an Anno 1800. Zusammengerechnet sind wir 53 Jahre jung und arbeiten seit etwa 9 Jahren bei Ubisoft Blue Byte. Was wir die 44 Jahre davor gemacht haben? Natürlich Anno gespielt 😉
Heute freuen wir uns, euch einen kleinen Einblick in ein Feature geben zu können, dass uns schon viele Monate beschäftigt: Die Aufbau KI.
Wie bringt man Bits und Bytes menschliches Verhalten bei?
Dutzende Stunden damit zu verbringen am perfekten Bebauungsplan zu tüfteln stellt für viele Annoholiker einen der Hauptanreize am Spiel dar. „Kann ich auch die letzten paar freien Bauplätze noch sinnvoll nutzen?“ und „wo passt mein Zoo am besten hin?“ sind dabei gängige Fragen. Aber auch das Spielen mit oder gegen herausfordernde KI-Gegner ist ein grundlegender Teil des Anno-Erlebnisses.
Allerdings ist das Erstellen einer glaubwürdigen KI (kurz für „künstliche Intelligenz“) nicht einfach, da die Spiel-KI die Welt durch völlig andere Augen als ein menschlicher Spieler wahrnimmt; deshalb müssen wir ihr erst beibringen, wie sie glaubwürdige Städte bauen kann, und zwar in einer Sprache, die sie auch versteht.
Dabei geht Anno 1800 zurück zu älteren Titeln wie Anno 1404, in denen die computergesteuerten Mitspieler (also die Charaktere, die wie der Spieler selbst Inseln besiedeln und bebauen) größtenteils denselben Regeln folgen müssen wie der Spieler. Dazu arbeiten unter der Motorhaube der sogenannten „Aufbau-KI“ zahlreiche Algorithmen die versuchen das Verhalten menschlicher Spieler zu simulieren. So wird die KI, wie auch menschliche Spieler, darauf angewiesen sein, durch Steuern Geld zu verdienen, eine funktionierende Wirtschaft zum Gewinn von Ressourcen aufzubauen und die Bedürfnisse der Bevölkerung zu befriedigen, um sie auf die nächste Stufe aufsteigen lassen zu können. Unsere oberste Priorität für das KI-System ist, dass es immer denselben Regeln wie der Spieler folgen sollte – ganz unabhängig davon wie freundlich, aggressiv oder exzentrisch die Charaktere sich verhalten.
Allerdings ist Anno ein ziemliches Monster was die schiere Anzahl an Features und Systemen betrifft. Darunter befinden sich auch solche, die für einen spannenden Wettkampf mit menschlichen Spielern zwar nötig sind, allerdings zu kompliziert, als das die KI sie sinnvoll nutzen könnte. So können die computergesteuerten Mitspieler beispielsweise keine Quests lösen und somit keine Gegenstände als Belohnungen verdienen. Um zu vermeiden, dass der KI hieraus ein Nachteil entsteht, werden wir ihr andere Möglichkeiten geben, Zugang zu benötigten Gegenständen zu erhalten.
Ein echter Charakter: Eine persönliche Note für jeden Mitspieler
Es liegt in ihrer Natur, dass Computerprogramme immer versuchen Aufgaben möglichst effizient in Sekundenbruchteilen zu berechnen; deshalb gehört einiges an Arbeit dazu ihnen eine eigene Persönlichkeit wie die des eifersüchtigen Räuberbarons von Malching zu verpassen. Es ist uns sehr wichtig das jeder dieser computergesteuerten Mitspieler sich denkwürdig verhält, von ihrem diplomatischen Gebaren über ihre Stadtplanung zu wirtschaftlichen Präferenzen. Alle diese Faktoren sollten im Verhalten der KI klar nachzuvollziehen sein, und ihren jeweiligen Städten eine ganz persönliche Note verleihen.
So wird natürlich jeder dieser Charaktere eine eigene Strategie verfolgen, beispielsweise ob er sein Geld eher in kulturelle Gebäude oder eine mächtige Kriegsflotte investiert. Dabei können die Entscheidungen bis ins kleinste Detail gehen, beispielsweise ob und wann militärische Ausgaben eher in Verteidigungsanlagen oder in bestimmte Schiffstypen investiert werden; aber auch bei den kulturellen Gebäuden haben verschiedene computergesteuerte Mitspieler unterschiedliche Präferenzen.
Wenn ein Charakter beispielsweise ein Faible für goldene, wogende Getreidefelder hat, werden wir per Parameter eine Überproduktion erlauben um diese Präferenz zu ermöglichen. Im krassen Gegensatz dazu steht von Malching mit seiner ausbeuterischen Natur, die wenig Platz für malerische Anblicke lässt und sich auf gnadenlose industrielle Effizienz fokussiert.
Auch beim Bau von Straßennetzwerken und dem Anlegen von Wohngebieten, unterscheiden sich die einzelnen Charaktere, da es für den Spieler langweilig wäre und sich zudem kalt und künstlich anfühlen würde, wenn jeder KI-Mitspieler exakt die gleiche Stadtplanung verfolgt. Die Individualisierung geht sogar so weit, dass verschiedene KIs unterschiedliche Ornamente und Dekorationen bevorzugen.
In dieser Simulation haben wir die AI mit unendlichen Ressourcen ausgestattet und einfach mal “bauen” lassen. Die grünen Flächen sind Ornamente, in der finalen Version kann die KI jegliche Ornamente nutzen.
Diese persönliche Note der KI hängt von zahlreichen Parametern ab, anhand derer der Computer Entscheidungen trifft. Diese haben Einfluss auf verschiedenste Dinge, wie die allgemeine Baugeschwindigkeit (wie viele Produktionsgebäude für Baumaterialien will der Charakter besitzen) oder die schon erwähnten Baustrategien für Häfen und Kriegsschiffe.
Um das ganze Konzept etwas zu verdeutlichen wollen wir euch einige Beispiele für solche Parameter geben:
– KI-Gegner auf höheren Schwierigkeitsgraden werden Baumaterialien nutzen sobald sie verfügbar sind
– Einfachere Gegner werden sich etwas mehr Zeit mit ihren Entscheidungen lassen, auch wenn Materialien schon verfügbar sein sollten
– Wir können festlegen welche Schiffe die jeweilige KI für Handel und Krieg bevorzugt
– Wie schnell expandiert die KI? Wird sie direkt versuchen möglichst viele Inseln zu besiedeln, oder sich zunächst auf den Ausbau der Hauptinsel konzentrieren?
Wie Entscheidungen gefällt werden: Location Scores
Während solche Parameter das generelle Verhalten festlegen, benötigt die KI natürlich auch noch weitere Systeme, zum Beispiel um zu entscheiden wo ein guter Bauplatz für ein bestimmtes Gebäude ist. Eine solche Entscheidung mag dem erfahrenen Anno-Spieler trivial erscheinen; mangels Intuition benötigt die KI jedoch genau definierte Kriterien anhand derer sie erkennt wo der ideale Bauplatz ist.
Schauen wir uns also mal ein Beispiel dafür an, welche Kriterien die KI benutzt um zu entscheiden wo die neue Windmühle für die Brotproduktion platziert werden soll. Zunächst werden mögliche Bauplätze anhand folgender Kriterien bewertet:
– Es soll kein Bauplatz verschwendet werden, zum Beispiel indem man kleine, nicht nutzbare Flächen zwischen Straßen und Gebäuden vermeidet
– Die Windmühle muss im Einzugsbereich eines Lagerhauses liegen
– Sie sollte in der Nähe der anderen Produktionsgebäude aus derselben Warenkette liegen
– Als Produktionsgebäude sollte die Mühle außerhalb eines Wohngebietes liegen
Das System wird nun das Bauplatzgitter der gesamten Insel analysieren und den verschiedenen Plätzen anhand dieser Kriterien eine Bewertung (im Englischen: Score) zuweisen. Diese Scores sagen dem Computer wo die idealen, akzeptablen oder auch schlechten Bauplätze für ein Gebäude liegen. Dabei kann es gerade im späteren Spielverlauf durchaus vorkommen, dass die KI auf einer dichtbebauten Insel auch mit einem Bauplatz, der nur einen mittelmäßigen Score hat, Vorlieb nehmen muss. Aber natürlich gibt es noch weitere Faktoren die es zu Bedenken gilt – zum Beispiel, wenn die KI schon mehr als eine Insel besiedelt hat. Würde es vielleicht mehr Sinn machen das Gebäude schlichtweg auf einer anderen Insel oder sogar in einer anderen Session zu platzieren?
Hier seht ihr Scores einmal durch die Augen einer künstlichen Intelligenz.
Programmierer: Lehrer und Problemlöser in einem
Derart komplexe Systeme können nicht eben mal auf die Schnelle erstellt werden, und auch nicht während der frühen Entwicklungsphasen. Als Programmierer müssen wir unserer KI ständig von Neuem beibringen wie sie mit sich rapide verändernden Entwicklungsbuilds und immer neuen Features zurechtkommen kann. Wenn unsere Kollegen aus dem Game Design ein neues Feature implementieren weiß die KI zunächst schlichtweg nicht, wie sie damit umgehen soll, weshalb wir ihr erst einmal helfen müssen sich an die neue Situation anzupassen. Man stelle sich vor, dass gerade Häuserbrände neu ins Spiel implementiert wurden, und die arme KI noch keine Ahnung hat wie sie mit dem lodernden Inferno in ihrer Stadt umgehen soll, weil ihr noch niemand erklärt hat, dass sie eine Feuerwache bauen muss. Ohne dieses Kriterium, beziehungsweise Wissen, würde die KI in aller Seelenruhe dabei zusehen wie ihre Stadt bis auf die Grundmauern niederbrennt.
Wir haben aber auch noch ein anderes, relativ neues Beispiel dafür, wie neue Features scheinbar unüberbrückbare Probleme für die computergesteuerten Mitspieler darstellen können. Wir haben erst kürzlich Flüsse als neues Element im Spiel eingebaut, die zwar die Konstruktion von Brücken erlauben, aber alle anderen Gebäude blocken. Bevor man ihr erklärt wie die Flüsse funktionieren würde die KI vermutlich frustriert versuchen Gebäude im Fluss zu bauen, und die gesamte Landmasse am anderen Ufer ignorieren. Als Programmierer müssen wir der KI also erklären warum sie Brücken benötigt, und wo sie errichtet werden können. Was sich hier recht einfach liest, benötigt die Erstellung einer völlig neuen Simulation und viele Stunden Arbeit am Code. Teil unserer Arbeit ist es also immer die neuesten Feature-Implementierungen zu verfolgen um sicherzustellen, dass die KI alle Systeme im Spiel sinnvoll nutzen kann und dem Spieler stets eine Herausforderung bietet.
Hier visualisieren wir für Euch einmal wie die KI die Bauflächen katrografiert, bebaubare Flächen ausspäht und Distanzen misst.
Die Summe aller Einzelteile
Wenn man die Menge an eng miteinander verwobenen Features in Anno bedenkt, ist die Entwicklung einer glaubwürdigen KI eine enorme Aufgabe, da jedes neue Puzzelteil neue Herausforderungen darstellt. Dabei stellt die heute vorgestellte Aufbau-KI natürlich nur einen Aspekt unserer lebhaften und denkwürdigen computergesteuerten Mitspieler dar; andere Aspekte sind die Diplomatie oder ihr Verhalten in Seeschlachten. Beim Festlegen unserer Entwicklungspläne für die Aufbau-KI haben wir viel auf Feedback und Wünsche aus der Community zurückgegriffen, und wir hoffen das wir auf einem guten Wege sind, eine KI zu programmieren, die nicht nur glaubwürdig, sondern auch fair und unterhaltsam ist.
Wir hoffen ihr fandet diesen kleinen Einblick spannend, und freuen uns auf euer Feedback – immerhin ist das Verhalten der KI ein direktes Resultat unserer Erfahrung und des Feedbacks aus der Community.