我想知道是否可以将 Ruby 作为脚本语言嵌入到 Microsoft XNA 中,最好的方法是什么。我正在寻找Xnua 之类的东西,除了 Ruby。
我偶然发现了 Ruby.NET 和 IronRuby,它们似乎都处于非常早期的阶段,所以我不确定它们的可用性如何。此外,我不确定他们是否可以在 Xbox 360上工作。例如,XNA 论坛上的这个主题说 IronPython 不能工作。
IronRuby 和 IronPython 不能在 Xbox 360 上运行,因为它们基于DLR(动态语言运行时),并且 DLR 大量使用System.Reflection.Emit类型,这些类型目前在 Xbox 360 .Net Framework 上不可用(经过修改Compact .Net 框架的版本)。
至于最好的方法,不幸的是,这取决于你游戏的其余部分。使 IronRuby 脚本能够在 XNA 程序的上下文中进行评估的工作相当容易,例如查看这篇博客文章。除此之外,您还希望将一些有趣的对象暴露给您的脚本,而这完全取决于您的游戏代码/设计的其余部分。您可以查看Unity 的脚本文档以了解要公开的类型和命令。
几乎可以肯定 IronRuby 不能在 Xbox 上运行,但如果您只想为 Windows 开发 XNA 游戏,那么您应该能够以与任何其他应用程序相同的方式使用它。
我真的不能告诉你你会怎么做,只是应该是可能的。
虽然我同意 Leaf Garland 的意见,但让我为您提供一个替代方案:
游戏的“首选”脚本语言是 Lua。例如《孤岛危机》和《孤岛惊魂》游戏广泛使用 LUA。在wikipedia上浏览一下使用它的著名游戏列表。
就在 XNA 中使用它而言,自从我刚开始从事 XNA 开发的业余爱好以来,我只触及了皮毛,但我知道你不能直接在 XNA 中使用 LUA。这是因为 LUA 是用 C++(非托管)构建的,因此您将无法将其部署到您的 XBOX360。
在http://www.xnua.com/有一个正在开发的项目正在构建一个 XNA 版本的 lua 。它也是一个免费产品,源代码也可供下载。
如果游戏行业认为 LUA 足以胜任 AAA 商业游戏,我个人也会遵循这个方向(基于他们在该领域的经验比我多得多)
为什么不将 Ruby 用于 PC 开发,而将 Lua 用于 360?
编辑:也许这会有用。