Originally Posted by
Hiromichi_Tanaka
Ich möchte euch über den momentanen Stand des Problems, dass die Xbox 360 einfriert, informieren.
Außerdem möchte ich mich für die dadurch entstandenen Unannehmlichkeiten entschuldigen.
* Das Problem
Das Rendering-System in FFXI lädt Objekte, die dargestellt werden müssen aus dem Speicher, um sie danach darzustellen.
Dieses System erhält Anfragen wenn notwendige Effekte dargestellt werden müssen, fordert die dafür notwendigen Effekt-Dateien an, spielt Effekte zum benötigten Zeitpunkt aus dem Speicher ab und gibt Dateien frei, die momentan nicht benötigt werden, z.B. aufgrund eines Gebietswechsels.
Dateien die gerade gelesen werden beanspruchen Speicher während das Freigeben von Dateien Speicher freigibt.
Die notwendigen Strukturen zur Darstellung von Effekten sind in Dateien verpackt.
Modelle, Sound, Sequenzen, Texturen und andere Dinge sind so in Dateien organisiert, dass es möglich ist, einzelne Zaubersprüche oder andere Dinge darzustellen.
Für den Fall, dass ein Zauberspruch erneut verwendet wird, besitzt das System einen Cache, der dafür sorgt, dass der Effekt nicht erneut aus der Datei gelesen werden muss, sofern er noch im Speicher vorliegt. Dank diesem Feature kann das System sehr schnell auf erneute Anfragen für bereits benutzte Effekte reagieren; neue Effekte müssen allerdings erst aus der Datei geladen werden, was zusätzlichen Speicher beansprucht. Je mehr Dinge dargestellt werden müssen, desto mehr Speicher wird beansprucht.
Im Moment werden mehr Effekte im Speicher gehalten als wir gedacht haben, was Abstürze als Folge von zu wenig verfügbarem Speicher haben kann. Um dies zu beheben, untersuchen wir Fälle in denen ein sehr hoher Speicherverbrauch vorliegt und fügen Routinen hinzu, die nicht mehr benötigte Effekte aus dem Speicher entfernen.
Mit diesen Routinen wird es möglich sein, Speicher freizugeben und damit Situationen vorzubeugen in denen nicht genug Speicher zur Verfügung steht.
* Momentaner Stand
Aufgrund der Hardwarespezifikation der Xbox 360, die einen gemeinsamen Speicher für Texturen und alle anderen Dinge besitzt, kann es relativ leicht passieren, dass man in eine Situation gerät, in der zu wenig freier Speicher vorhanden ist. Aufgrund dieser Tatsache haben wir nach Bekanntwerden von derartigen Fällen zunächst versucht, den Speicher für nicht benötigte Texturen freizugeben. Wir haben allerdings feststellen müssen, dass es trotzdem noch zu Abstürzen während des Spiels kommt und sahen uns daher gezwungen, unsere Vorgehensweise zu ändern.
Beim Hinzufügen von Routinen zum Freigeben von Speicher haben wir außerdem festgestellt, dass es einige unerwartete Fälle gibt in denen zu wenig Speicher vorhanden ist. Wir haben uns dieser Fälle ebenfalls angenommen, um das Problem nicht zu verstärken.
Momentan geben die Routinen Speicher von nicht mehr benötigten Texturen und anderen Effekten frei; dies testen wir derzeit in Testumgebungen und dem offiziellen Client. Leider gibt es trotz dieser Routinen immer noch Textur-bedingte Probleme, die wir der Reihe nach beheben.
Wir arbeiten an diesem Problem mit einer höheren Priorität als an anderen Inhalten aber wir hängen dem Zeitplan hinterher, was dazu geführt hat, dass effektiv noch nichts behoben wurde, weil unsere Maßnahmen es nicht in das Versions-Update geschafft haben, das gerade stattgefunden hat.
Unsere Programmierer arbeiten unter Hochdruck daran, diese Änderungen in das März-Update einfließen zu lassen.
Ich werde sicherstellen, dass ihr erfahrt, wenn es spürbare Fortschritte in dieser Sache gibt.