对于我的 WIP 游戏(或者可能是 future 的游戏),我考虑为敌人/NPC AI 添加自定义的、用户编写的脚本。任何知道如何编写脚本的用户都可以这样做,为敌人编写人工智能。我想使用 LUA(或其他脚本,如果更容易的话),但我真的不知道如何才能:
- 在 Java 代码中嵌入 LUA 和其他脚本语言
- 让此脚本控制特定 NPC 或 NPC 类型
- 在脚本语言中具有特殊函数来控制玩家是否靠近 NPC 或类似物体。
Computercraft
mod for Minecraft
是我想要实现的目标(或多或少)的一个很好的例子。
只是不想执行精确的命令(向前走 1 个方 block ,向左走 2 个方 block 等),我想使用 AI 脚本。
你有任何教程、建议或类似的东西吗?
最佳答案
http://sourceforge.net/projects/luaj/
Here's供您阅读的自述文件。
基本上,您希望在代码中的某些点调用 Lua 脚本,该脚本可以执行 AI 计算并将结果返回给 Java 引擎。当然,这一切都取决于您的引擎、它在可能的集成方面的灵 active 等。
编辑:
您需要为这些脚本提供一些上下文,即设置 Lua 环境,以便它了解您的引擎(对象/表、函数)。例如,如果你想让用户移动AI角色,那么你必须在Lua中注册(例如)一个AIEnemy
对象,给它一些方法(move
, shoot
)等。然后,这些方法链接(调用)到 Java 引擎中的等效方法并传递适当的参数。
嵌入 Lua 并让您的应用程序使用它确实很有趣,尽管我从未在 Java (C/C++) 中这样做过。
话虽如此,它需要对集成的设计进行一些认真的思考。尝试非常简单的东西来感受它,即使在游戏开发之外也是如此。一旦获得它,就可以进行更认真的集成。
只是作为旁注。不要让 Lua 的简单性欺骗了您。这是一种非常强大的语言。
关于java - 在java中使用NPC AI的用户脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598200/