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

时间:2014-02-06 09:02:57

标签: java scripting lua artificial-intelligence

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

  1. 在java代码中嵌入LUA和其他脚本语言
  2. 让此脚本控制特定的NPC或NPC类型
  3. 在脚本语言中有特殊功能来控制玩家是否接近NPC或类似的东西。
  4. Computercraft mod Minecraft是我想要达到的目标(或多或少)的一个很好的例子。 而不是执行确切的命令(前面的1瓦片去左边2个瓷砖等)我想使用AI的脚本。 你有任何教程,建议或类似的东西吗?

1 个答案:

答案 0 :(得分:2)

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

Here's自述文件。

基本上你想要在你的代码中的某些点调用Lua脚本,这些脚本可以执行AI计算并将结果吐出回Java引擎。当然,这完全取决于您的引擎,在可能的集成方面的灵活性等等。

修改

您需要为这些脚本提供一些上下文,即设置Lua环境,以便它能够识别您的引擎(对象/表,函数)。例如,如果要启用用户移动AI字符,则必须在Lua中注册(例如)AIEnemy对象,为其提供一些方法(moveshoot)然后,这些方法将(调用)链接到Java引擎中的等效方法并传递适当的参数。

嵌入Lua并让你的应用程序使用它真的很有趣,虽然我从来没有用Java(C / C ++)完成它。

话虽如此,但需要认真考虑整合的设计。尝试使用非常简单的东西来获得它的感觉,即使在游戏开发之外也是如此。一旦得到它,就可以进行更严肃的整合。

正如旁注。不要让Lua简单愚弄你。这是一种非常强大的语言。