我听说过数据驱动设计,并已经研究了一段时间。因此,我阅读了几篇文章来了解相关概念。
其中一篇文章是由Kyle Wilson撰写的《数据驱动设计》。他描述说,应用程序代码(即控制资源如内存、网络等的代码)和游戏逻辑代码应该分离,而游戏逻辑代码应该由外部数据源驱动。在这一点上,我可以想象开发人员会编写某种游戏编辑器,接受关于游戏对象的外部数据(例如角色信息、武器信息、地图信息等)。场景设计将由程序员编写的自定义语言/工具脚本进行,以让游戏设计师创建游戏对象之间的交互。游戏设计师将使用现有/自定义脚本语言编写游戏脚本,或使用拖放工具创建游戏世界。我所能想到的工具方法的例子是World Editor,它通常与Bliizard的游戏一起打包。
然而,另一篇文章反对使用数据驱动设计《反对数据驱动设计》。作者建议不要让游戏设计受数据驱动,因为这会花费更多时间来开发游戏,因为游戏设计师有编程的负担。相反,将会有一个游戏程序员自由地从草图设计中编写游戏,并在游戏编程完成后由游戏设计师进行验证。他将其称之为程序员驱动。我认为这种方法与我以前使用的方式类似:游戏逻辑是应用程序本身,而不是上述想法,应用程序是游戏编辑器,实际游戏是基于该工具进行设计。
在我看来,第一种方法似乎更合理,因为游戏组件可以被多个项目重复使用。而第二种方法反对数据驱动设计,游戏代码仅属于该游戏。这就是为什么我认为《魔兽争霸》中有如此多的游戏类型,例如原始的《魔兽争霸》和各种自定义地图,以及其中最著名的DOTA,它实际上定义了一个新的游戏类型。因此,我听说人们称世界编辑器是游戏引擎。这是一个游戏引擎应该具备的特点吗?
所以,经过这一切,我只想验证一下,我对这些思想(数据驱动、程序员驱动、脚本等)的理解是否存在任何缺陷?