Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为游戏引擎制作API或脚本语言?_Java_Customization_Game Engine - Fatal编程技术网

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

Java 为游戏引擎制作API或脚本语言?,java,customization,game-engine,Java,Customization,Game Engine,我目前正在用java和game编写一个非常简单的2.5D游戏引擎。这基本上只是一个有趣的项目,我正在进行,所以实现功能所需的时间是没有问题的,因为我可以随时把它放在一边进行工作。话虽如此,我正计划实现一种定制的脚本系统。基本上,引擎是2.5D游戏的外壳,可以通过简单的脚本进行修改和扩展。到目前为止,我对如何进行这项工作有以下想法,但我不确定什么是可行的或不可行的 编写一个非常简单的脚本语言和一个简单的解析器,检查并运行文件夹中的脚本 制作一个java库/API,允许您通过简单的旧java修改客户

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

  • 编写一个非常简单的脚本语言和一个简单的解析器,检查并运行文件夹中的脚本
  • 制作一个java库/API,允许您通过简单的旧java修改客户端和服务器上的游戏部分
  • 使用已经创建的非常简单的语言,例如lua,用于游戏的可扩展部分

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

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

    创建自己的脚本语言和解析器对每个开发人员都很有吸引力。这是一次很好的学习经历,但也有缺点。当您开始编写脚本时,结果并不是您期望的结果,您不知道错误是在脚本中还是在解析器中。您将需要来自解析器的一些调试信息,可能是一些stacktrace,甚至一种非常简单的脚本语言也可能开始接管您的项目。当您开始编写脚本时,您可能会感觉到缺少的功能限制了您,这些功能是您从编写java代码开始使用的,并且可能开始扩展脚本语言

    创建自己的语言的一些缺点也适用于allready现有语言。如果你真的需要一个非常自由的方式来扩展你的游戏引擎,你可以选择这条路,但我不推荐它。您仍有可能将重点从游戏引擎转移到脚本实现


    思考这个问题的一种方式也是从mods的作者的角度。他们想用新的脚本语言、现有的脚本语言还是java编写?答案很可能是java,可能不是一种新语言。

    谢谢您的输入。你实际上改变了我对这件事的看法。我在1或2之间徘徊,倾向于写我自己的,但是你提出了一些有效的观点。我完全同意这样一个事实,那就是我觉得自己受到了限制。我觉得我似乎有点胆怯,可以“体面地”尝试一下,但不管它会接管这个项目。java API将允许我用更简单、更熟悉的方式实现更多的自定义功能,这正是我尝试做的全部内容。我很高兴我能提供帮助。祝你的项目好运。