使用 Java Scripting API 与 JavaScript 和/或 Lua。

所以,我刚刚意识到 Java 有一个内置的 API 系统,可以与 JavaScript 以及其他符合 JSR-223 标准的脚本语言一起使用。现在,我正在设计一个游戏引擎,我想知道是不是应该只使用集成的 JavaScript 支持,还是要想办法使用 Lua。

问题:Java Scripting API 能否轻松支持 Lua?如果可以,怎么做?

如果你想的话:在 JavaScript 中完成游戏引擎的脚本方面会不会不太确定?

编辑:我需要引擎的脚本功能,以允许创建人工智能、特殊体素(例如 Minecraft 中的方块)和其他游戏附加组件。我并不确定是否要使用脚本语言来完成所有这些内容的创建,因为做到这一点的难度很大,但脚本语言似乎是将游戏内容制作成 JAR 文件的良好替代方案。我只是在探索 Java 能做些什么。

点赞
用户1051677
用户1051677

在 JS 中制作游戏引擎并不是一个明智的想法。尽管可能存在(请查看 Node.js / Three.js),但是由于其解释性质,JS 的速度相当慢。Node.js 具有 JIT 编译,但仍然比等效的 C++ 慢 3 到 4 倍(最佳情况)。

我从未使用过 Lua 或 JavaScript API,我无法回答这个问题,但我认为 JS 的速度会改变你的想法。

2013-09-10 05:18:01
用户2279620
用户2279620

JavaScript 脚本框架依赖于实现 JSR-223 的代码是用 Java 编写的。因此,lua 不适用。

但是,您可以使用在 Java 中编写的 lua 实现,例如 luaj,其中包含 JSR-223 支持。

注意:luaj 不是 lua 的完全克隆,但它非常实用,并允许您访问 Java 类等内容。

关于选择脚本语言,由于您使用 Java 作为系统编程语言,使用 lua 作为脚本语言的一些优点不适用,例如快速、小的占用空间、优秀的 C 集成。

所以真正取决于个人偏好。JavaScript 应该没问题,Jypthon、JRuby 或 luaj 也可以。

2013-09-10 18:05:51