首先,我知道有很多与此相关的问题,但似乎没有一个对我的具体情况有帮助。特别是,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 对我来说远非完美的解决方案。
最佳答案
关于performance - 有没有快速、易于嵌入且非常适合高级游戏编程的脚本语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365825/