« HDDが不安定 | メイン | 人をムッとさせてしまうこと('A`) »

[開発] 組み込みスクリプト言語どうしよーか

組み込み言語

今作っているゲームの組み込みスクリプト言語どうすべきか。
主にデータの定義や宣言に使う。
今は、パラメータは、xmlで書いているけど、素のxmlだと計算ができないので痛い。

やっぱりちゃんとした、スクリプト言語を組み込みたいところ。

以下、候補。

  • Lua
  • Squirrel
  • Xtal
  • Ruby
  • Python

Rubyは、Pythonは、ゲームの組み込みにはちょっとデカイ印象。

Lua

Luaは、グラフィオンというプロジェクト(未公開)で、
以前に使ってみたことがあるけれど、
テーブルの扱いがなんかキモかった。
namespaceとして、テーブルを使おうとすると、文末に、"," がくるのがウザイ。
(どーでもいいところが気になるもの)

あと、関数呼び出しで、スタックを操作するってのがなんかキモイ。
キモイというか、脳が死ぬ。

Squirrel

Squirrelは、どうだろ。

実は、まだ試してないのだけど、
Luaの仕様にブチギレた FarCry のプログラマが作ったというので、
かなり期待をしている。
(そーいや、FarCryってLua使ってたなー)

つまり、ベターLua 的存在。

しかしながら、Squirrel の Delphiバインディングは、まだないみたいなので、
使うなら、作る必要性がでてくる。
そもそも、もし、C++依存だったり、DLL化を意識してない作りなら、
簡単に作れるかわかんないわけだけど。

Squirrelで、長いコードを書く気はさらさらないのだけれど、
一応、SQDEVなるEclipseな、開発環境兼デバッグ環境もあるらしい

(どーでもいいけど、Squirrelって、末尾再帰対応するっぽい?そんなの組み込み言語にいるのかよ!)

困ったことに、素のSquirrelは、Lua同様スタック操作必須。
キモイヨー。

Xtal

Xtalは、期待の新星。
たぶん日本人によって作られている、ゲーム用組み込み言語です。
Luaや、Ruby、Python なども参考にされている様子。

まだ、ver 1.0 になってないようなので、
使うには早々かもしれないですけど、
機能や、言語仕様などを見ると非常に期待できます。

ただし、C++依存のようで、Delphiへの組み込みはちとつらいだろう。
DLLにして、依存部分をラップして……と、考えるとやはりつらそう。

参考リンク

カテゴリ: [ 開発 ]

コメント (5)

Ko-Ta:

Luaはコンシュマーでよく使われてるとかどうとか。
個人的には複雑な機能は必要ないので簡単でコンパクトでCっぽいのがいいなーと思います。サブルーチンジャンプ、ローカル変数ぐらいあれば構造体とか別に無くても:Q。
案外自分で作っちゃったほうが解決が早いかもしれませんねー。

TOBY:

> 案外自分で作っちゃったほうが解決が早いかもしれませんねー。

いやー、たぶん早くないと思うw

前にでっち上げで、ネームスペース指向のスクリプトを作ったのですが、機能が足りずw(関数呼び出しなしw)

一週間くらい時間あったら、作れるかもだけど、バグ取りとか大変だし、ありものを使おうかなーというのが本音です( ´∀`)

Luaは使ってましたけど、確かにスタック操作系は非直感的。最近はSWIGで回避してます。テーブルは個人的には大好きですね、緩さがたまりません。

xtalはぼくも注目してます。今度機会があれば使いたい候補No.1。そして、最近はDelphi使わずC++ばっかり・・・。あぁIDE作りたい。

勢いだけでdelphiでluaを実用までこぎつけましたが、改めて使えるかときかれると、ソースを外部に出せるのでユーザ向けかなーという評価です。
言語自体の開発まで話が行くとは、さすがtobyさんやko-taさんというか。

TOBY:

ども。Lua人気ですね。

> SWIG
あ、そんなものが!忘れてた。
3DエンジンのPython版とか、SWIGで作られてたり、結構実用的らしいですね。
Delphi版SWIGとかあればいいのになー。

> 言語自体の開発まで話が行くとは
言語開発は、プログラマの3台欲求(というか罠)と呼ばれているくらいのものですからw
しかし、安易に踏み込むと、泥沼の最大級の罠です。

コメントを投稿

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

人気エントリー

About

2007年05月24日 06:21に投稿されたエントリーのページです。

ひとつ前の投稿は「[雑記] HDDが不安定」です。

次の投稿は「[雑記] 人をムッとさせてしまうこと('A`)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。