人生にゲームをプラスするメディア

スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 IGDA日本SIG-GTレポート

WiiWareで配信されている“国造りRPG”『小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル』(以下、小さな王様と約束の国)では、組み込みスクリプト言語Squirrelが採用され、開発効率が高められています。4月18日に開催されたIGDA日本のSIG-GT第13回セミナー、「続・ゲームにおけるスクリプト言語の現状」では、スクリプト言語を大幅に取り入れた本作について、Squirrelの特徴や開発の舞台裏などについて、開発チームの神尾隆司氏と北出智氏が「Squirrelスクリプトを使った実装と活用」と題して講演を行いました。

ゲームビジネス その他
スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 IGDA日本SIG-GTレポート
  • スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 IGDA日本SIG-GTレポート
  • スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 IGDA日本SIG-GTレポート
WiiWareで配信されている“国造りRPG”『小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル』(以下、小さな王様と約束の国)では、組み込みスクリプト言語Squirrelが採用され、開発効率が高められています。4月18日に開催されたIGDA日本のSIG-GT第13回セミナー、「続・ゲームにおけるスクリプト言語の現状」では、スクリプト言語を大幅に取り入れた本作について、Squirrelの特徴や開発の舞台裏などについて、開発チームの神尾隆司氏と北出智氏が「Squirrelスクリプトを使った実装と活用」と題して講演を行いました。



まず、Squirrelの特徴について神尾氏は、Squirrelの作者、Alberto Demichelis氏にゲーム開発経験があり、alloc/free(メモリ管理機構)の置き換えが可能など、気が利いていること。ソースコードが6000行ほどで万一致命的なバグがあったときでも自分たちでなんとかできそうな規模であること、グローバル変数の初期化を「=」でさせない(うっかりミスを減らせる)、コメントがC++と同じ形式で書けること、マルチスレッドが安全に書けることなどを紹介。

さらに、例外処理が用意されていてスクリプトのエラーを補足できることや、getroottableによってシンボルが定義済みかどうかを調べたり、クラスの名前をスクリプトから取得したり、定義済みfunctionを解放できるなど、開発効率やメモリ効率を高める機能についても解説をおこないました。

「小さな王様と約束の国」での具体的な実装については北出氏が紹介。スクリプトの本作での使い方として、メインループもスクリプトで記述する構成になっていることを紹介、「それはさすがに極端だと思うが…」と述べてはいましたが、「小さな王様と約束の国」が実際にリリースされ、同じくSquirrelを採用した北米向け作品「My Life as a Darklord」も開発されていることから十分実用的なことがわかります。「My Life as a Darklord」では、「小さな王様と約束の国」で開発したソースコードのうち、C++ソースの94%、Squirrelスクリプトソースの30%が流用できたとのことです。C++ソースはなるべく流用する方針だったとのことですが、94%がそのままというのはかなり高いのではないでしょうか。

制作においては、関数やクラスの追加のたびにおこなうバインド(C++とSquirrelでデータをやりとりするための定型コード作成)作業が面倒なため、XMLとnutを変換するコンバータを作ったことや、ツールでC++ヘッダからバインドコードを自動生成させるといった、定型作業の負荷を減らす工夫が紹介されました。

スクリプトによる制作では、多くのエラーがランタイムエラーとして発生するため、ランタイムエラーを減らすためにネーミングルールを統一したり、例外をキャッチしたときにスタックダンプを出力するコードを入れておく必要があったとのこと。

ほとんどをスクリプトで書いたためメモリ管理をVMにまかせることができ、レアバグが起きにくいというメリットがあったものの、スクリプトを動作させていくと消費メモリが増えていくためメモリの監視は重要だとしています。消費メモリについてはガベージコレクション(GC)によって回復しますが、1フレーム(1/60秒)で処理が終わらない場合はフレーム落ちとなるためGCを動かすタイミングにも注意が必要です。

質疑応答では、「全部Squirrelでやるにあたって、勝算はどれくらいあったか?」との質問に対し、「初期デザイン作業において、プロトタイピングをしてトライしてみないといけなかった。いろいろ要素をつけたり消したりするのはCではやってられなかったと思う」と回答、初期段階から得られる生産性の高さを評価していたのが印象に残るセッションでした。


《伊藤雅俊》

編集部おすすめの記事

ゲームビジネス アクセスランキング

  1. ゲームボーイ版『マインクラフト』はこんな感じ?―レトロ愛が伝わるファンメイド映像が公開

    ゲームボーイ版『マインクラフト』はこんな感じ?―レトロ愛が伝わるファンメイド映像が公開

  2. 【GDC 2009】面白いタイトルをしっかり売るには!? レベルファイブのプロデュース術を日野社長が大公開

    【GDC 2009】面白いタイトルをしっかり売るには!? レベルファイブのプロデュース術を日野社長が大公開

  3. 『マインクラフト』生みの親、VRとボクセルアートを組み合わせた「Unmandelboxing」を発表

    『マインクラフト』生みの親、VRとボクセルアートを組み合わせた「Unmandelboxing」を発表

  4. 【GTMF2013】ヤマハによるアミューズメント向け次世代 GPU と開発環境

  5. 【レポート】「狼と香辛料」作者・支倉凍砂の新作VRアニメ『Project LUX』を体験 ― ヒロインの声・モーションは田中あいみが演じる

  6. 今、e-Sportsは富山がアツいーキーマンとなる堺谷陽平氏とCygames森慶太氏に聞く、地域振興としてのe-Sportsとは

  7. 『艦これ アーケード』公式が類似サービスについて注意喚起―配信直後のスマホゲーが原因か

  8. エンタテイメント業界の重鎮が語る多様化の時代に求められるコンテンツ像とは? (3)

  9. ゲーム開発をワンストップでサポートする シリコンスタジオ寺田健彦社長インタビュー

  10. 任天堂ミュージアムに行ってきました!

アクセスランキングをもっと見る