Spotlight: Ubisoft Roller Champions – NPC behavior d.m.v. ml-agents​

Door Andreas Veeckman

De developers van Roller Champions, een game die binnenkort uitkomt, gingen aan de slag met Unity ml-agents. Ze gebruikten deze plugin voor het ontwerpen van NPC AI. Roller Champions is een 3V3 sportspel waarin de teams al rolschaatsend een vorm van rugby spelen.

De details van de implementatie kan u terugvinden in de paper en bijbehorende video (het wachtwoord bevindt zich in de paper). We schetsen de aanpak hieronder kort voor de volledigheid.

Implementatie en resultaten

Er wordt gebruik gemaakt van de Unity ml-agents plugin. Hierdoor was geen werk nodig om het PPO model te implementeren. De agents krijgen een selectie van game input en sturen rechtstreeks de controller aan. Net zoals een speler dat zou doen. Dit maakt het gebruik van een navigation graph/mesh overbodig.

De input bestaat uit informatie over alle game entities (zoals positie, velocity, state) samen met informatie over de game (score, rondes). De output bestaat uit een combinatie van continue acties (rotatie) en discrete acties (springen, passen, duiken…). Dit is vergelijkbaar met joystick input VS button input.

De reward die de agents krijgen is gedeeld met hun teamgenoten. Zo wordt samenspel aangemoedigd. De onderzoekers experimenteerden met speciale rewardfuncties om bepaald gedrag te verkrijgen maar dit had een averechts effect: de agents voerden het gewenste gedrag uit maar speelden minder volgens de game objectives (punten scoren). Agents worden ook gestraft wanneer het ander team scoort. Door de straf te wegen met een parameter kan een team meer agressief/defensief gaan spelen.

Om het trainen sneller te laten verlopen werd een server-only modus van het spel voorzien. Deze bevat enkel de simulatie en maakt de (trage) rendering overbodig. Training duurde 1-4 dagen, wat het mogelijk maakt om dit in een ontwikkelingscyclus te integreren.

Opinie

Wat we hier willen benadrukken is dat het spel relatief eenvoudige regels heeft. Hierdoor is het voor de agents mogelijk om het spel te leren. Het is wel opvallend hoe goed dit is gelukt zonder echte aanpassingen te doen aan het PPO model of algoritme. De input en output keuzes die hier werden geamaakt zijn intuïtief, wat ons doet denken dat dit voor andere gelijkaardige games zeker ook mogelijk is. Nogmaals bewijst PPO dat het een zeer sterk model is dat voor veel doeleinden gebruikt kan worden.