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

スクリプト言語をメインに開発された『小さな王様と約束の国』舞台裏〜 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. 海外サイトが選ぶ「ゲームの政治家トップ10」−1位はやっぱり……?

    海外サイトが選ぶ「ゲームの政治家トップ10」−1位はやっぱり……?

  2. 任天堂がマイクロソフトにレア社を売却した経緯とは・・・3億7500万ドル巨額買収の裏側

    任天堂がマイクロソフトにレア社を売却した経緯とは・・・3億7500万ドル巨額買収の裏側

  3. 令和に新作ファミコンカセットを自作!その知られざるテクニック&80年代カルチャーを「桃井はるこ」「なぞなぞ鈴木」らが語る【インタビュー】

    令和に新作ファミコンカセットを自作!その知られざるテクニック&80年代カルチャーを「桃井はるこ」「なぞなぞ鈴木」らが語る【インタビュー】

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

  5. マリオが「チョコエッグ」に!

  6. 【CEDEC 2016】技術から語る『龍が如く』の10年──特殊エフェクトや物理エンジンの取り組み

  7. 「キミの心の応援団長」バーチャルYouTuber富士葵が込める想いとはーーキーマンインタビュー

  8. YouTubeで違法動画を見てしまったら・・・?分からないことだらけの「違法ダウンロード刑事罰化」まとめ

  9. 株式会社そらゆめが倒産―『ひぐらしうみねこカードバトル』の開発、クラウドファンディングサイトを運営

  10. コンプガチャはなぜ駄目か? ソーシャルゲーム今後の争点

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