C#脚本语言

11

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

我想为我在XNA上构建的游戏提供一种脚本语言,以进行修改。如果我将这些游戏部署到PC上,那么我就可以使用C#文件作为脚本,在运行时进行编译(使用reflection.emit),然后就可以对游戏进行修改了。然而,.net紧凑框架(Xbox所提供的)不支持reflection.emit,那么我该如何编写脚本语言呢?

  1. 是否已经有项目在做这方面的工作?
  2. 有没有好的资源可以开始我的项目?
  3. 选择哪种语言最好?由于这是用于游戏脚本,因此它可以是相当小的语言,只要它相当高效并且易于实现解释器就可以了。

2
实际上,Reflection.Emit 不允许您编译 C# 代码。您是在谈论 CodeDOM 吗? - Romain Verdier
似乎是这样。CodeDom在紧凑框架上可用吗? - Martin
4个回答

6

Lua 经常用于游戏脚本编写。例如,《魔兽世界》为所有的模组制作者提供了这个选项。

同时,您也可以查看以下网站:

  1. C++
  2. C#

1
是的,但是是否有一个纯C#解释器用于LUA?据我所知没有 :( - Martin
哦,看起来很不错,你能把它编辑到答案里让我点赞吗? - Martin

5
我知道这是一个旧问题,但我以前有类似的要求,我发现托管脚本。看起来它最初是为解决XNA游戏中脚本编写问题而开发的,所以这更好。
从网站上了解到:

托管脚本引擎

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

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

JavaScript 的方法看起来不错,但类型安全方面存在技术问题,因此我将尝试这种新的方法 :D - Martin
很高兴知道这个消息。你有定期更新的博客或其他东西吗?我很想关注你在这个库方面的进展。 - Dan7
我有一个博客,位于martindevans.appspot.com/blog,但我不会说它经常更新。目前看起来非常糟糕,因为我通常在通勤去大学的火车上写博客文章,所以圣诞假期留下了比平时更长的空白时间! - Martin

2

我想要指向这个相关的SO问题,并提供Javascript作为一个选项。对于一些人来说,Javascript比Lua更加熟悉。


那实际上是一个很好的观点,我从未考虑过。 - Martin
这是我们要走的道路。感谢您的帮助:D - Martin

0

你可能想要了解一下VSTA,它提供了C#或VB.Net。我不知道关于运行时编译的情况。


1
VSTA是什么?请提供一些链接或更多的上下文。此外,它能在Xbox上运行吗? - Peter Lillevold
mmk 可能指的是 Visual Studio Tools for Applications(http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Applications)。 - Zano
2
加油。Google -> VSTA。只需2秒钟。 - tjmoore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接