« 同人ゲーム開発者トークイベント GDGD 第一回 | メイン | GDGD 第一回トークショー終了 »

IGDA「続・ゲームにおけるスクリプト言語の現状」レポート

IGDA日本ゲームテクノロジー研究会第13回研究会
「続・ゲームにおけるスクリプト言語の現状」
に行ってきました。以下、セッションごとの感想です。




■「ごく簡単な並列処理スクリプトシステムの設計と実装」 小久保啓三氏(HAL東京)

スクウェアに所属していた小久保氏によるスクリプトシステムの説明。
小久保氏が関わったタイトルとしては、ロマンシングサガ、FF5、クロノトリガー、FF7、シャドウハーツ。ツール提供としては、ロマサガ2、FF6、聖剣伝説2、ライブアライブ。

セッションの内容は、当時スクウェアで使われた並列処理スクリプトシステム ATEL(エーテル。Actice Time Event Language)の話が中心となった。

このスクリプトシステムを作るきっかけとなったのは、クロノトリガーでのフィールドからバトルへのシームレスな推移を実現したかったため。実装としては、所謂 ACTOR 方式を採用し、フィールドのオブジェクトがそれぞれミニプログラムで自立的に動作し、ACTOR 同士はリクエストを介して通信するようになっている。

言語のイメージとしては

[クロノ]
  bind user character
[マール]
  bind character 2
*talk turn to クロノ
   mes "急ぎましょ"
  req カエル 急がせる
  move to クロノ
[カエル]
  bind character 3
*急がせる move to クロノ

のようになっている。
スクリプターからは「ACTOR 方式は、従来の一連のイベントストーリーが書きにくい」といった意見が出たが、[ディレクター] という仮想アクターを作ってそこで全部コントロールすることで逐次的なフローにして解決した。

また、並列処理であるためデッドロックのバグが発生することが危惧されたが、タイムアウト値を持たせることでロックが自動解除されるようにしたという。

内容としては基本的なことでしたが、当時の貧弱な環境での現場の知恵が生かされていて興味深かったですね。




■「『サクラ大戦Ⅴ』でのスクリプト運用事例」 秋葉晴樹(セガ)

サクラ大戦Ⅴの会話パート・移動マップで使われたスクリプトシステムについての説明。
印象としては、昨今のノベルゲーのスクリプトエンジンと一緒ですね。

ただ、ベースとなるスクリプト言語の他に、メッセージ作成用の簡易なマークアップ言語である「マクロ形式」や VBA を使った Excel シートも用意していたのが特徴的でした。「スクリプトで全部やろうとしない」というのがポリシーのようです。

外野の素人から見ると、スキルレベルの低い企画担当のためにプログラマが必要以上に苦労しているように思えて不憫でした......。頑張れ、セガ。




■「汎用スクリプト言語Xtal 設計と実装」 石橋立宣(バンダイナムコゲームス)

Xtal はクリスタルと読む。名前の由来は eXTreme Agile Language ということになっているが、実は Ruby のように宝石の名前にしたかったのと、FF のファンなので、ということらしい。

そもそも Xtal を作ろうとした動機は、Ruby のようなスクリプト言語でサクサクとゲームを書きたかったから。ただ、Ruby は組み込み言語としてはサイズが大きく、またメジャーな組み込み言語である Lua にはいくつか不満点があったため、自作することにしたという。

言語仕様などについては Xtal 公式ページ を参照。ただし、ドキュメント化されていない仕様も多い模様。

石橋氏の人柄もあってか、笑い溢れるセッションでした。
質疑応答の中で「未踏プロジェクトに応募します」宣言が出たりもしたので、今後も頑張って欲しいですね。




■「Squirrelスクリプトを使った実装と活用」 神尾隆司・北出智(スクウェア・エニックス)

Wiiウェア 「小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル」で使われた、組み込み言語 Squirrel (スクワール)についての説明。

プログラマ向けの技術的内容で個人的には大満足でした。開発現場で得られた Tips などを惜しみなく披露してくれた両氏とスクエニは素晴らしい。

小さな王様(略)では、当然ながらシステム部分は C++ で書かれているが、実際には約 70% のプログラムが Squirrel で書かれており、さらにメインループも Squirrel 側にあるという非常に思い切った実装となっている。純粋なスクリプトオーバーヘッドは CPU の 10% 程度。

小さな王様(略)から次回作の「My Life as Darkloard」へのソース流用の割合は、C++ が 94%、Squirrel が 30%、 と非常に高い再利用性を示している。

Squirrel の利点を

・素早いリトライが可能になり、短い時間で形に出来る
・柔軟なデータフォーマットと、スクリプトでの細かな変更にも柔軟に対応
・強力なコールスタックにより問題の把握が容易
・IDE がなくても制作やデバッグが可能
・難解なメモリー破壊の様なバグが起きにくい

として挙げていました。

また、質疑応答では「まだアクションゲームに使うには性能面で厳しい」「Wii では Squirrel ベースでも問題ないが、DS や PSP では厳しいかもしれない」といった話も出ました。




■感想

時代は Squirrel (言いすぎ)

非常にいいセミナーでした。
GDGD の第二回以降でも開発者向けにこういったイベントをやれるといいですね。




【追記】
他の出席者のみなさんもまとめ記事を書いているようなので、随時リンクを追加。

[商用ゲーム] 「続・ゲームにおけるスクリプト言語の現状」レポートと感想 その1 ほっしー日記

「続・ゲームにおけるスクリプト言語の現状」行ってきた 好き勝手に・げーあにん?

IGDA セミナーに参加してきました レポート 0 かおすふぃーるど (Weblog)

トラックバック

このエントリーのトラックバックURL:
http://heppoko-net.jp/cgi-bin/mt/mt-tb.cgi/105

コメントを投稿