CEDEC2008 小さな王様と約束の国

CEDEC2008でのSquirrelの講演を見ました。

スクリプタだけではなく、プログラマSquirrelで一緒に開発。

3割がC++コードで7割りがスクリプトプログラマも後半はほとんどSquirrelで作業しつつたまにC++実装してバインディング。途中で面倒になってきたので自動バインディング環境を作った。Squirrelによる処理負荷オーバーヘッドは約10%程度。Squirrelでの文字列操作はreallocが大量に発生するので代替手法を用意。

Include

話を聞いた感じだと、キャッシュ付きのdofileだと思います。同じファイルでかつ更新の必要がなければキャッシュのclosureを実行する感じなのかな?これは面白いトリックなのでshive's codeにも入れたいですね。

shive's codeのC++クラスバインディングがSqPlusに似てる?

いや、別にSqPlusをパクったつもりはなかったんですが、使い方の見た目はまったく同じ(^^;
templateで引数、戻り値は型から取得。引数は7つまで対応らしい。ちなみにうちは5つまでしか対応してないすな。5つも引数使う関数ってどうよ?って思って定義してないけど増やすのは3分でできる。
ついでなのでRegisterGlobalとBindConstantもパクることにします。もちろん実装は自分で書きますけど。

(やっぱり)動的型言語は開発しづらい

諸所で同じような話は聞きますが、やっぱり動的型言語はコンパイル時にエラーにならない分バグを発見しづらいようで。
僕の場合、内製ツール開発でしかスクリプト(ちなみにLuaPython)を使ったことがなく、ほとんど作業がひとりで完結してるのでこういった問題に遭遇しないんです。1回ゲーム開発で担当してやってみたいところですね。
スクエニの人はsq.exeを使って一応確認はしたみたいですけど、結局コメントをちゃんと書こうってオチになってました。
やっぱし非プログラマSquirrelを直接書いてもらうのは危険な気がしています。超簡易言語やエクセルを用意してそこから定型処理的に.nutを起こす方が現実的なのかな?それでも結局プログラマの書くコードでエラーが出るかもしれないのでそこはUnitTest書くしかないんすかね?でもやっぱりUnitTestでは使う側のテストが難しいので微妙か。型チェックモッククラスを自動生成してインプットもアウトプットもモックにしてテストすれば。。。

Wiiでは通信速度の問題でSQDevは使えなかった

これは残念ですなぁ。PS3Xbox360だといけるのかな?

気になる気になる

WiiはビッグエンディアンなのでエンディアンWindowsと違うわけですが、なんも問題なく動いたのかな?
アラインメントそろえないといけないクラスとかってどうやってバインディングしたんだろう?ホルダークラスとか作ったのかな?