【问题标题】:Using user scripts for NPC AI in java在 java 中使用 NPC AI 的用户脚本
【发布时间】:2014-03-03 02:53:48
【问题描述】:

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

  1. 在 Java 代码中嵌入 LUA 和其他脚本语言
  2. 让此脚本控制特定的 NPC 或 NPC 类型
  3. 在脚本语言中有特殊功能来控制玩家是否靠近 NPC 或类似的东西。

Computercraft Minecraft 的 mod 是我想要实现的目标(或多或少)的一个很好的例子。 只是不想执行确切的命令(向前走 1 块瓷砖,向左走 2 块瓷砖等),我想将脚本用于 AI。 你有任何教程、建议或类似的东西吗?

【问题讨论】:

    标签: java scripting lua artificial-intelligence


    【解决方案1】:

    http://sourceforge.net/projects/luaj/

    Here's 供您阅读的自述文件。

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

    编辑:

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

    嵌入 Lua 并让您的应用程序使用它真的很有趣,尽管我从未在 Java (C/C++) 中做过。

    话虽如此,集成设计需要认真考虑。尝试真正简单的东西来感受它,即使在你的游戏开发之外也是最好的。一旦你得到它,继续进行更认真的整合。

    只是作为旁注。不要让 Lua 的简单性欺骗了你。这是一种非常强大的语言。

    【讨论】:

    • 我是否只需将此 jar 添加到我的 eclipse 项目中然后使用它们,还是必须安装/添加其他东西?
    • 我必须说我不确定你是如何在 Java 中做到这一点的。但据我所知,您不需要其他任何东西。你想要的是熟悉 luaj API 以了解如何在这两个世界之间进行通信。 Here you have 他们的 API 文档。不幸的是,LuaJ 集成的描述不如 C 集成那么好。
    • 好的。我会通读它,如果我理解它并且它有效,我会将您的答案标记为正确。但赞成票是你的:P 非常感谢你的建议和教程!
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多