Ubisoft La Forge ist eine offene Forschungs- und Entwicklungsinitiative, die Wissenschaftler und Ubisoft-Experten mit dem Ziel vereint, die Lücke zwischen akademischer Forschung und Innovation in Videospielen zu überbrücken. Sie experimentieren mit den neuesten Technologien und Techniken in der Videospielproduktion und stehen an der Spitze der akademischen Welt. Engagierte Teams erforschen den Einsatz neuester Technologien, wie zum Beispiel künstliche Intelligenz, um Spiele realistischer, unterhaltsamer und effizienter in der Entwicklung zu gestalten.
Deep Reinforcement Learning ist einer der möglichen Einsatzszenarien: Eine Art von Machine Learning, die KI verwendet, um die effizientesten Lösungen für eine Vielzahl von Problemen zu finden. Wir haben mit Joshua Romoff gesprochen, um einige ihrer Geheimnisse zu lüften und herauszufinden, wie sie dabei hilft, realistischere NSCs zu erschaffen, ihnen bei der Navigation durch komplexe Spielwelten zu helfen und menschenähnlichere Reaktionen zu erzeugen. Er ist Datenwissenschaftler bei Ubisoft La Forge und in Montreal geboren. Er hat seine Liebe zu Videospielen in einen Doktortitel in diesem Feld verwandelt. Nun forscht er an verschiedenen Anwendungen des maschinellen Lernens in Spielen. Er hat gerade erst einen Vortrag beim Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2021 gehalten, um die Durchbrüche vorzustellen, die er mit seinem Team erzielt hat, um die Wegsuche und Navigation mithilfe von maschinellem Lernen von NSCs zu verbessern.
Was ist Deep Reinforcement Learning und wie funktioniert es?
Joshua Romoff: Da muss ich erst einmal ein paar Begriffe erklären: „Agent“ und „Aktion“. Unter einem Agent verstehen wir in der KI im Wesentlichen die Hauptfigur, die mit der Welt interagiert. In dieser Rolle nutzen wir „Bots“ für unsere Forschung. Unter der Aktion verstehen wir die Interaktion, die ausgeführt wird. Ich stelle mir gern Spieler:innen als Erweiterung eines Gamepads vor und jede Eingabe, die sie durch ihr Gamepad vornehmen, löst eine Aktion aus.
Aber konzentrieren wir uns auf den Teil des Reinforcement Learning: Dahinter steht der Grundsatz, dass du versuchst ein Verhalten zu bestärken, ähnlich wie beim Pawlowschen Hund, bei dem der Wissenschaftler eine Glocke läutet, wenn der Hund gefüttert werden soll. Und Hunde verbinden kurz darauf die Glocke mit einer Belohnung. Man versucht also bestimmte Verhaltensmuster mit Belohnungen oder Strafen zu ermutigen oder zu verringern. Wir nutzen dieses System mit dem KI-Agent, indem wir ihm Punkte geben, wenn er etwas tut, was uns gefällt oder ihm Punkte nehmen, wenn er etwas tut, was wir nicht wünschen. Meine Aufgabe besteht darin, die Tests zu entwerfen und festzulegen, wann wir Belohnungen geben oder wegnehmen. Das Ziel der KI liegt darin, das Bestergebnis aus den verfügbaren Aktionen zu erzielen.
Das Deep beschreibt die Art, wie der Agent die Welt empfindet, in der er sich befindet; in Wesentlichen also ein tiefes neuronales Netzwerk. Ein Bildschirm ist eine komplexe Angelegenheit, auf dem potenziell hundertausende Pixel gleichzeitig dargestellt werden. Wie also verarbeitet man diesen Bildschirm und all die Eingaben? Ein tiefes neuronales Netzwerk nimmt diesen Bildschirm, verwandelt ihn in eine viel kleinere Dimension, analysiert die Daten und leitet die Informationen in den selbstverstärkenden lernenden Teil, der dann die Aktionen aufgrund der eingehenden Daten durchführt. Das nennen wir End-to-End-System, denn alles ist enthalten und die Daten kreisen in diesen Systemen, von einem Ende zum anderen und dann wieder zurück. Das machen wir mit jedem Bild, verteilen Punkte für die auf den Aktionen anhand des Ergebnisses in der Umgebung. Dann führen wir viele Wiederholungen durch, um den Agent schließlich die Aktionen ausführen zu lassen, die wir sehen möchten.
Gibt es Spiele, die dich bei deinem Studium des Deep Reinforcement Learning inspiriert haben?
JR: Aber sicher. Ich habe mich immer für Open-World-Spiele interessiert, in denen du herumläufst und mit NSCs interagierst, wie zum Beispiel in Far Cry. Was mir immer wieder bei dieser Art von Spielen auffällt, ist wie Spieler:innen mit der KI von diesen NSCs interagieren und das ist für mich ein wichtiger Faktor des Erlebnisses. Du interagierst mit dieser Welt und die NSCs stellen einen großen Teil dieser Interaktion dar. Ich hatte schon immer Spaß daran, die NSCs durcheinanderzubringen und es als Herausforderung gesehen, die KI auszutricksen, um zu sehen, wie ich sie manipulieren kann. Wenn ich im Kampf mit einem Gegner bin und mich dann dazu entschließe, einen Berg raufzuklettern, schaue ich zu, wie der Gegner in den Berg kracht, weil er nicht klettern kann. Oder ich sehe mir an, wie er in anderen Situationen reagiert. Das hat mich schon immer in meiner Arbeit beflügelt. Ich stelle mir immer vor, wie wir das verbessern und der KI zeigen können, sich mehr wie ein Mensch zu verhalten.
Wie sieht dein Tag als Wissenschaftler in der Forschung und Entwicklung aus?
JR: In meinem täglichen Umfeld könnte ich Experimente durchführen und mir die Hände damit schmutzig machen, indem ich einen „KI-Agent“ dazu bringe, eine bestimmte Aufgabe in einem Spiel zu erledigen. Sobald das Experiment eingerichtet ist, besteht es aus Beobachtung. Ich sehe mir Plots und Grafiken an und betätige einige Stellschrauben, um das Ergebnis zu optimieren. Ein weitere Teil meiner Aufgaben besteht darin, mit Master-Student:innen und Doktorand:innen zu arbeiten, die an ihrem Abschluss arbeiten. Alle unsere Student:innen werden bezahlt. Ich arbeite mit ihnen und ihren Professor:innen, um Projekte für sie zu definieren. Normalerweise haben wir immer einen ganzen Haufen an Projekten gleichzeitig laufen. Das hilft den Studierenden aber auch uns. Ich kann natürlich nicht alle Programme allein schreiben, oder? Sobald wir einen funktionierenden Prototypen entwickelt haben, stellen wir die Technik in eine Sandbox-Umgebung, die eigentlich eine vereinfachte Version der aktuellen Spiel-Engine ist. Hier können wir die Ergebnisse unserer Arbeit verfolgen. Wenn ein Projekt funktioniert, besteht die Möglichkeit, dass die Arbeit eines Studierenden im Spiel erscheint, das wir gerade entwickeln. Sie erhalten dafür die Erfahrung, wie es ist, an einem unserer Spiele zu arbeiten. Wir versuchen also immer, die Projekte so auszurichten, dass das Ergebnis zu etwas führt, das unsere Teams in ihren Produktionen verwenden können.
In deinem Vortrag beim AIIDE ging es unter anderem darum, dass du einige Tests in Spielen wie Hyper Scape gemacht hast, um mehr „Spieler:innen-artige“ Bots zu erschaffen. Kannst du uns mehr darüber erzählen?
JR: Wir haben ein paar Tests in Hyper Scape durchgeführt. Das war allerdings nicht auf den Live-Servern. Das Spiel bot dennoch eine interessante Sandbox für einige Fragen, auf die wir Antworten erhalten wollten. Was wirklich cool an Hyper Scape ist, ist die komplexe 3D-Umgebung, die aufwendig für die Navigation ist und auch in der Vertikalen sehr viel Raum birgt. Den Spieler:innen stehen sehr viele Werkzeuge zur Verfügung. Sie können auf Felder springen, die sie gerade hinauf in die Luft schießen und Doppelsprünge vollführen. Du kannst all diese Funktionen nutzen, um auf die Dächer der Gebäude zu gelangen. Das lässt sich alles kombinieren, daher ist es für einen Spielentwickler oder Tester interessant zu wissen, ob die Karte, die sie entworfen haben, es den Spieler:innen auch ermöglicht, sich überallhin zu bewegen.
In der Regel verwenden Spiele etwas, das wir Navmesh nennen. Das ist eine Art von 2D-Karte aller durchquerbaren Bereiche der Welt. Mithilfe dieser Daten können die Bots festlegen, wo sie hin wollen und wie sie dorthin gelangen. Aber es war äußerst schwierig, Tests mit dieser Methode durchzuführen. Wenn es so viele verrückte Aktionen wie Sprungfelder und Doppelsprünge sowie vertikale Etagen gibt, die nicht immer mit Treppen oder Rampen verbunden sind, dann steigt die Anzahl der Möglichkeiten ins Unermessliche. Hier war die Verwendung von Deep RL sinnvoll, denn wir konnten den Agent in eine Trainingsschleife werfen. Dort konnte er selbst lernen, welche Aktionen von Punkt A zu Punkt B führen, ohne ein Navmesh anzulegen. Die wichtigste Nutzung lag also im Wesentlichen darin, dass wir einem Agent diese Bewegungen beibrachten und sie dazu verwendeten, die Karte zu testen, um sicherzustellen, dass alles erreichbar ist.
Wir haben gehört, dass du bei einigen deiner Tests mit anderen Spielen interessante Ergebnisse erzielt hast. Kannst du uns mehr darüber berichten?
JR: Ein Beispiel ist der Bot, den wir tatsächlich für For Honor trainiert haben. Unser Ziel bestand darin, dass sich der Agent besser verteidigt, also haben wir ihn dafür belohnt. Das endete damit, dass der Agent sich dazu entschloss, den Kampf nie zu beenden und sich auf ewig weiter verteidigte. Das ist wirklich unterhaltsam, denn eine der größten Herausforderungen beim Trainieren von Agents mit dieser Methode liegt darin, dass egal welche Einstellungen du vornimmst und welche Aktion du belohnst, er wird theoretisch lernen, wie er das auf bestmögliche Weise ausführen kann. Wenn du ihm eine Belohnung für das Überleben oder die Verteidigung gibst, dann macht er das, weil du ihn immer wieder dafür belohnst. Aber du willst nicht unbedingt, dass der Bot alle Spieler:innen in jeder Partie besiegt oder? Das würde keinen Spaß machen, also musst du andere Arten des Verhaltens belohnen als die Verteidigung, um etwas Abwechslung in das Verhalten zu bringen.
Ein weiterer Grund, dass du diese kleinen Zusatzbelohnungen reichst, ist, dass es den Lernprozess beschleunigt. Es ist ganz einfach, hier etwas Bonus für die Verteidigung und dort für den Angriff zu verteilen. Aber es ist nicht offensichtlich, wie sich diese Boni kombinieren und manchmal hast du am Ende ein wirklich lustiges Verhalten erzeugt. Ein weiteres Beispiel hatten wir in Hyper Scape bei den Navigationstests. Wir hatten den Agent darauf trainiert, sich schnellstmöglich zwischen zwei Punkten zu bewegen, aber er hatte noch nicht die Möglichkeit zu sprinten. Er hat tatsächlich herausgefunden, dass er sich durch Springen und ein paar Kameradrehungen etwas schneller bewegen konnte als einfach nur zu gehen. Es war also wirklich lustig, ihm dabei zuzusehen, wie er diese Bunnyhops machte. Diese beiden Beispiele finden sich in meinem Vortrag beim AIIDE wieder.
Sind diese Ergebnisse für den Prozess irgendwie nützlich?
JR: Das hängt ganz von der Anwendung ab. Wenn es darum geht, das Spiel zu testen, wie es bei unseren Experimenten der Fall war, sind diese Ergebnisse äußerst hilfreich, denn du erfährst, welches optimale Verhalten aus der Belohnung resultiert, die du gibst. Dir fallen diese Muster auf, die der Agent lernt und welches Verhalten ihm dabei hilft, sein Ziel zu erreichen. Das kann zu Erkenntnissen führen, mit denen du nicht gerechnet hast. Damit kannst du wieder den Code debuggen und erfahren, ob er so funktioniert, wie du es erwartest.
Haben die aktuelle Konsolengeneration und Dinge wie Streamingdienste neue Möglichkeiten eröffnet, die zuvor nicht für die KI in Spielen denkbar waren?
JR: Ja, auf jeden Fall. Wenn wir uns die Geschichte ansehen, begann die Forschung an Deep Learning in den 80ern und 90ern. Die Forschenden wurden durch die verfügbaren Rechenkapazitäten sehr eingeschränkt. Wenn du ein Deep-Learning-Modell auf einer älteren Konsolengeneration durchführen wolltest, war es unmöglich, dies lokal zu tun. Aufgrund des Rechenaufwands würdest du die Framerate abwürgen. Die Menge an Rechenleistung, die man nun zu Hause hat, hat sich drastisch erhöht. Die aktuelle Hardware an sich hat sich dramatisch verbessert. Mit der Kombination aus all diesen Dingen und der Menge an Forschung, die in diesem Feld in den letzten Jahren stattgefunden hat, sind wir an einem Punkt, an dem wir all diese Probleme lösen können. Nun können wir Bots mit diesen verrückten Möglichkeiten durch wirklich komplizierte Karten in 3D-Welten jagen. Er kann jetzt einigermaßen Effizient laufen und agiert dabei viel menschlicher als alles, was wir in festen Code gießen könnten. Es ist auch überhaupt nicht mehr abwegig, mehrere dieser Agents in einem Spiel herumlaufen zu lassen und dabei all diese komplexen Berechnungen zu machen. Es geht nicht mehr darum, was in zehn Jahren passieren könnte. Die Forschung und die Hardware sind schon da und haben ermöglicht, was wir heute tun können.
Für welche Anwendungen könntest du dir die Nutzung dieser Technik noch vorstellen?
JR: Die naheliegendste Anwendung sind Bots und deshalb konzentrieren wir uns auch darauf. Meine Gruppe hat den Namen Smart Bots Group, daher konzentrieren wir uns sehr auf Bots. Wir arbeiten an Bots, die zum Testen von Spielen geeignet sind, aber man kann sich auch vorstellen, dass man einem Bot beibringt, sich in einer Umgebung zurechtzufinden. Man kann das sicher so weit ausführen, dass man ihn Spieler:innen als KI-Gegner entgegenstellen könnte.
Aber abgesehen von Bots ist Reinforced Learning ein sehr allgemeiner Rahmen mit vielen Anwendungsmöglichkeiten. Ich könnte mir auch vorstellen, diese Methode zur Serververwaltung zu nutzen. Wenn du Server für ein Spiel bereitstellst, hast du oft das Problem, dass zu viele Server laufen, wenn du sie gar nicht brauchst oder umgekehrt, dass du viele Spieler:innen, aber zu wenig Server am Start hast. Wir könnten dem Agent theoretisch ein einfaches Entscheidungsmodell beibringen. Er würde sich die Anzahl der Spieler:innen zu bestimmten Tageszeiten ansehen und dann die Anzahl der benötigten Server für einen bestimmten Zeitpunkt erhöhen oder senken.
Wo liegen die zukünftigen Ziele dieser Technologie?
JR: Das Ziel liegt darin, an Möglichkeiten zu arbeiten, wie wir mehr Realismus in Spiele übertragen, damit sich NSCs und Bots menschlicher anfühlen und Probleme lösen, die bisher nicht lösbar waren. Wir möchten diese Technik auch Game Designern in die Hand legen, damit sie an Spieler:innen gewandte Werkzeuge damit kreieren. Damit könnten wir ein weiteres Werkzeug im Repertoire der Entwickler werden. Ihnen die Möglichkeit zu gewähren, diese Bots anzupassen und dann damit anzustellen, was sie wollen, wäre der nächste Schritt. Alle Tests, die ich bisher aufgeführt habe, haben bisher noch nicht in Live-Umgebungen stattgefunden oder vor echten Spieler:innen. Ich glaube der nächste Schritt ist, diese Technik Spieltestern zu zeigen und damit alle möglichen Szenarien auszuprobieren, wie Leistungseinbrüche, Spielmechaniken und viele mehr.
Was sind die Konsequenzen der Nutzung von KI und Deep Reinforcement Learning in Spielen?
JR: Wenn wir diese Technik nur verwenden, um Spiele zu testen, dann wird sie nie unsere Spieler:innen erreichen und es gibt keinen Grund, sich Gedanken um negative Auswirkungen zu machen, die Menschen der KI entgegenbringen. Einige mögen Bedenken haben, dass dies bedeutet, dass nun weniger Menschen Spiele testen, aber das ist nicht wahr. Denn diese Art von Tests, die wir mit diesen Bots durchführen, sind grundlegend anders als das, was echte Menschen testen. Die tatsächliche menschliche Interaktion wird nicht verschwinden und die Menschen werden die interessanteren Elemente der Spiele testen, wie Quests oder andere unterhaltsame Teile des Spiels.
Wenn es darum geht, KI-Bots in Spiele zu integrieren, ist es wirklich wichtig für uns, transparent damit umzugehen, was wir genau damit tun. Ich denke, dass sich einige Menschen Sorgen machen, dass wir demnächst Bots in Spielen sehen und nicht wissen, ob es ein Mensch oder ein Bot ist. Das ist ein kontroverses Thema und ich finde, dass es wichtig ist, dass wir damit transparent umgehen und nicht versuchen, unsere Spieler:innen auszutricksen. Ein weiterer Grund, warum wir KI in unseren Spielen willkommen heißen sollten, ist diese perfekte kleine Sandbox. Das ist ein toller Ort, um diverse Ideen auszuprobieren und zu sehen, was passiert. Alle nicht vorhergesehenen Ergebnisse bleiben innerhalb des Spiels und haben keinen direkten Effekt außerhalb. Man muss sich also keine Sorgen machen, dass mein For Honor-Verteidiger-Bot jetzt die Weltherrschaft erlangt oder so. Er existiert nur in einem Spiel und das ist irgendwie lustig.
Du kannst Joshuas vollständigen Vortrag beim AIIDE 2021 ansehen und seine Arbeit in Aktion betrachten. Dort erfährst du auch mehr über Deep Reinforcement Learning und KI. Die aktuellen News und Updates von den Teams bei Ubisoft findest du im Ubisoft News hub.