弊社ではタイムクライシスシリーズで伝統的にゲームデザイナーが直接ゲームを制御してゲームの開発を行ってきました。タイムクライシスの製作志向を踏まえて開発されたレールシューティング「デッドストームパイレーツ」では従来の独自言語に代わり、汎用スクリプト言語を使用しました。
ゲームデザイナーが使用した GameMonkeyScript と、プログラマが使用した Xtal の2つの組込み言語の活用事例…成功例や失敗例を、プログラマ視点とゲームデザイナー視点からそれぞれ紹介します。
●基本設計:パイレーツではスクリプトを部分的に使用するのではなく、シーングラフを中心においた自由度の高いシステムを開発し、そのコントロールをすべてスクリプトに振りました。そのうえで、タイムクライシスシリーズで用いられているモーション再生によるキャラクター制御を組み込みました。
●スクリプトの利用例:キャラクターの制御だけでなく、業務用可動筐体の可動、ミニゲームの実装、一見ゲームエンジン側で実装しているように見えるがスクリプトで実装されている仕様の紹介と、その実装例を説明します。
●負荷とメモリコントロール:スクリプトの処理負荷、割当メモリ、ガベージコレクションの稼動具合を紹介し、どのように改善を行っていったかを説明します。処理負荷を軽減する工夫や、ガベージコレクションと実際のゲーム中のリソース破棄をどのように組み合わせたかなどの例を紹介します。
●スクリプトの応用例:スクリプトエンジンを利用した簡易インゲームコンソールや、バッチスクリプトをランチャーから呼び出す仕組みなどを作り、ゲーム中に条件や装備を変更してさまざまなテストができるようにしました。
●ゲームデザイナーからみたスクリプト:プログラマ視点ではゲームの表層部分をスクリプトに委譲したわけですが、大きな自由度と責任を持つことになったデザイナーはどのように受け止めたのか。便利だった点、逆に戸惑った点やそれをどうやって克服したか、作りたいものが作れたのか等をデザイナーよりお話します。
●Xtal:パイレーツではGameMonkeyScriptのほかにXtalという組込スクリプト言語を利用しました。Xtalはオープンソースで開発されており、社内に開発者がおります。XtalはC++と親和性が高く、プログラマが用いるのに向いています。採用・開発者との情報交換の背景や実際の活用例を紹介します。
●ポストモーテム:企画班には大きな自由度と責任が与えられましたが、プログラマが考える以上に拒否反応がなく、「宣言していない変数をエラー扱いする拡張が欲しい」「次回のプロジェクトではペアプログラミングを導入したい」といったマニアックな意見が飛び出しました。
講演者プロフィール
湊 和久
PCゲーム開発、アニメ業界などを経て、バンダイナムコゲームスに中途入社。「デッドストームパイレーツ」のアーケード版、家庭用移植版にプログラマとして参加。
《講師からのメッセージ》
汎用スクリプト言語活用のショーケースとして、レールシューティングにおける実装例やそこで得られたノウハウなどをお話させていただきます。
宇藤 慶彦
ソウルキャリバー4(家庭用):ゲームデザイン(キャラ・システム)
デッドストームパイレーツ(業務用):リードゲームデザイン