5

私はゲーム スクリプト言語の設計を検討しており、ゲーム業界で働く人々が優れたゲーム スクリプト言語に不可欠なアイテム/プロパティと見なすものは何なのか疑問に思っていました。これには次のようなものが含まれます。

  • 静的タイプと動的タイプ
  • 誰を対象とすべきでしょうか: プログラマーですか、それともデザイナーですか?
  • 構文 (C のように見える必要がありますか?)
  • どのくらいのレベルにすればいいですか?(たとえば、C vs Lisp -- または命令型 vs 関数型)
  • それは何をすることができなければなりません。どのくらい速くする必要がありますか?

また、いくつかのソースから、スクリプトはプログラマーよりもデザイナーによって書かれることが多いため、スクリプトは非常に単純になる傾向があると聞いています。これは事実ですか?

4

4 に答える 4

7

PythonLuaなど、実際にゲームのスクリプトに使用されている言語を調べてみてはいかがでしょうか。

どちらもたまたま動的に型付けされており、構文に関しては、Python は C に似ておらず、Lua は C とあまり似ていません。

おそらく、それらがゲーム スクリプトに使用される理由は、言語をスクリプト エンジンとして埋め込むのが簡単だからです。デザイナーを念頭に置いて言語を設計する場合、ゲームに簡単に統合できる言語を使用するのではなく、おそらく言語の要件をデザイナーのニーズに合わせて変更する必要があります。

于 2009-03-12T13:15:41.647 に答える
3

あなたは非常に一般的な質問をしていて(スクリプト言語が何をしなければならないか、またはそれがどれくらい速くなければならないかわからない場合)、特定の答えを期待しているようです。

スクリプト言語の主な理由は、ソースコードをハッキングすることなくゲームを変更できるようにすることです。それで行きましょう。

したがって、デザイナーはソースコードをハッキングすることはなく、プログラマーもハッキングするので、デザイナーを対象にする必要があります。ゲームを適切に実行するには、十分に高速である必要があります。設計者が入力する内容をすべて入力できるように、十分に強力である必要があります(はい、これらはあいまいな答えですが、より具体的にするための十分な情報を提供していません)。

したがって、特定の構文モデルや静的型付けなど、主にプログラマーに役立つ機能については忘れてください。設計者はC構文に夢中になっているわけではなく、静的型付けやメモリ管理について心配する必要はありません。

すでに確立された言語を使用することには、いくつかの本当の利点があります。設計者はそれについてある程度の経験があるかもしれません、それはすでに文書化されています、そして多くの難しいことはあなたのためにすでに行われています。これには言語設計も含まれます。プログラマーは、スクリプト言語の何が優れているかを必ずしもよく理解しているとは限りません。

これは、LuaやPythonのようなものを示唆しています。

于 2009-03-12T15:19:05.533 に答える
1

それは、どの部門が大部分のスクリプト作成を行うかによって部分的に異なります。たとえば、レベル デザイナーがスクリプト作成の大部分を行っている場合、最適なタイプの言語は、急な学習曲線を必要としない自然言語に近いものになります。レベル デザイナーは、サウンドを再生するためだけに C/C++ のような複雑な構文を学習したいとは限りません。

疑似言語は次のようになります (TES Construction Set スクリプトは次のようなものです)。

script MagicCaveDoorScript
    on UseAction
        if HasItem magicDoorKey
            PlaySound2D magicDoorOpen
            ChangeArea magicCave01
        else
            Message "You need the magic door key to enter..."
        end
    end
end

しかし、プログラマーが多くのスクリプトを作成している場合は、Lua や Squirrel などのより複雑な言語をクラスやオブジェクトなどで使用する方が、おそらくより柔軟で強力です。

「より単純な」スクリプト言語を作成することの 1 つの良い面は、実装がより難しい言語ほど複雑ではなく、GUI を介してスクリプトを作成するためのツールを簡単に開発できることです。プレイ、付けるモンスターアイテム一覧など

于 2009-11-10T03:13:26.483 に答える
1

私の理想のゲーム スクリプト言語は、Python のような構文を持ち、LUA と同じくらい簡単に他の言語に組み込むことができます。
さらに、LuaInterface と組み込みの IronPython が依存するリフレクション機能が現在 (そしておそらく永遠に) 欠けている XNA 内に埋め込むことができるはずです。

于 2009-03-12T13:20:55.457 に答える