游戏引擎——我应该添加一个依赖.NET的脚本吗



我正在开发一款第一人称射击游戏,作为一个有趣的附带项目,并开始考虑营销游戏,并添加对修改的脚本支持。我想知道我是否应该使用像LUA、Javascript或Python这样的传统脚本语言,或者我是否应该改用C#/.NET。众所周知,C#是一种"更快"的语言,因为它是经过编译的,而上面提到的语言不是。(我也可以添加对Java等其他框架的依赖)。该游戏是为Windows编写的,我想知道期望最终用户安装.NET框架是否"太过分",或者这是否是一个合理的要求。

我想补充一点,编译C#代码可以使用Microsoft.CSharp.SharpCodeProvider接口在游戏中完成(就像LUA、Python和JavaScript一样)。

如果您想使用.NET,可以放心地假设最终用户已经安装了相当新的版本。Windows Vista附带了.NET 3.0;Windows 7附带了.NET 3.5。当然,最近有很多流行的游戏(Magicka、Terraria、Bastion等)都是完全用.NET编写的,所以游戏社区已经证明,他们并不特别反对安装/使用它。将它添加到游戏的安装程序中应该相当不引人注目。

请记住,这是将你与Windows平台联系在一起的另一件事,因此,如果你决定在未来将游戏移植到其他操作系统,你将不得不想出一个替代品(或者看看Mono是否足以满足你的需求)。

这确实取决于您的具体情况,但期望用户安装.NET(至少是.NET 2.0)绝对不过分。大多数XP用户已经安装了.NET,因为他们可能需要它来做其他事情,或者它是由Windows Update自动安装的。默认情况下,Windows7有.NET。

我是IronPython的忠实粉丝,并在我所有的脚本驱动项目中使用它。首先是因为我喜欢这种语言(用于脚本编写,而不是应用程序开发),其次是因为使用IronPython,您可以直接访问和使用.NET对象,而不需要任何奇怪的语法(不像Lua for.NET需要混合语法)。嵌入应用程序也非常简单。

相关内容

最新更新