C#脚本语言

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

我想提供一种脚本语言来修改我为XNA构建的游戏。 如果我将这些游戏用于PC,那么我就可以使用C#文件,在运行时编译(使用reflection.emit )作为脚本,这很好 – 一个很简单的方法来修改游戏。 但是,.net紧凑框架(这是xbox提供的)不支持reflection.emit,那么如何编写一个考虑到这一点的脚本语言呢?

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

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

来自网站:

托管脚本引擎

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

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

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

另外看看这些网站:

  1. C ++
  2. C#

我想指出这个相关的SO问题 ,添加Javascript作为选项。 对某些人来说,Javascript会比Lua更熟悉。

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