3

我想知道是否可以将 Ruby 作为脚本语言嵌入到 Microsoft XNA 中,最好的方法是什么。我正在寻找Xnua 之类的东西,除了 Ruby。

我偶然发现了 Ruby.NET 和 IronRuby,它们似乎都处于非常早期的阶段,所以我不确定它们的可用性如何。此外,我不确定他们是否可以在 Xbox 360上工作。例如,XNA 论坛上的这个主题说 IronPython 不能工作。

4

5 回答 5

8

IronRuby 和 IronPython 不能在 Xbox 360 上运行,因为它们基于DLR(动态语言运行时),并且 DLR 大量使用System.Reflection.Emit类型,这些类型目前在 Xbox 360 .Net Framework 上不可用(经过修改Compact .Net 框架的版本)。

至于最好的方法,不幸的是,这取决于你游戏的其余部分。使 IronRuby 脚本能够在 XNA 程序的上下文中进行评估的工作相当容易,例如查看这篇博客文章。除此之外,您还希望将一些有趣的对象暴露给您的脚本,而这完全取决于您的游戏代码/设计的其余部分。您可以查看Unity 的脚本文档以了解要公开的类型和命令。

于 2008-10-22T13:07:31.820 回答
2

几乎可以肯定 IronRuby 不能在 Xbox 上运行,但如果您只想为 Windows 开发 XNA 游戏,那么您应该能够以与任何其他应用程序相同的方式使用它。

我真的不能告诉你你会怎么做,只是应该是可能的。

于 2008-10-22T09:31:19.400 回答
1

虽然我同意 Leaf Garland 的意见,但让我为您提供一个替代方案:

游戏的“首选”脚本语言是 Lua。例如《孤岛危机》和《孤岛惊魂》游戏广泛使用 LUA。在wikipedia上浏览一下使用它的著名游戏列表。

就在 XNA 中使用它而言,自从我刚开始从事 XNA 开发的业余爱好以来,我只触及了皮毛,但我知道你不能直接在 XNA 中使用 LUA。这是因为 LUA 是用 C++(非托管)构建的,因此您将无法将其部署到您的 XBOX360。

在http://www.xnua.com/有一个正在开发的项目正在构建一个 XNA 版本的 lua 。它也是一个免费产品,源代码也可供下载。

如果游戏行业认为 LUA 足以胜任 AAA 商业游戏,我个人也会遵循这个方向(基于他们在该领域的经验比我多得多)

于 2009-03-12T10:46:55.450 回答
0

为什么不将 Ruby 用于 PC 开发,而将 Lua 用于 360?

编辑:也许会有用。

于 2009-03-12T11:03:55.817 回答
0

尽管它不是 Ruby,而且这是一个老问题,但我想向您介绍我一直在构建的新脚本引擎。它基本上可以在任何有 .Net 框架的地方运行,包括在 XNA 下的 Xbox360 上。它不使用 Reflection.Emit,因此它可以在其他语言不使用的地方工作。它也是完全托管的代码,所以没有像 Lua 这样的 P/Invokes。

您可以从我的博客中获得更多信息,并可以在此演示页面上试用

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

于 2012-06-29T07:13:07.690 回答