GDC: Massenauflauf fĂĽr ein Killerspiel
Die dänischen Entwickler von IO Interactive erläuterten auf der Game Developers Conference, wie ihr Hitman-Auftragskiller in eine Masse aus 1200 computergesteuerten Agenten eintaucht, die in gerade einmal 42 KByte Speicherplatz gepfercht wurden.
Die Hardware der aktuellen Konsolengeneration ist inzwischen über fünf Jahre alt, aber noch immer schaffen es Programmierer, neue Höchstleistungen aus den betagten Prozessoren heraus zu kitzeln. So führte das dänische Entwicklerstudio IO Interactive auf der Game Developers Conference in Köln vor, wie es in seinem Spiel Hitman: Absolution eine Menschenmenge von 1200 computergesteuerten Agenten (so nennen KI-Forscher die einzelnen Subjekte einer Menge) steuert. Bis zu 500 von ihnen könnten gleichzeitig auf dem Bildschirm zu sehen sein, ohne das eine Playstation 3 ins Schwitzen käme.
Dabei soll sich die Menge möglichst realistisch wie eine reale Menschenmenge verhalten: Jeder einzelne Agent verfolgt eine eigene Wegroutine und weicht dabei nicht nur Wänden und Hindernissen, sondern auch den anderen Agenten in der Umgebung aus. Zudem reagieren die Agenten auf Ereignisse in ihrem Umfeld. Schießt der Spieler in der Rolle des Hitman in die Menge, so geraten sie in Panik und laufen auseinander.
Programmierer Kasper Fauerby konzipierte die computergesteuerte Masse als Partikelmenge und gab jedem einzelnen Agenten eine Position, Richtung, Geschwindigkeit sowie einen Radius. Zudem teilte der die Umgebung eines jeden Agenten in drei Zonen ein. Tauchen auf seinem Weg plötzlich Hindernisse auf oder verdichtet sich die Menge um ihn herum, so kann er seinen Schritt verlangsamen und seine Richtung anpassen. Bei verdächtigen Bewegungen in seiner weiteren Umgebung wird der Agent in Alarmbereitschaft versetzt, die sich in Angst oder Panik verwandeln kann, wenn sich die Bedrohung nähert.
Für diesen Simulationskern benötigt Fauerby nur wenige Daten. Er kommt mit 36 Bytes für jeden simulierten Agenten aus, die komplette Menge von 1200 Agenten passe somit in einen nur 42 KByte großen Speicherblock. Er ist klein genug für die SPUs des Cell-Prozessors der PS3 und lässt genügend Platz für weiteren Programmcode zur Strahlenberechnung (Ray Cast) und Nachbarschafts-Suche (Neighborhood Search).
Um die Menschenmenge glaubwürdig erscheinen zu lassen, wurden die einzelnen Agenten mit flüssigen Bewegungen animiert. Diese Animationen lässt IO Interactive in separaten Prozessen berechnen. Dabei können die einzelnen Agenten verschiedene Bewegungen ausführen, beispielsweise telefonieren, rauchen oder sitzen. Damit sie dabei nicht wie geklonte Roboter aussehen, mussten die einzelnen Animationsschritte überblendet werden, sodass beispielsweise die Füße nicht über den Boden gleiten. Zudem variierte man die Farben ihrer Kleidung und ihre Körpergröße. In der nächsten Umgebung des Spielers kann eine komplexere KI-Steuerung das Verhalten einzelner Agenten übernehmen, die dann zum Beispiel in einen Kampf verwickelt werden und eine Schlägerei mit dem Hitman beginnen. Doch die einzelnen Verhaltensparameter müssten noch fein eingestellt werden. Schließlich soll der Spieler als Hitman in der Menge möglichst untertauchen und keine unnötige Aufmerksamkeit erregen.
Dank dieser Aufteilung schaffe es die PS3 einen Frame mit bis zu 500 Agenten in 33 ms zu berechnen und das Spiel mit 30 fps darzustellen. Limitierend sei hier laut Fauerby der Vertex Shader der PS3-GPU. Ob eine derartige Crowd-Simulation ebenso schnell auf der Xbox 360 und dem PC läuft, wird man im November sehen, wenn das Spiel bei Square Enix erscheint. (hag)