SceneGraphを用いたゲームプログラムの為のテスト作成手法
発表者:小林 佑亮
所属:琉球大学 工学部 情報工学科
指導教員:河野 真治
研究背景・目的
研究背景
当研究室では学生実験において、PlayStation3を用いた並列的なゲームプログラムの作成を行っている
そこで使用されるのが当研究室で開発したCeriumレンダリングエンジンである
PlayStation2で動作していたゲーム「超弾帝(スーパーダンディ)」の移植の際、オブジェクトの描画、衝突判定などで不具合が発生した
超弾帝には約100種類に及ぶオブジェクトが存在し、今後も同様な不具合を修正していく必要があると考えられる
研究目的
本研究ではゲームプログラムをSceneGraph単位でテストすることでオブジェクトごとの振る舞いや描画をチェックする
ゲームのデバッグを容易にし、今後のゲームの移植や改良、作成を円滑にする
PlayStation3のアーキテクチャ
Cellは1基のPPEと8基のSPEからなる非対称なマルチコアプロセッサであり、高速リングバスで構成されている
SPE は、LS (Local Store) という256KBのメモリを持つ
本研究で用いた PS3Linux では、6個の SPE を制御することができる
Cerium Rendering Engine
Ceriumは以下の3つから構成される。
TaskManager
SceneGraph
RenderingEngine
TaskManager
Taskと呼ばれる分割された各プログラムを管理するライブラリである
Task同士の依存関係を考慮しながらメモリ上にマッピングし、SPE上ではそのプログラムを DMA転送によりロードする
SPEは256KBという小さなデータ量しか持てず、 大量のプログラムを全てSPE上に置いておく事は出来ない可能性がある
必要な時に必要な実行プログラムだけがSPE上にロードされている事が望ましい
SceneGraph
ゲームの中の一つの場面(Scene)を構成するオブジェクトやその振る舞い、ゲームのルールの集合をSceneGraphとする
SceneGraphのノードは親子関係を持つTreeで構成される
親子関係とは、親オブジェクトの回転や平行移動等の行列計算による頂点座標の変更が、子オブジェクトにも反映する関係の事である
RenderingEngine
SceneGraphから実際に表示するポリゴンを抽出する
ポリゴンからSpanを生成する
SpanにRGBをマッピングし描画する