4

私は、Ogre3d レンダリング エンジンから便利な 3D ゲーム エンジンを構築して、思いついたいくつかのアイデアをモックアップしようとしていますが、少し岐路に立っています。利用可能なスクリプト言語は数多くありますが、吟味されて適切な支持を得ているスクリプト言語が 1 つか 2 つあるかどうか疑問に思っていました。

LUA と Squirrel はより精査されているように見えますが、私は誰に対してもオープンです。

配布とロードの容易さのために、言語のコンパイルされた形式があれば最適です。

4

9 に答える 9

6

興味深いオプションの 1 つは、stackless-pythonです。これはEve-Onlineゲームで使用されました。

于 2008-09-17T21:54:59.680 に答える
5

構文は好みの問題です。Lua は Javascript に似ていますが、中括弧が Pascal のようなキーワードに置き換えられています。セミコロンは不要ですが、空白は重要ではないという優れた構文機能を備えているため、すべての改行を削除しても機能します。C から始めた者として、Python は他のすべての言語と比較して難解な構文を持つ言語だと思います。

また、LuaJIT は Python の約 10 倍高速であり、Lua インタープリターははるかに小さくなっています (150kb または約 15k 行の C を実際に読んで理解することができます)。大規模な言語を埋め込むことなく、ユーザーにゲームのスクリプトを作成させることができます。一方、Lua からパーサー部分を切り取ると、さらに小さくなります。

于 2008-09-17T21:52:34.133 に答える
4

Python / C APIマニュアルは、 Luaマニュアル全体(Lua / C APIを含む)よりも長くなっています。

Luaのもう1つの理由は、コルーチンのサポートが組み込まれていることです(1つのOSスレッド内での協調マルチタスク)。これにより、数千のように見える個々のスクリプトを互いに非常に高速に実行できます。モンスター/武器ごとに1つのスクリプトのように。

(なぜ人々はSOでLuaを大文字で書くのですか?それは「Lua」です(ここを参照)。)

于 2008-09-17T22:04:00.080 に答える
1

ルアにもう一票。小さく、高速で、統合が容易で、最新のコンソールにとって重要なことは、メモリ操作を簡単に制御できることです。

于 2008-09-17T22:14:31.817 に答える
0

pythonには、実際のOGREバインディングがあるので、その場で低レベルのものを変更する必要がある場合に備えて、便利です。Luaに相当するバインディングはわかりません。

于 2011-04-26T07:01:09.623 に答える
0

LUAはお勧めしません。独特の構文を持っているので、慣れるまでに少し時間がかかります。誰がスクリプトを実行するかによっては、これは問題にならないかもしれませんが、私はかなりアクセスしやすいものを使用しようとします。

私はおそらくPythonを選ぶでしょう。通常はバイトコードにコンパイルされるため、インタプリタを埋め込む必要があります。ただし、必要な場合は、PyPyを使用して、たとえばコードをCに変換してから、コンパイルすることができます。

于 2008-09-17T21:42:11.957 に答える
0

インタープリターの埋め込みは問題ありません。現時点では、機能とパフォーマンスにもっと興味があります。LUA と Squirrel は両方とも解釈されます。これは、私が構築しているゲームの 1 つに、ゲーム内にエディターがある変更可能なコードを含めることであるため、素晴らしいことです。

私が信じているバトルフィールドシリーズでPythonが使用されているのを見たので、Pythonについて聞きたいです。

于 2008-09-17T21:47:10.400 に答える
0

バインディングの作成は非常に簡単で、ライセンスは非常に使いやすく (MIT)、既存のライブラリもこのライセンスの下にある傾向があるため、私は Lua を使用します。また、Scheme はバインドも簡単で、Gimp の画像エディタなどに採用されています。しかし、ルアは単に素晴らしいです。World of Warcraft は、非常に知名度の高い例として、それを使用しています。LuaJIT は、ネイティブ コンパイルのパフォーマンスを提供します。純粋な C から1 桁未満です

于 2008-09-17T21:34:11.133 に答える