问题 C#脚本语言


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

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

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

12510
2017-12-02 11:18


起源

实际上,Reflection.Emit不允许你这样做 编 C#代码。你在谈论CodeDOM吗? - Romain Verdier
我觉得这样。 codeDom是否在紧凑的框架上可用? - Martin


答案:


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

来自网站:

托管脚本引擎

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

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


5
2017-12-20 16:16



javascript方法看起来很神,但是类型安全的技术问题使它陷入困境,所以这是我要尝试的新方法:D - Martin
很高兴知道。你有一个博客,你经常更新或什么?我很想在这个库中保留一个标签。 - Dan7
好吧,我在martindevans.appspot.com/blog上有一个博客,但我不会定期更新它。目前看起来非常糟糕,因为我通常在通勤到大学的火车上写博客帖子,所以圣诞节假期在参赛作品之间留下了比平时更大的差距! - Martin


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

另外看看这些网站:

  1. C ++ 
  2. C#

6
2017-12-02 11:27



是的,但LUA有一个纯粹的C#解释器吗?不是我所知道的:( - Martin
gamedev.net/reference/articles/article2275.asp - Carra
哦,看起来很积极,你能把它编辑成答案,这样我可以投票给你吗? - Martin


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


2
2017-12-03 08:43



实际上这是一个非常好的观点,我从未考虑过这一点 - Martin
这是我们要走的路。谢谢你的帮助:D - Martin
那太好了。我的荣幸! - Peter Lillevold


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


0
2017-12-03 09:11



VSTA是什么?请提供一些链接或更多背景信息。此外,它是否适用于Xbox? - Peter Lillevold
mmk prolly意味着Visual Studio Tools for Applications(en.wikipedia.org/wiki/Visual_Studio_Tools_for_Applications) - Zano
来吧。谷歌 - > VSTA。需要2秒 - tjmoore