kenanのブログ

闘病生活

IGDAのセミナー(スクリプト言語ネタ)に行って来ました

IGDA日本 SIG-GT12「ゲームにおけるスクリプト言語の現状」

というわけで、ゲーム開発者向けの内容だったわけですが、ゲームとは無縁の仕事をしている僕が参加してきました。

場所は東京モード学園コクーンタワー。新宿駅の西口を出てすぐ目の前にある丸みを帯びた網目状のよくわからない建物ですね。

地上30階から見る新宿のど真ん中の風景は圧巻。

ここに入るのに金一杯かかりそうだなーとか思ってしまった。

そんなこんなで参加者の9割は業界人。有名なゲーム会社の人々が多数いました。(勝手に名刺を覗き見)

1:「C/C++へのLua組み込みの実践」

Lua

ゲーム開発は基本C,C++での開発であるが、そこにスクリプト言語であるLuaを使って効率的に開発できますよ。という話。Lua、ゲーム開発でのスクリプト言語の使用例などを解説。

どのような点でスクリプト言語が使われれているか

主に修正が多い箇所。イベント、シナリオ、インターフェース、データ部分など。

採用されているゲームタイトル

Crysis、World of Warcraft、RagnarokOnline、homeworld2、Playstation Home、NiGHTSなど。

AIやゲームルール、ユーザー側への開放されている部分で使われている。

なぜLuaを選択したのか。

ライセンス、採用実績、情報量など

オープンソースなのでGooGleで情報が入りやすい。

Luaの言語仕様についていろいろと紹介。

やはり、メモリ周りの話中心、GCとか。あとはバインド。

C言語スクリプト言語を組み合わせる。組み合わせる際の方法など。

実際にゲームプログラムで敵のデータ部分スクリプトを修正し、リロードするだけでゲームの状態を変更できるのは分かりやすかった。

そんな感じでLuaの話は終わり。

2:「ゲーム機向けのECMA Script実装『CriScript』」

言語実装の話。かなり難しい。

スクリプト言語はゲーム開発ではすでにメジャーな手法であるよ!今後ハードウェアの発展も考えれば富豪的なアプローチができるのではないか。ということでゲーム向けのスクリプトを作成してみました。という。

CriScript

ECMA262のJavascriptと近い仕様で作られた言語。

ゲーム機向けにカスタマイズして実装されている。

Win32XBoxOSXiPhone(移植中)にて動作。

ライセンスはかなりゆるい。ほぼ自由に使える。

内部については難しいのでわかりにくいけど、記述されたCriScriptバイトコードに変換。

VMにてそのバイトコードが実行されるイメージ。

VMの最適化によりLuaと同等の実行速度となった。

テストコードはECMA仕様を採用しているので既存のテストコードを使用。NightlyBuild時に自動テスト

ドキュメントが現在英語のみ。今後日本語版も書く予定?とか言っていたような。

今後どんどんゲーム向けの拡張を増やすらしい。

3:パネルディスカッション「ゲームにおけるスクリプト言語の現状」

参加者にそれぞれ新作ゲームを作るなら?というお題を出して、それにそった内容で質問に対する返答をしてもらう。というものらしいが、ぶっちゃけ回答者が過去に開発したゲームを指してるw

開始はぐだぐだ感が漂いましたが、始まってみるとなかなか面白いディスカッションでした。

FPS、アクション、RPGSRPG(Win)、ADV(Win)、RPGというそれぞれのジャンルで議論。

どの分野でもスクリプトは使われているようだった。

スクリプトをほぼメインで使って開発してる場合。

スクリプトを企画者向けにカスタマイズして使ってもらう&メインの開発でも使用する場合。

プログラマーが居ない状態でもスクリプトで解決できるぐらいな場合

などなど。

大雑把に分けると、生産性をあげるためスクリプトメインで開発を行い、ボトルネックとなる部分をネイティブ実装(C、C++)などで行うパターンか、プランナー向けに開発効率を上げるため簡易的な言語をスクリプト言語で作成し、簡単に扱えるようにさせる補助的なものの2パターンに別れているようだった。

Lispクラッシュバンディクーが作られているのは驚きだった。

このときの司会の人がぶっちゃけすぎたコメントをしまくっていて大変面白かったですね。

スクリプトをネイティブ実装に置き換えるか?という質問では、やはりプラットフォームによってメモリが厳しくなったりすることがあるのでそれぞれ対処していく。というのは基本的なようだ。

その後もいろいろ面白い話はあったけどおぼろげ。

デバッガーなどの話もあり、基本的には標準搭載のデバッガ&Print出力で対応でなんとかなるらしい。

ただし、バグはつぶせるがボトルネックを見つけるのは大変なのでプロファイラは欲しい。という意見はあったりした。

プロファイラは偉大

前で話していた人以外にも、参加者に有名な人が多数聞きに来ていたらしく次回の参加をお願いします!みたいな話をしていた。

参加してみて思ったけど、プログラマーなら結構面白い話が聞ける。僕はWEBベースなので意識しない点でも、組み込みだと基本だったりする点、ほかにも共通するところはあるし、ゲームはよく遊ぶ方なので、どういう作りになっているか気になるし、業界ネタとかなんかも飛び出してくるので楽しかった。

まあ、2000円ぐらいで聞けるなら次回も参加したいと思います。