Linden Lab hat seine diesjährige Lagbekämpfungsintiative unter dem Namen Projekt Shining veröffentlicht. Das Hauptziel soll es sein, die Geschwindigkeit des Aufbaus von Avataren und Sims zu erhöhen.
Das Projekt gliedert sich dabei in drei Teilprojekte namens Projekt Sunshine, Objekt Caching und HTTP-Bibliothek. Als Begleitmaßnahme wird Linden Lab gleichzeitig die Anzahl der Rechenzentrenstandorte von drei auf zwei reduzieren und nach Angaben von Rod Humble in diesem Jahr noch die höchste Investition der Firmengeschichte in neue Hardware tätigen.
Projekt Sunshine
Projekt Sunshine ist das Teilprojekt, welches das korrekte Rendern von Avataren deutlich beschleunigen soll. Bisher läuft das Spielchen so: damit ein Avatar nicht als Wolke erscheint, holt sich zunächst der Viewer vom Benutzer alle angezogenen Texturen des Avatars, es werden einige simple Bildbearbeitungsalgorithmen darüber laufen gelassen – stellen wir uns das einfach wie verschiedene Ebenen in Photoshop vor, die man übereinander legt und exportiert – und das Ergebnis wird dann an den Simulator hochgeladen. Diese im Fachjargon Baked Texture genannte Datei wird dann an alle weiteren Benutzer in der Nähe gesendet.
Im Prinzip eine einfache Sache, aber man sieht, wo es zu Problemen kommen kann: zunächst einmal muss der Client des Avatars einiges an Texturen runterladen, das dauert, dann muss er die Textur berechnen, als JPEG2000 kodieren und wieder hoch laden. Da gibt es genügend Punkte, wo es zu Problemen kommen kann und wenn der Upload nicht richtig funktioniert, sieht der Rest einen möglicherweise grau oder gar nicht.
Dem Abhilfe verschaffen soll eine neue Instanz an Servern, deren einzige Aufgabe es werden wird, die Baked Textures zu berechnen und den Simulatoren zur Verfügung zu stellen. Damit wird diese Aufgabe von den Clients hin zu Servern im Rechenzentrum von Linden Lab verlagert. Das Ergebnis wird eine spürbare Beschleunigung des Rezzens von Avatartexturen sein und wenn Linden Lab es richtig implementiert, dann werden auch graue Avatare endlich der Vergangenheit angehören.
Verbesserter Objekt-Cache
Der lokale Cache des Viewers soll persistenter und performanter werden, das Ziel ist eine massive Erhöhung der Hitrate. Auch soll die Kommunikation vom Viewer beim Aufbau einer Szene mit der Sim optimiert werden.
Das ist eine Maßnahme, die schon lange überfällig ist, denn die schlechte Performance des Viewercaches ist ja geradezu legendär. Außerdem spart das Linden Lab mitunter auch bares Geld, wenn es massiv zu weniger Kommunikation kommen sollte.
Bessere HTTP-Bibliothek
Die HTTP-Bibliothek auf den Simulatoren soll durch eine deutlich besser funktionierende Variante ausgetauscht werden. Man darf gespannt sein, wie sich das auswirken wird, Linden Lab wird wohl kaum veröffentlichen, was sie da genau nehmen und bisher genommen hatten.
Wer damit nichts anfangen kann: HTTP ist ein Transportprotokoll des Internets, das zur Übertragung von Daten – meistens Webseiten – genutzt wird. Festgelegt wurde HTTP/1.0 in RFC 1945 und HTTP/1.1 in RFC 2616. Eine HTTP-Bibliothek stellt nichts anderes als für Programme aller Art die Transportfunktionen bereit, so dass man sie nicht selber erst implementieren muss. Nachdem HTTP ein alter Hut ist, gibt es heutzutage eine Vielzahl an zur Verfügung stehenden Bibliotheken genau für diesen Zweck.
Eine bekannte Bibliothek dieser Gattung, die neben HTTP noch andere Protokolle beherrscht, ist cURL. Diese wird auch standardmäßig im Second Life Viewer zur Kommunikation mit dem Simulator verwendet. Eine Auflistung mit weiteren Bibliotheken für HTTP-Transport findet sich denn hier.