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.