【问题标题】:C# Scripting languageC# 脚本语言
【发布时间】:2010-12-22 09:11:42
【问题描述】:

这是一个有点奇怪的问题。

我想为我为 XNA 构建的游戏模组提供一种脚本语言。如果我为 PC 开发这些游戏,那么我将能够使用 C# 文件,在运行时编译(使用reflection.emit)作为脚本,这很好 - 一个很好的简单方式来修改游戏。但是,.net compact 框架(这是 xbox 提供的)不支持反射.emit,那么我该如何编写脚本语言来考虑这一点?

  1. 是否有任何项目已经这样做了
  2. 有什么好的资源可以开始我自己的项目来做这个
  3. 最好选择哪种语言?这是用于游戏脚本的,因此它可以是一种相当小的语言,只要它非常高效且易于实现解释器

【问题讨论】:

  • 实际上,Reflection.Emit 不允许您编译 C# 代码。你说的是 CodeDOM 吗?
  • 看来我有。紧凑框架上是否提供 codeDom?

标签: c# scripting xna interpreter


【解决方案1】:

Lua 通常用于游戏脚本。例如,魔兽世界为其所有模组制作者提供它。

还可以看看这些网站:

  1. C++
  2. C#

【讨论】:

  • 是的,但是是否有用于 LUA 的纯 C# 解释器?据我所知没有:(
  • 哦,看起来很积极,你能把它编辑成答案,这样我就可以给你投票了吗?
【解决方案2】:

我知道这是一个老问题,但我之前有类似的要求,我发现了 Managed Scripting。看起来它最初是为了解决 XNA 游戏中的脚本问题而开发的,所以这更好。

来自网站:

托管脚本引擎

托管脚本为需要在其解决方案中实施脚本引擎的开发人员提供了一种快速简便的解决方案。托管脚本带有一个直接的脚本引擎,可以即时编译和实例化脚本,在内存中或本地硬盘驱动器上生成程序集,并允许在运行时动态调用方法和访问属性。 ManagedScripting 在 Windows Vista、XP、Linux、XBox 360 和 Microsoft 的 Zune Player 上运行,脚本使用 Visual Basic 或 C# 作为语言编写,并计划添加对 Ruby、Python 和 JScript 的支持。

我自己并没有深入研究它,但这听起来像是我们想要的。

【讨论】:

  • javascript 方法看起来很不错,但是类型安全的技术问题让它沉没了,所以这是我要尝试的新方法:D
  • 很高兴知道。你有一个定期更新的博客吗?我很乐意密切关注您使用此库的进度。
  • 好吧,我在 martindevans.appspot.com/blog 有一个博客,但我不会完全称它为定期更新。现在看起来真的很糟糕,因为我通常在去大学的火车上写博客文章,所以圣诞节假期与平时相比,条目之间的差距更大!
【解决方案3】:

我想指向this related SO question,添加 Javascript 作为选项。对某些人来说,Javascript 会比 Lua 更熟悉。

【讨论】:

  • 其实这点很好,我从没想过
  • 这是我们要走的路。感谢您的帮助:D
  • 那太好了。我的荣幸!
【解决方案4】:

您可能想查看 VSTA,它提供 C# 或 VB.Net。我不知道运行时编译。

【讨论】:

猜你喜欢
  • 2010-12-03
  • 2011-03-10
  • 2016-04-15
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2010-10-22
  • 2010-12-02
  • 1970-01-01
相关资源
最近更新 更多