performance - 有没有快速、易于嵌入且非常适合高级游戏编程的脚本语言?

标签 performance scripting scripting-language

首先,我知道有很多与此相关的问题,但似乎没有一个对我的具体情况有帮助。特别是,lua 和 python 并不像我希望的那样满足我的需求。可能不存在符合我要求的语言,但在得出该结论之前,多听一些意见会很高兴。 :)

您可能已经猜到了,我需要这样一种语言来用于我正在尝试创建的游戏引擎。这个游戏引擎的目的是为用户提供构建游戏的基本工具,同时仍然让她可以自由地创建许多不同类型的游戏。

因此,脚本语言应该能够直观地处理游戏概念。除此之外,应该很容易定义各种类型,使用稍微不同的属性对它们进行子类型化,动态查询和修改对象,等等。

此外,游戏开发人员应该可以处理他们在脚本语言中遇到的每一种情况。虽然渲染器和网络等基本组件将在 C++ 中实现,但特定于游戏的机制(例如围绕行星旋转数百个对象)将在脚本语言中处理。这意味着脚本语言必须非常快,1/10 C 的速度可能是最低的。

然后是调试的问题。有关发生错误的函数、堆栈跟踪和变量状态的信息应该是可访问的。

最后但并非最不重要的是,这是一个由一个人完成的项目。即使我愿意,我也没有足够的资源在胶水代码上花费数周时间。将语言与我的项目集成应该不会比集成 lua 难多少。

检查两种建议的语言,lua 和 python,lua 速度快(luajit)并且易于集成,但它的标准调试工具似乎缺乏。更糟糕的是,lua 默认情况下根本没有类型系统。当然,您可以自己实现,但语法总是很奇怪且不直观。

另一方面,Python 使用起来非常舒适,并且具有基本的类系统。然而,它并没有那么容易集成,它的范式并不真正涉及类型检查,而且对于更复杂的游戏来说它绝对不够快。我想再次指出,一切都将在 python 中完成。我很清楚,对于 90% 的代码来说,python 可能足够快。

还有 Scala,到目前为止我还没有看到建议。 Scala 似乎实际上满足了大部分要求,但是用 C 嵌入 Java VM 似乎并不容易,而且 Java 通常似乎希望您围绕 Java 构建应用程序,而不是相反。我也不确定 Scala 的函数范式是否有利于直观的游戏开发。

编辑:请注意,这个问题与不惜一切代价寻找解决方案无关。如果没有比 lua 更好的语言,我会简单地妥协并使用它(我实际上已经将这个东西链接到我的程序中)。我只是想确保在这样做之前我不会错过更合适的东西,因为 lua 对我来说远非完美的解决方案。

最佳答案

你可以考虑 mono .我只知道这种方法的一个成功案例,但它是一个很大的成功案例:带有单声道脚本的 C++ 引擎是 Unity 中采用的方法。 .

关于performance - 有没有快速、易于嵌入且非常适合高级游戏编程的脚本语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365825/

相关文章:

perl - 在perl中对数组进行排序并在一行中返回结果

java - 如何使用 scala 作为脚本语言设置 jsr223 脚本

bash - 运行 shell 脚本时如何解决 "shift: can' t shift the many"错误?

php - 为什么 PHPUnit 测试在机器与互联网断开连接时运行得更快?

java - 创建新的自定义对象与在 Java 中将同一对象的多个值设置为 Null

excel - 使用 SAP GUI 脚本处理 SAP GUI 中的错误

powershell - 如何比较文件夹是否存在,如果不存在则创建她

c++ - getter 的成本是零吗?

c - 一种用 C 语言实现非常高效(快速)网络轮询的方法

c# - 在 C# 中集成 Powershell