kなんとかの日記 このページをアンテナに追加

2008-09-20

ゲーム開発現場で多くのオレオレ言語が生まれるのはなぜ?

| 21:48 |  ゲーム開発現場で多くのオレオレ言語が生まれるのはなぜ?を含むブックマーク

日本だけなのかどうか知らないけど、ゲーム開発をしている現場では、結構な数のオレオレ言語 (つまりゲーム専用言語) が開発されているみたい。

【「MGS4」のスクリプト言語

MGS4」で使われていたKONAMI独自開発のスクリプト言語GCL」は、実は植原氏が「MGS」のプログラマだった時代に自作したものだという。自身で語っているように、設計思想プログラマ以外でもいじれるスクリプト言語。日本語で記述可能なところがおもしろい

ページが見つかりません

他にも、NScript とか吉里吉里とかあるよね。

未踏とかでも、ゲーム制作のためのホニャララ言語を作りましたというタイトルを数件見た覚えが。

ゲームを作ったことないし、そもそもゲームをしないからよくわかんないんだけど、ゲームの記述ってそんなに特殊なのかな。汎用言語にDSLをつけたくらいじゃ難しいのかしら。

言語って、それ自体もいいものを作るのが難しいけど、ライブラリを揃えるコスト、デバッガのようなツールを用意するコスト、ドキュメントを書くコスト、それを使うゲームプログラマーの学習コストを考えると、オレオレ言語を作るのはさすがに割にあわないように思うんだけどな (趣味は別として)。

組み込みがしやすくて容量が小さい言語というのであれば、Luaという言語がある。Luaは組み込みすることを前提でつくられた言語であり (luaコマンド自身がLua組み込みの例になっている)、動作も高速 (JIT もあるそうだ)、しかも知名度もあってユーザ数も多い。Lua を差し置いてオレオレ言語が作られるというのだから、やっぱりゲームは特殊なのかもしれない。

もしかして、mark & sweep GC な言語だとリアルタイム性で問題があるから、reference count GC の実装を各自が作っているとか。

まつもとまつもと 2008/09/20 23:43 LuaはインクリメンタルGCなんで、マークアンドスイープを避けた、という理由ではなさそうです。

kwatchkwatch 2008/09/21 12:10 > LuaはインクリメンタルGCなんで、マークアンドスイープを避けた、という理由ではなさそうです。

こちらの言葉が足りませんでした。mark & sweep でも、incremental gc とか concurrent gc を使うことで、gc による中断時間を問題ないレベルまで短くできれば、ゲームでも使えるように思います。が、実際に使ってみたらそうではなかった (短くはなかった) のかもしれません。

ゲーム業界でオレオレ言語が使われるのは、やっぱり記述性なんでしょうかね。ゲーム業界とは個人的な connection がまったくないので、さっぱりわかりません。