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