在java中为NPC AI使用用户脚本

在java中为NPC AI使用用户脚本,java,scripting,lua,artificial-intelligence,Java,Scripting,Lua,Artificial Intelligence,对于我的WIP游戏(或者未来的游戏),我考虑为enemie/NPC AI添加自定义的、用户编写的脚本。任何知道如何编写脚本的用户都可以为敌人编写AIs。我想使用LUA(或者其他更简单的脚本),但我真的不知道如何: 在java代码中嵌入LUA和其他脚本语言 让此脚本控制特定的NPC或NPC类型 在脚本语言中有特殊的功能来控制玩家是否靠近NPC或类似的东西 Computercraftmod forMinecraft是我想要实现的一个很好的例子(或多或少)。 我不想执行精确的命令(向前走1个平铺,向左

对于我的WIP游戏(或者未来的游戏),我考虑为enemie/NPC AI添加自定义的、用户编写的脚本。任何知道如何编写脚本的用户都可以为敌人编写AIs。我想使用LUA(或者其他更简单的脚本),但我真的不知道如何:

  • 在java代码中嵌入LUA和其他脚本语言
  • 让此脚本控制特定的NPC或NPC类型
  • 在脚本语言中有特殊的功能来控制玩家是否靠近NPC或类似的东西
  • Computercraft
    mod for
    Minecraft
    是我想要实现的一个很好的例子(或多或少)。 我不想执行精确的命令(向前走1个平铺,向左走2个平铺等),而是想使用AI脚本。 你有任何指导、建议或类似的东西吗?

    供您阅读的自述

    基本上,在代码中的某些点上,您需要调用Lua脚本,该脚本可以执行AI计算,并将结果吐回Java引擎。当然,这一切都取决于您的引擎,它在可能的集成方面有多灵活,等等

    编辑:

    您需要为这些脚本提供一些上下文,即设置Lua环境,以便它了解您的引擎(对象/表、函数)。例如,如果您想使用户能够移动AI角色,那么您必须在Lua中注册(例如)一个
    aideny
    对象,给它一些方法(
    move
    shot
    ),等等。这些方法然后链接(调用)到Java引擎中的等效方法,并传递适当的参数

    嵌入Lua并让你的应用程序使用它是一件非常有趣的事情,尽管我从未用Java(C/C++)做过

    话虽如此,它需要对集成的设计进行认真的思考。尝试一些非常简单的东西来感受它,最好是在游戏开发之外。一旦您得到了它,就可以继续进行更认真的集成


    作为旁注。别让鲁阿的简单愚弄了你。这是一种非常强大的语言。

    我是必须将这个JAR添加到我的eclipse项目中,然后使用它们,还是必须安装/添加其他东西?我必须说,我不确定您在Java中是如何做到的。但据我所知,你不需要其他任何东西。您想要的是熟悉luaj API,了解如何在这两个世界之间进行通信。他们的API的文档。不幸的是,LuaJ集成并不像C集成那样被很好地描述。我会通读一遍,如果我理解了它并且它有效,我会把你的答案标记为正确。但是投票权属于你:P非常感谢你的建议和教程!