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

スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 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ではやってられなかったと思う」と回答、初期段階から得られる生産性の高さを評価していたのが印象に残るセッションでした。


《伊藤雅俊》
【注目の記事】[PR]

編集部おすすめの記事

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

  1. 【CEDEC 2008】ゲーム開発会社が海外パブリッシャーから開発を受注するには?

    【CEDEC 2008】ゲーム開発会社が海外パブリッシャーから開発を受注するには?

  2. ゲームコントローラーの市場規模、2027年に29億7350万米ドル到達予測─技術的進歩や新型コロナの影響で

    ゲームコントローラーの市場規模、2027年に29億7350万米ドル到達予測─技術的進歩や新型コロナの影響で

  3. 【GDC 2015】2人で作って10億円を稼いだ『クロッシーロード』のサクセスストーリー

    【GDC 2015】2人で作って10億円を稼いだ『クロッシーロード』のサクセスストーリー

  4. セタが解散へ―『スーパーリアル麻雀』や『森田将棋』で知られる

  5. メタバースってなあに? 『あつ森』『ポケモンGO』はどうなの? ゲーマーは知っておきたい基礎知識

  6. 「愛・地球博」のポケパークの詳細が明らかに

  7. 任天堂が65歳定年制を導入

  8. ポケモンはここで作られる!ゲームフリーク訪問記(前編)

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

  10. 偶然の出会いが唯一無二のコンテンツを生んだ『El Shadai~エルシャダイ~』ディレクター竹安佐和記Xルシフェル役 竹内良太・・・中村彰憲「ゲームビジネス新潮流」第22回

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