我想知道是否可以在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?

编辑:也许这个会很有用。

虽然它不是Ruby,但这是一个老问题,我想启发你一个我一直在构建的新脚本引擎。它基本上可以在任何有.Net框架的地方运行,包括在XNA下的Xbox360上。它没有使用Reflection.Emit,因此它适用于其他语言不能使用的地方。它也是完全托管的代码,所以没有像Lua那样的P / Invokes。

您可以从我的博客获取更多信息,并可以在此演示页面

它几乎已准备好进行beta测试,但经过beta测试后,它将成为商业许可的组件

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top