如何将Ruby嵌入XNA引擎?
题
我想知道是否可以在Microsoft XNA中嵌入Ruby作为脚本语言,以及最好的方法是什么。我正在寻找像 Xnua 这样的东西,除了Ruby。
我偶然发现了Ruby.NET和IronRuby,两者似乎都处于早期阶段,所以我不确定它们有多可用。此外,我不确定他们是否可以使用Xbox 360.这个 XNA主题例如,论坛表示IronPython不起作用。
解决方案
IronRuby和IronPython不适用于Xbox 360,因为它们基于 DLR (动态语言运行时)和DLR大量使用系统。 Reflection.Emit 目前在Xbox 360 .Net Framework(Compact .Net Framework的修改版本)上不可用的类型。
至于最好的方法,不幸的是,这取决于游戏的其余部分。能够在XNA程序的上下文中评估IronRuby脚本的工作非常简单,请查看博客文章。除此之外,你还想向你的脚本展示一些有趣的对象,而这完全取决于你的游戏代码/设计的其余部分。您可以查看 Unity脚本文档以了解要公开的类型和命令。
其他提示
几乎可以保证IronRuby不会在Xbox上运行,但如果您只是想为Windows开发XNA游戏,那么您应该能够像使用其他任何应用程序一样使用它。
我无法告诉你你将如何这样做,只是它应该是可能的。
虽然我同意Leaf Garland的观察,但让我为您提供另一种选择:
“优选的” Lua是游戏的脚本语言。例如,游戏“孤岛危机”和“孤岛惊魂”广泛使用LUA。点击维基百科,查看使用它的重要游戏列表。
在使用XNA的方面,我只是从表面开始,因为我刚开始使用业余爱好XNA开发,但我所知道的是你不能直接在XNA中使用LUA。这是因为LUA是用C ++(非托管)构建的,因此您将无法将其部署到XBOX360。
正在开发的项目正在 http://www.xnua.com上构建xua版本的lua / 。它也是免费产品,源代码也可以下载。
如果游戏行业认为LUA对AAA商业游戏来说已经足够好了,我个人也会遵循这个方向(因为他们在这个方面比我更有经验)
为什么不使用Ruby进行PC开发,使用Lua for 360?
编辑:也许这个会很有用。