我应该支持哪种游戏内脚本语言呢?

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

如果我要实现游戏内的脚本功能,应该支持哪种语言?

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

列出了可能性的优缺点是什么?需要多长时间才能实现解释器?

游戏脚本器正在寻找哪些功能? 其他游戏正在实施什么?

我想投票支持 javascript,因为每个人都可以阅读和编写它。

你有什么想法?

原文链接 https://stackoverflow.com/questions/1431468

点赞
stackoverflow用户173347
stackoverflow用户173347

我更偏爱Python,因为它可以在许多语言中绑定。

2009-09-16 07:22:12
stackoverflow用户31610
stackoverflow用户31610

我认为你是想说 "集成" 解释器,而不是 "实现" 它。根据你的能力,创建一个脚本语言的解释器可能需要很长时间。

2009-09-16 07:26:20
stackoverflow用户149530
stackoverflow用户149530

我会使用 Lua,因为它非常容易嵌入。嵌入 Python 看起来很复杂,我没有真正追求过。

如果想要了解更多关于嵌入 Lua 以及其优缺点,可以参考这个链接

2009-09-16 07:31:03
stackoverflow用户27928
stackoverflow用户27928

我确信 Python 和 Lua 都有 .NET 和 Java 的绑定——你可以嵌入解释器。不知道是否有 Javascript 和 Flash 的绑定。

Python 的问题在于有三个变种,都是由不同的人开发的。

  • 用于 .NET 的 IronPython
  • 用于 Java 的 Jython
  • 普通的 CPython

我没用过 Jython,所以不会评论它。但是,在 IronPython 和 CPython 之间存在某些可移植性问题。例如:IronPython 不支持本地 C 扩展。如果有使用这些的 CPython 脚本,将很难将它们移植到 IronPython。同样,如果 IronPython 脚本使用任何 .NET 库,将很难将它们移植到 CPython。

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

2009-09-16 07:40:11
stackoverflow用户34088
stackoverflow用户34088

这取决于你的代码有多复杂(NPC行为有多复杂)。Tcl、Lua和JavaScript适用于简单的任务。在这些语言中快速编写大段代码往往会变得难以维护(特别是对于休闲用户)。

Squirrel使用类C语法,大多数人都会感到舒适,但是关于工具支持呢?如果你必须用记事本写一切,那也会严重限制你。

Python是一种成熟的语言,易于学习(只需将Lua的“教程”与Python自带的教程进行比较即可)。虽然各种Python版本可能会令人望而生畏(参见Rohit的回答),但游戏中的Python代码将对所有版本保持一致。它带有集成开发环境(IDLE),还有其他支持Python的IDE,可以提供代码完成、调试、运行测试用例等功能。

2009-09-16 08:01:34
stackoverflow用户6236
stackoverflow用户6236

使用 Lua。它是一种美丽的语言,被广泛应用于游戏行业

大多数平台都有 Lua 绑定:

也有 llvm-lua 项目,可能有助于将 Lua 移植到其他平台。

至于 JavaScript 作为主机平台……这个主题经常出现在 Lua 邮件列表 中,但还没有发表过严肃的解决方案。如果你真的需要将 Lua 托管在 JS 中,请在 Lua 邮件列表中询问,也许有些人可以分享他们在此方面的经验。

2009-09-16 08:30:15
stackoverflow用户15401
stackoverflow用户15401

如果你想使用 Python,请考虑使用 Stackless,因为它在线程方面比标准的 CPython 更好。它被一些 MMORPG 游戏使用(如 EVE Online),因此在游戏方面具有一定的记录。此外,它非常适合使用 continuations(这也是它最初开发的一部分),这是一种在游戏中使用的“仿真”类型逻辑的相当不错的模型。

2009-09-16 12:32:50