12

この件に関していくつかの質問が浮かんでいることは知っていますが、私が求めているものに役立つものを見つけるのは困難でした...

また、おそらく完了するのはかなりの作業になることもわかっていますが、ゲーム エンジン用の単純なスクリプト言語を本当に作りたいと思っています... C++ と Android Java ゲーム エンジンでそれを使用したいのですが...どこから始めればいいのかわからない...オンラインでチュートリアルを探してみましたが、多くのものをバイトコード、仮想マシンなどに変換する必要があります...

私は本当に、エンジンから読み取ることができる単純なスクリプト言語を作成し、いくつかの単純な「if/else」ロジックを作成したいだけです...他のスクリプトから呼び出すことができる単純な関数など...バージョン... どこから始めればいいのか本当にわかりませんが、これは勉強と理解を始める必要があることを知っています.

誰かが私を正しい方向に向けて、非常に単純な「ゲーム用の単純なスクリプト言語を作成する」チュートリアルへのリンクをいくつか指摘したり、調査すべきいくつかの重要な概念を指摘したりできれば...本当に感謝しています.

私はミニマリストの C ベースのスクリプト言語を好みますが、詳細については、実際に詳しく学べばわかると思います。

誰でもできる助けをありがとう。

4

3 に答える 3

5

オンラインでチュートリアルを探してみましたが、多くのものをバイトコードや仮想マシンなどに変換する必要があります

はい。これは、非常に単純な言語であっても、実際にはアプローチです。ソース コードを直接実行するのはかなり複雑です。これを行うには、まずソース コードを解析してバイト コードにダイジェストし、次に仮想マシンにバイト コードを解釈させます。

既存の言語を調べて、その設計について学びたいと思うかもしれません。

Flipcode のこのチュートリアルでは、単純な言語を構築し、すべてのコードが含まれているため、役立つ可能性があります。

Luaのソース コードも参照できます。

于 2012-01-15T08:32:51.710 に答える
4

私の仕事の一部は、独自のゲーム スクリプト言語を維持することです。私は狭義のテーマに関する「ハウツー」本を知りません。そのような言語を書くことについて、Bruce Wilcox による興味深い記事があります。実装の詳細については説明しませんが、設計プロセスに多少入ります。

http://www.gamasutra.com/view/feature/1570/reflections_on_building_three_.php

スクリプト言語を書くことは、他の言語を書くことに似ており、すべて同じ原則と設計の問題が含まれます。言語がどのような概念を中心に展開すべきかを考える必要があり、文法を定義する必要があります。次に、コンパイラーまたはトランスレーターおよび/またはインタープリターを作成する必要があります。どちらを選択するか、およびそれらの実装の詳細は完全にあなた次第であり、これらのことを達成するための唯一または最良の方法はありません。

構文の解析と言語文法の定義に関しては、標準的な考え方があります。ここでは正規表現があなたの味方です。ありがたいことに、C++11 には<regex>ライブラリが含まれています (元々は boost から)。コンパイラに関する本を手に取って、重要な概念を理解するのに役立つかもしれません。大学時代に編纂講座を受講していたときの教科書で、今でも手元に置いているのでオススメです。

http://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho/dp/0201100886/ref=sr_1_2?ie=UTF8&qid=1326618572&sr=8-2

言語を書くことは、コンピューター サイエンスの素晴らしい練習です。ただし、これが実際のプロジェクトまたは製品に関するものである場合は、既にコメントした他の人たちと同様に、私の専門的なアドバイスは次のとおりです。これは、あなたが検討している膨大な潜在的な時間投資であり、自問する必要があります: Lua や Python のような既存の自由に使用できる言語では見つけることができない、自分の言語から得られる利点は何ですか?それらの利点は、実装にかかる数か月の余分な時間の価値がありますか?

そしてツールを忘れないでください。他の人が使用する言語を作成している場合は、多くのドキュメントとツール、ツール、ツールが必要です。ほとんどの場合、少なくともソース レベルのデバッガーが必要になります。優れたデバッガーを作成するには、言語自体を作成するのと同じくらいの時間がかかります。

ゲーム ロジックを迅速にプロトタイピングするための言語だけが必要な場合は、Lua がニーズに適している可能性が高く、多くの既存のドキュメント、文献、およびツールが付属しています。

于 2012-01-15T09:35:34.083 に答える
3

あなたがそれらを見つけることができれば、いくつかの古い記事はまだよく読まれています:

  • M. Abrash、D。Illowsky、「ミニインタプリタで自分のミニ言語を転がす」、Dr。Dobb's Journal 14(9)(1989年9月)52–72。
  • J. Bentley、「Programming pearls:little languages」、Communications of the ACM 29(1986)711–721。
  • D. Betz、「埋め込み言語」、バイト13#12(1988年11月)409–416。
  • D. Betz、「あなた自身の小さなオブジェクト指向言語」、Dr。Dobb's Journal 16(9)(1991年9月)26–33。
  • N. Franks、「ソフトウェアに拡張言語を追加する」、Dr。Dobb's Journal 16(9)(1991年9月)34–43。
  • R.Valdés、「小さな言語、大きな質問」、Dr。Dobb's Journal 16(9)(1991年9月)16–25。

ボブ:ベッツによる小さなオブジェクト指向言語も参照してください。BOBの最新のソースは、http: //www.xlisp.org/で入手できます。

于 2012-01-17T14:58:45.047 に答える