XNAエンジンにRubyを埋め込む方法は?
質問
RubyをMicrosoft XNAのスクリプト言語として埋め込むことが可能かどうか、そしてそれを行うための最善の方法は何だろうと思っています。 Rubyを除き、 Xnua のようなものを探しています。
Ruby.NETとIronRubyに出くわしましたが、どちらも非常に初期の段階にあるようです。さらに、Xbox 360で動作するかどうかはわかりません。この XNAのトピックフォーラムでは、たとえばIronPythonは機能しないと述べています。
解決
IronRubyとIronPythonは、 DLR に基づいているため、Xbox 360では機能しません。 (Dynamic Language Runtime)およびDLRはシステムを多用しています。 Xbox 360 .Net Framework(Compact .Net Frameworkの修正版)では現在利用できないReflection.Emit タイプ。
それを行う最良の方法については、残念ながらゲームの残りの部分に依存します。 XNAプログラムのコンテキストでIronRubyスクリプトを評価できるようにする作業は非常に簡単です。ブログの投稿。それを超えて、スクリプトにいくつかの興味深いオブジェクトを公開したいと思いますが、それはゲームコード/デザインの残りの部分に完全に依存しています。 Unityのスクリプティングドキュメントを参照して、公開するタイプとコマンド。
他のヒント
IronRubyがXboxで動作しないことはほぼ保証されていますが、Windows用のXNAゲームを開発したいだけであれば、他のアプリケーションと同じように使用できるはずです。
それを実現する方法については、どのように実際に説明することはできません。
Leaf Garlandの観察に同意しますが、別の方法をご紹介します。
「推奨」ゲームのスクリプト言語はLuaです。たとえば、ゲームCrysis and Far CryはLUAを広範囲に使用しています。 wikipedia でフリックすると、それを使用する有名なゲームのリストが表示されます。
XNAでそれを使用するという点では、趣味のXNA開発を始めたばかりであるため、表面に傷を付けただけですが、XNAでLUAを直接使用することはできません。これは、LUAがC ++(アンマネージド)で構築されているため、XBOX360に展開できないためです。
http://www.xnua.comにluaのXNAバージョンを構築している開発中のプロジェクトがあります。 / 。また、無料の製品であり、ソースコードもダウンロードできます。
LUAがAAA商用ゲームに十分であるとゲーム業界が信じているなら、私も個人的にその指示に従います(彼らは私よりもその分野でより多くの経験を持っていることに基づいて)
PC開発にRubyを使用し、360にLuaを使用しないのはなぜですか?
編集:これが役立つかもしれません。