我目前正在java和游戏中编写一个非常简单的2.5D游戏引擎。这基本上只是我正在进行的一个有趣的项目,所以实现功能所需的时间是没有问题的,因为我可以随时把它放在一边并随时处理它。话虽如此,我计划实现一种自定义脚本系统。基本上,引擎将是2.5D游戏的外壳,可以通过简单的脚本进行修改和扩展。到目前为止,我对如何解决这个问题有如下看法,但我不确定什么是实用的。
我真的认为选项1是我想做的事情,但我从来没有真正做过这样的事情,我想知道是否有人可以推荐我应该做的事情。如果我选择编写一种简单的语言,我只是在寻找关于这些主题的一些材料或文档,我只想看看人们如何编写基本的编译器/解释器?
答案 0 :(得分:1)
简短的回答是2,请使用API。这是向游戏引擎添加或更改功能的最简单方法。
创建自己的脚本语言和解析器对每个开发人员都很有吸引力。这是一次很棒的学习经历,但这也是一个缺点。当您开始编写脚本并且结果不是您所期望的时,您不知道该错误是在您的脚本中还是在解析器中。您将需要来自解析器的一些调试信息,可能是一些堆栈跟踪,即使是非常简单的脚本语言也可能开始接管您的项目。当您开始编写脚本时,您可能会感到受到缺少的功能的限制,您习惯于编写Java代码并且可能开始扩展脚本语言。
创建自己语言的一些缺点也适用于所有现有语言。如果你真的需要一种非常自由的方式来扩展你的游戏引擎,你可以选择那条路,但我不推荐它。您仍然有可能将重点从游戏引擎转移到脚本实现。
考虑它的一种方式也来自mods观点的作者。他们想要用新的脚本语言,现有的脚本语言还是用java编写?答案很可能是java,可能不是一种新语言。