Optimierung von SL für Kämpfe

Kampf und Second Life sind zuerst einmal eine Sache, die sich technisch gesehen nicht wirklich vereinbaren lassen – hier eine virtuelle 3d-Welt, die on demand auf den lokalen Rechner gestreamt wird, so dass die „Level“ nicht wirklich vorgepuffert werden können noch von der Anzahl der dargestellten gleichzeitig Polygone her auf Kampf optimiert worden sind und dann will man Kampf veranstalten, eine Angelegenheit, die doch sehr stark kurze Antwortzeiten benötigt. Es geht dennoch recht leidlich, aber ausreichend, denn es gibt genügend verschiedene Kampfmeter samt dazugehörigen Waffen(systemen). Mit einigen Tricks kann man aber dennoch dafür sorgen, dass das Kampferlebnis einigermaßen akzeptabel auf dem heimischen Rechner abläuft, alles hat man dabei aber längst nicht in der Hand.

Das Wesen jedes Kampfes ist die Übertragung

Second Life wird in den USA an mindestens drei verschiedenen Standorten gehostet und alle Bewegungen auf den dortigen Servern berechnet und an die Avatare der Region zurückgeschickt. Das bedeutet, dass man schon dadurch durch das System bedingt eine gewisse Reaktionszeit nicht unterschreiten können wird. Die Gesetze der Physik sind schließlich für alle gleich, schneller als die Lichtgeschwindigkeit werden die Daten nun einmal nicht übertragen und damit können die Pingzeiten ein gewisses Maß nicht unterschreiten (so 120 ms, das bedeutet es dauert ca. 60 ms bis die Daten in die USA gereist sind, dort werden sie auf dem Server berechnet und dann ca. 60 ms für den Rückweg). Das ist auch der Grund wieso die Betreiber von weltweit erfolgreichen MMORPGs wie WoW und dergleichen auf jedem Kontinent Serverfarmen haben, um diese Zeiten für die residente Spielerschaft gering zu halten. Das bedeutet auch, dass man im Kampf gegen einen Bewohner der USA kaum Chancen haben wird, wenn er gut ist, da er einfach schneller reagieren kann.

Also an den grundlegenden Mindestpingzeiten wird man nichts ändern können, aber man kann sehr wohl dafür sorgen, dass die zusätzliche Latenz möglichst gering ist. Da gibt es mehrere Ansatzpunkte, natürlich ist es erst einmal so, dass ein Computersignal auf dem Weg von Europa in die USA über verschiedene Router geschaltet wird, die einiges an Latenz einbauen. Dieses hat man nicht in der Hand und kann daran nichts ändern.

In der Hand hat man aber den häuslichen Übertragungsweg ins Internet, normalerweise DSL. Wer mit UMTS kämpfen will sollte es besser gleich lassen, die Latenzzeiten in UMTS sind viel zu hoch und man ist nicht konkurrenzfähig damit. Idealerweise ist man dann auch per Ethernet direkt am DSL-Modem dran und nutzt kein WLAN oder dergleichen, das auch ein wenig zusätziche Latenz verursacht.

Bei DSL ist es nun so, dass bei dieser Übertragungart normalerweise immer mehrere Pakete ineinander verschränkt werden, man spricht vom sog. Interleaving. Das bedeutet, dass die Latenz durchaus spürbar um gut und gerne 40-50 ms dadurch erhöht wird. Für normale Anwendungen ist das kein Problem, wer aber über DSL Kämpfen will, für den bedeutet diese zusätzlich eingebaute Latenz einen spürbaren Nachteil, also ist es für ihn besser, wenn man in der DSL-Leitung dieses Interleaving abschalten lässt. Früher wurde das nicht angeboten, heutzutage ist das aber möglich, die Option dazu nennt sich Fastpath, bei der Telekom kostete dies früher eine zusätzliche Monatsgebühr (0,99 €), heutzutage sieht es anders aus, die Konkurrenz warb teilweise damit bei Gamern. (Hier gibt es ein Interview, in dem Interleaving und Fastpath erklärt werden).

