4

私は基本的なゲームエンジンをゼロから構築することを検討してきました。他のエンジンに共通する機能のリストを作成した後、大きなことの1つは、luaやpythonなどのスクリプト言語が埋め込まれていることです。

私の質問は、ユーザーが多くの機能や状態にアクセスできるようにするc ++ファイルに含めることができるヘッダーファイル(または同様のもの)を作成するよりも、埋め込みスクリプト言語がどのように優れているかということです。そこには非常に良い答えがあると確信しています、私はまだそれにつまずきませんでした。

また、なぜそれが必要なのかを超えて、ゲームエンジンのようなもので使用されるluaのような言語は何ですか?

4

3 に答える 3

7

LuaはC++よりもはるかに単純な言語であり、編集する必要があるのはテキストエディターだけです。これにより、イベントや高レベルのゲームロジックをスクリプト化する機能がデザイナーやエンドユーザーの手に渡ります。動的型付けとガベージコレクションにより、C ++などの言語で発生するすべてのシステムレベルのハウスキーピングの雑用ではなく、ゲームロジックに焦点を当てた非常に簡潔なコードを記述できます。サンドボックス化もはるかに簡単です。

Luaは、小さく、ポータブルで、ハッキング可能なANSI Cコードベースであるため、人気のある選択肢です。埋め込み、拡張が簡単で、ゲーム開発者にとって最も重要なことですが、実行時のフットプリントが最小限に抑えられています(最も高速に解釈される言語の1つ)。また、構文の学習/読み取り/書き込みが簡単ですが、ゲームで非常に役立つコルーチンなどの強力な機能を備えています。

于 2012-08-20T01:51:23.060 に答える
2

スクリプト言語を含める理由は、ユーザーがコードを再コンパイルせずに動作をカスタマイズできるようにするためです。

質問の2番目の部分であなたが何を求めているのかわかりません。他にどのような言語が使用されているのか、それともLuaのような言語はどのように使用されているのかを尋ねていますか?

他のどの言語がこれに適しているかについて尋ねた場合、そのような言語の1つはTclです。Tclは、埋め込まれたスクリプト言語になるようにゼロから設計されており、非常に成熟していて堅牢であり、技術者以外の人でも簡単に習得できます。

どのスクリプト言語が適しているかについては...構成ファイルは1つの方法です。名前と値のペアを持つテキストファイルではなくプログラミング言語を使用することで、ユーザーは起動ファイルにロジックを追加できます。たとえば、ユーザーがキーボードのキーにさまざまな機能を割り当てることができるようにする場合があります。プログラミング言語を使用すると、コンピューターごとに異なる機能を追加できます。または、RPGのようなゲームを作成している場合は、キャラクタークラスごとに異なるキーを割り当てることができます。メイジとしてプレイする場合、F12は呪文を唱えるかもしれませんが、戦士としてプレイする場合、f12は最後の一撃をするかもしれません。

スクリプト言語を使用する方法はたくさんあり、さまざまな言語から選択できます。つまり、ユーザーがコードを再コンパイルしなくてもゲームの動作をカスタマイズできるようにすることです。

于 2012-08-20T00:16:47.993 に答える
2

ゲーム開発者によるこの記事は、埋め込み言語が使用される理由を理解するのに役立つ場合があります。

http://www.grimrock.net/2012/07/25/making-of-grimrock-rapid-programming/

もう1つの理由は、ソースコードをゲームユーザーと共有していて、すべてCプログラマーでない限り、luaなどの言語を使用すると、ユーザーがゲームを拡張できるようになります。たとえば、WorldofWarcraftをご覧ください。

于 2012-08-20T07:17:54.173 に答える