XBOX360でのハング問題について現状の進捗についてお知らせいたします。
ご迷惑をおかけしておりますこと誠に申し訳ございません。
■問題点
FFXIではゲーム中に表現が必要になったものをファイルから読み込みメモリ上に展開
してから表示を行っています。
エフェクト管理プログラムが、ゲーム中に必要なエフェクト発生要求を受けつけ
エフェクトファイルを要求しメモリ上に展開された段階で再生を行なったり、
エリアチェンジなどで不要となったエフェクトファイルを開放したりします。
読み込まれたファイルはメモリを消費し、開放された場合はメモリを開放します。
「エフェクトファイル」にはエフェクトの表現に必要な構成物が含まれています。
モデル、音、シーケンス、テクスチャなどがパッキングされており、
これらを組み合わせて一つの魔法などが表現出来るようになっています。
「エフェクト管理プログラム」には、例えば同じ魔法を要求されても
既にメモリ上に展開されているものがあれば、ファイルを読まず、
既にメモリ上に存在しているものを再利用するというキャッシュ機能があります。
この機能は同じエフェクト要求に対してはレスポンスが早くメモリ空間を消費しない
のですが、別のエフェクト要求に対してはファイルを読み込む必要があり、メモリも
消費します。 読み込む種類が増える事でメモリ消費量が増えていきます。
今回このエフェクトのファイルの種類が想定を上回る状況でメモリ上に残ってしまう
状況が発生し、結果メモリ不足で停止するといった状況が発生しております。
そこで対策として、メモリ消費が有る程度大きくなった場合というのを監視し、
使用されていないであろうエフェクトを開放する処理を追加しています。
この処理の追加によってメモリに空きが出来、プレイ中にメモリ不足が発生する事を
抑制する予定です。
■現状の進捗
360のハードウェア仕様ではテクスチャを記憶しておくメモリとテクスチャ以外を
記憶しておくメモリが共有されており、今回のシチュエーションでメモリ不足が
発生しやすい状況になっておりました。
そのためメモリ不足が発生していると確認した当初、この共有されているエフェクト
テクスチャの開放を行うように対応して来ましたが、再生時にプログラム停止が発生
する場合があり、手法を変えざるを得ませんでした。
また、開放処理の追加を行なっている中、メモリ不足を想定していない箇所が数箇所
見つかったため、問題が拡大しないような対応も並行して進めておりました。
現在は、テクスチャのみではなくエフェクトファイル全般を開放対象にする処理に変更し、
公開ログインやテスト環境にてランニングテストを実施しています。
残念ながらそこでもテクスチャに関わる問題が発生(具体的にはテクスチャが剥がれる
エフェクトがあるなど)したため、一つ一つ問題を潰している状況です。
いずれにせよ他のコンテンツ開発よりも最優先で作業を行っていますが、現状そのすべては
潰し切れていない状況で投入が遅れています。今回は残念ながら間に合いませんでしたが、
何とか次回3月のアップデートには間に合わせたいとプログラマーも頑張っています。
本件大きな進展があり次第またご報告いたします。