使用 Java Scripting API w/ JavaScript 和/或 Lua

Using the Java Scripting API w/ JavaScript and/or Lua

本文关键字:JavaScript Lua Java Scripting API 使用      更新时间:2023-09-26

所以,我刚刚意识到Java有一个内置的API系统,可以与JavaScript和其他兼容JSR-223的脚本语言一起工作。现在,我正在设计一个游戏引擎,我想知道我是否应该只使用集成的JavaScript支持或弄清楚如何使用Lua。

问:Java Scripting API 可以轻松支持 Lua 吗?如果是这样,如何?

如果你喜欢:用 JavaScript 做游戏引擎的脚本端是未知的吗?

编辑:我需要引擎的脚本功能,以允许创建AI,特殊体素(如Minecraft中的块)和游戏的其他附加组件。我并不打算用脚本语言进行所有这些创作,因为这样做很困难,但脚本语言似乎是为所有游戏内容制作 JAR 的好选择。我只是在探索我可以用Java做什么。

Java

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

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

注意:luaj不是lua的完整克隆,但它非常实用,允许您访问java类等。

在选择脚本语言的问题上,由于您使用Java作为系统编程语言,因此使用lua作为脚本语言的一些好处并不适用,例如快速,占用空间小,出色的C集成。

所以这真的变成了个人喜好。Javascript可能没问题,Jypthon,JRuby或luaj也是如此。

在JS中制作游戏引擎不是一个明智的主意。尽管可能(参见 Node.js/Three.js),但 JS 相当慢,因为被解释。Node.js 具有 JIT 编译,但它仍然比等效C++慢 3-4 倍(最佳情况)。

从未使用过Lua或Java脚本API,我不能给你一个答案,但我认为JS的速度会改变你的想法。