我应该支持哪种ingame脚本语言?

时间:2009-09-16 07:20:24

标签: javascript lua tcl interpreter scripting-language

  

游戏脚本将控制NPC / AI逻辑。

如果我要实现ingame脚本功能,它应支持哪种语言?

请记住,我的实现将在多个平台上运行,如.net,f​​lash,javascript和java。

列出的可能性有哪些优点和内容?实施翻译需要多长时间?

游戏脚本编写者需要哪些功能? 其他游戏实施的是什么?

我正在考虑投票支持javascript,因为每个人都可以读写它。

你有什么想法?

7 个答案:

答案 0 :(得分:5)

我会使用Lua,因为它非常容易嵌入。嵌入Python似乎很复杂,我并没有真正追求它。

如果您想了解有关嵌入Lua及其优点/缺点的更多信息,可以使用此link

答案 1 :(得分:5)

使用Lua。 It is a beautiful language, widely adopted in game industry

大多数平台都有Lua绑定:

还有llvm-lua project,这可能有助于将Lua移植到其他平台。

至于JavaScript作为主机平台......这个主题反复出现在Lua mailing list中,但尚未发布严肃的解决方案。如果你真的需要在JS中托管Lua,请在Lua邮件列表中询问,也许有些人可以分享他们在这个主题上的经验。

答案 2 :(得分:3)

我更喜欢Python用于多种语言的绑定。

答案 3 :(得分:0)

我认为你的意思是“整合”解释器,而不是“实现”它。根据您的技能,为脚本语言创建解释器可能需要花费大量时间。

答案 4 :(得分:0)

我确信Python和Lua具有.NET和Java的绑定 - 您可以嵌入解释器。不知道Javascript和Flash是否有任何绑定。

Python的问题在于,有三种变体都是由不同的人制作的。

  • IronPython for .NET
  • Jython for Java
  • 和常规CPython

我没有参与过Jython,所以我不会评论它。但IronPython和CPython之间存在某些可移植性问题。例如:IronPython不支持本机C扩展。如果有用CPython编写的脚本使用这些脚本,那么将很难将它们移植到IronPython。此外,如果IronPython脚本使用任何.NET库,您将很难将它们移植到CPython。

另一方面,Lua的实现来自一个地方,我不期望这样的问题。

答案 5 :(得分:0)

这取决于你的代码有多复杂(NPC的行为会变得多么复杂)。 Tcl,Lua和JavaScript用于简单的任务。用这些语言编写大量代码很快就会变得无法维护(特别是对于临时用户)。

Squirrel使用类似C语法的语法,大多数人会对此感到满意,但工具支持如何?如果你必须用记事本写一切,那也会严重限制你。

Python是一种易于学习的成熟语言(只需将Lua“教程”与Python附带的教程进行比较)。虽然各种Python版本可能看起来令人生畏(参见Rohit's answer),但游戏中的Python代码对于所有这些代码都是相同的。它附带一个IDE(IDLE),还有其他支持Python的IDE,可以为您提供代码完成,调试,运行测试用例等。

答案 6 :(得分:0)

如果你想使用Python,可以考虑使用Stackless,因为它比线程CPython更好。它被用于一些MMORPG(EVE Online,IIRC),所以它在游戏中有一些记录。此外,它非常适合延续(部分原因是它首先开发),这是一个非常适合游戏中使用的“模拟”类型逻辑的模型。