java - 为游戏引擎制作 API 或脚本语言?

标签 java customization game-engine

我目前正在用java和游戏编写一个非常简单的2.5D游戏引擎。这基本上只是我正在从事的一个有趣的项目,因此实现功能所需的时间没有问题,因为我可以随时将其放在一边并继续工作。话虽如此,我正计划实现一种自定义的脚本系统。基本上,引擎是 2.5D 游戏的外壳,可以通过简单的脚本对其进行修改和扩展。到目前为止,我对如何实现这一点有以下想法,但我不确定什么实用或不实用。

  1. 编写一种非常简单的脚本语言和一个简单的解析器,用于检查脚本文件夹并运行它们。
  2. 创建一个 java 库/API,允许您通过普通的旧 java 修改客户端和服务器上的游戏部分
  3. 使用已经创建的非常简单的语言(例如 lua)来实现游戏的可扩展部分

我真的认为选项 1 是我想做的,但是我从来没有真正做过这样的事情,我想知道是否有人可以推荐我应该在这里做什么。如果我确实要编写一种简单的语言,我只是在寻找有关此类主题的一些 Material 或文档,我会只看看人们如何编写基本的编译器/解释器吗?

最佳答案

简短的答案是 2,使用 API。这是向游戏引擎添加或更改功能的最简单方法。

创建自己的脚本语言和解析器对于每个开发人员来说都很诱人。这是一次很棒的学习经历,但也有一个缺点。当您开始编写脚本并且结果不是您所期望的时,您不知道错误是在您的脚本中还是在解析器中。您将需要来自解析器的一些调试信息,也许是一些堆栈跟踪,即使是非常简单的脚本语言也可能开始接管您的项目。当您开始编写脚本时,您可能会感到缺少功能的限制,这些功能是您在编写 Java 代码时所习惯的,并且可能开始扩展脚本语言。

创建自己的语言的一些缺点对于所有现有的语言也是如此。如果你确实需要一种非常自由的方式来扩展你的游戏引擎,你可以选择这条路,但我不会推荐它。您仍然需要冒险将注意力从游戏引擎转移到脚本实现。

一种思考方式也是从模组作者的角度出发。他们想要使用新的脚本语言、现有的脚本语言还是 Java 进行编写?答案很可能是 java,而且可能不是一种新语言。

关于java - 为游戏引擎制作 API 或脚本语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771192/

相关文章:

graphics - DXGI_FORMAT 的确切颜色空间是什么?

c++ - 如何使用 LuaBridge 注册模板函数?

java - @SuppressWarnings ("hiding") 在 eclipse 中的目的是什么?

Java,do while循环运行两次,然后再次请求输入

ruby - 如何为字母、元音和辅音等德语字符类编写正则表达式?

每个单元格具有自定义工具提示的数据表

android - Applozic Android 自定义 UI 最新消息列表抛出 ArrayIndexOutOfBoundsException

c++ - 适合屏幕的静态数组

java - 如何为多个项目创建 Gradle sharedManifest?

java - Web应用程序中的并发控制