|
Grid
環境への計算リソース提供者に対し,付加価値サービスとしてグリッドゲームを提供するフレームワーク
G-rated Grid Game: G3 を開発した.本プロジェクトの成果は,ゲームとしての完成度は高くないものの,
Grid 本来の目的である計算プロジェクトと連携してゲームコンテンツを提供できるなど,魅力的なサービスへと発展させうる可能性を提示できた.
図
1 に
G-rated Grid Game: G3 が動作している
Grid 計算上での大規模計算の実行の概念図を示す.
本システムを構築するため,拠点サーバ上での問題空間
( 解空間
) の
2 次元平面への変換プログラム,プロジェクト参加者の
PC ( 計算ノードとなるクライアント
) 上で実行されるプログラム,問題空間をもとにしたゲームマップの生成プログラム,およびそのマップを外部データとして取り組むゲームのフレームワークの開発を行なった.
本プロジェクトでは,たんぱく質の立体構造予測問題をエネルギー最小化問題として解く問題を
Grid 計算問題として採用した.原子間の回転角
(2 面角
) から構造のエネルギー値を求めるが,たんぱく質の場合,エネルギー値が最小となる
2 面角の組み合わせを求めるのは多次元の問題空間となる.多次元問題空間の
2 次元平面化,さらにゲームマップの生成を実装した.この際,生成されるゲームマップが「それっぽい」ものとなるように腐心した.

花田 図
1 G3
の実行概念図
以下,少し詳しくそれぞれのプログラムについて述べる.
(1)
拠点サーバの開発
G3
は,拠点サーバと計算ノードとなるクライアントで構成される Grid
環境を想定している.拠点サーバは,依頼された問題から問題空間
( 解空間 )
を把握し, 2
次元平面へ変換する.それを領域分割し各計算ノードへ振り分ける.
(2)
クライアント
( 計算ノード )
の開発
各クライアントは,接続している拠点サーバから実行プログラム,対象問題ファイルならびに担当する領域問題をダウンロードし,この領域内での最良解を求める.
クライアント上では,計算プロジェクトのプロセスとは独立してゲームのプログラムが実行される.ゲームと計算プロジェクトのプロセスはソケット通信により同期し,ユーザのゲーム上でのアクションに対する応答や提供するゲームの元データとなる乱数列やマップの生成を行なう
( 図
2) .マップの作成はキャラの動きに合わせてリアルタイムで作成させる.その上でのキャラの動作と計算の同期については図
3 に示す.
人間はパターン認識等,計算機と比較して優れた能力を有しており,これを計算プロジェクトに活用することも有用である.この仕組みを後述のグローバルマップと合わせて図
4 のように実装した.

花田 図
2 マップの生成

花田 図
3 マップ上でのキャラの動作と計算の同期

花田 図
4 いい解のヒントを与える仕組み
計算プロジェクトの本来の目的は,できる限り最適解に近い解を得ることである.一方,問題空間は膨大であるため,「しらみつぶし」に解いていくよりも良好な解の付近を優先して集中的に探索したり,広い範囲を粗く探索し,マップ上の傾向を掴み,その情報を人間にフィードバックするといった対応についても実装した.そのおおまかな仕掛けを図
5 に示す.
また,主人公の他に新しいキャラを登場させ,当該キャラに最適化アルゴリズムを適用し,独自に最適解の探索を行なわせるといった機能も整備した
( 図 6) .当該キャラの探索結果が活用されるのに加えて,主人公にそのキャラを探させることで,ゲーム性も向上した.さらに主人公が歩き回ると体力が減り,マップ上に落ちている食料を食べたり,お金を使って体力を回復させることができる機能や,ミニゲーム等,ゲーム性を高めるなアイデアを実装した.

花田 図
5 グローバルマップの利用

花田 図
6 ゲーム性の向上の一例

|