Ein flotter Rechner sollte es auch schon ein

Natürlich ist als nächstes ein wichtiges Kriterium der eigene Rechner. Er sollte schon flott genug sein für SL, das bedeutet eine einigermaßen aktuelle 3d-Grafikkarte von Nvidia oder ATI (keine Chipsatzgrafik!), mindestens 40 FPS sollte man durchaus ständig haben, genügend Speicher (4 GB RAM) sowie eine Mehrkern-CPU. Es gibt ja immer viele, die gerne darüber jammern dass nicht jeder Rechner gleich gut dafür geeignet ist, aber mal ehrlich – so hoch sind die Anforderungen im Vergleich zu den aktuellen Monsterspielen auch nicht, es hält sich im Rahmen und wer wirklich vorhat konkurrenzfähig kämpfen zu können, der kommt um einen modernen Rechner nicht herum.

Natürlich bringt einem ein guter Rechner dann alleine auch nicht weiter, die Softwareinstallation muss auch stimmen. Im Falle von Kampf bedeutet dies, dass der Viewer der die Texturen in SL am schnellsten Dekodieren und Darstellen kann einen massiven Vorteil gegenüber den anderen Viewern hat. Momentan sind das einzig und alleine die Viewer von Linden Lab selber, da nur diese die Routinen von KDU (Kakadu) benutzen, alle anderen nutzen OpenJPEG und brauchen damit mindestens doppelt so viel Zeit.

Auch bringt es natürlich nichts, wenn man dann während eines Kampfes den Rechner noch mit zig anderen Sachen beauftragt, wie z.B. einen vollständigen Scan der Festplatte nach Viren oder ähnliches. Man sollte so etwas soweit als möglich daher einfach abschalten. Auch sollte man nicht irgendeinen Monsterdownload parallel laufen haben oder Voice-Dienste wie Skype. Wer wirklich Voice benötigt, sollte lieber zu Teamspeak greifen.

Die Grafik: nur so viel wie nötig und nicht mehr

Eine weitere Sache ist die Grafik selber: Second Life kann durchaus sehr bombastisch aussehen, aber bombastisch bedeutet auch viel zu tun für die Grafikkarte und damit sinkt die Bildwiederholfrequenz. Als Folge dessen sollte man daher für Kampf die Grafikeinstellungen so weit als möglich runterdrehen, das sieht dann zwar nicht schön aus, aber es sorgt dafür, dass die FPS einigermaßen auch bei Massenszenen im Bereich des Erträglichen bleiben.

Der Unterschied zwischen normalen Egoshootern/MMORPGs und Second Life besteht darin, dass in Second Life nichts lokal vorliegt, sondern ja erst aus den USA zu einem gestreamt werden muss. Außerdem sind die Welten in Second Life nicht von der Darstellung her auf Kampf optimiert worden, was man teilweise stark spürt während das bei entsprechenden Spielen der Fall ist.

Und der Rest

Kämpfe werden in SL ja auf den Servern berechnet, die in den USA sind. Kampf bedeutet auch immer eine ungeheure zusätzliche Last durch die Skripte, die dann allesamt ablaufen. An dieser Last kann man nichts ändern, aber man kann dafür sorgen, dass ansonsten keine weitere, unnötige Skriptlast entsteht. Das bedeutet zweierlei: zum einen können die Simbetreiber dafür sorgen, dass auf der Sim nur möglichst wenige Skripte lokal laufen, die Rechenzeit benötigen. Ganz wird man darum nicht herum kommen. Zum zweiten bedeutet es aber auch, dass jeder Besucher der Sim die eigens erzeugte Skriptlast so weit als möglich reduzieren sollte, sprich unnötige Skripte wie Resizer und dergleichen löschen, auf die AO verzichten u.v.m.

Wenn man all das beherzigt, wird ein Kampf zwar nach wie vor nie wirklich so flüssig laufen wie bei einem Egoshooter, aber immerhin einigermaßen zufriedenstellend.