深入分析规则引擎.docVIP

  • 3
  • 0
  • 约1.2万字
  • 约 9页
  • 2019-05-06 发布于江西
  • 举报
深入分析规则引擎 撰写本文目的是将规则引擎的标准整理成大家都可以用来做实际参考的东西。其实这并不是目前我做的游戏引擎,这几乎跟我的引擎完全不沾边,因为这些只是方法,思想,还有经验。我只是想让大家知道规则引擎的水深,还想让大家了解一些制作核心规则的思想。让大家了解什么是规则和科学的制作方法。 我先说说我的引擎观,明确以下几个问题。 为什么要将游戏规则和图形引擎分开? 分开是因为可以比较直观的对游戏做总体分析,很多问题会迎刃而解。但是系统分析仅仅是明确引擎要达到的目标,并不是实际作战。其实实战和系统分析是不同的,是完全的两码事。将游戏规则和图形引擎分开只是理念上的,并不是实际的。在实际的游戏引擎中,图形和规则的关系非常密切,这两者一般是分不开的。如果你在实战中将规则和图形分开了的话。图形就像礼品包,规则就像礼品,礼品不变而礼品包则可以自由的更换,那么我要恭喜你!你发明了一套前所未有的游戏开发标准,以后你做游戏就可以像做软件工程一样,可以用低成本的组装来完成一部新引擎。 规则和3D引擎在实战中因为两者非常紧密。建议不要去尝试分开来做游戏。如果你真的想像礼品包一样去完成游戏,游戏可能会成功,但礼品包最后肯定会失败。因为这个世界的每个规则都会和另一个规则发生发射作用,当这个规则变化了,那么另一个规则必然也会变,这是必然的。每个图形引擎都有一套使用规则,程序也是规则,规则引擎也是规则,当这些规则多了以后,就不要去弄礼品包了,这样你会多走n个月的弯路,并且最后这也不会变成礼品包。 游戏规则和核心规则有什么分别? 核心规则是构建游戏规则时的一套游戏规则的构建规则。当图形引擎的制作已经成型以后,这时候就是在当前引擎的基础上来实现游戏规则,游戏规则既游戏本身。而核心规则应该是制作游戏规则时的一套标准。以前我看见有人将核心规则比喻成类,其实这很不恰当,类是OOP/OOD中的方法,类是实现的方法,核心规则是实现游戏规则的标准。 每部游戏都有一套自己的核心规则,或多或少,要看游戏的规模而定。核心规则是面向Designer的,而游戏规则是面向具体玩家的。游戏规则总是是在核心规则的基础上定牢的,同时游戏规则的实现也是非常讲究科学的,涉及到心理、社会、人文、数学等等,等等,涉及到很多个专业领域,这些制作在国外大多都是由专业Designer亲自动手,这些Designer是非常利害的,大多是30多岁的老小伙,知识面非常渊博。而国内大多是由Programer代替实现。总而言之游戏规则的制作不是由Programer按照自己的思想来做,而是按Deisnger的思想来。这里是Programer和Designer的基本分界。 那么核心规则是什么呢?核心规则是一系列实现游戏规则的标准。核心规则的制作总是是按Programer的思想来的,核心规则不能像游戏规则那样是固定的,核心规则应该讲究灵活变化,这样能更有效的让Designer去表达思想。 核心规则和游戏规则的分别在于,核心规则讲究变化,面向Designer的需要,游戏规则讲究表现,面向最终的玩家。两者的区别是以专业领域来划分。举个例子,在实战时,我们做的一个人物开始施法,这时会涉及到技能系统和粒子系统,如果说更细一些,会涉及到技能系统的触发方式,比如点对点,点对面,或则点对目标,这一套触发标准就是核心规则了。而法术施展成功以后,一些数值计算,状态反映之类这些是游戏规则。我在后文会详细描述制作整个过程的制作和逻辑流程。 这里有一个值得说明的地方。因为核心规则是游戏规则的制作标准,所以在制作核心规则时仍然会涉及到一些Designer那边的东西。核心规则部分经常因为某些地方影响游戏规则老是发生碰撞,非常麻烦。后来我干脆将核心规则做成一种通用的标准,这就我现在所说得核心规则了,核心规则主要突出两点:自由,灵活。这样既避免很多专业摩擦,也让Designer大大的增加了自由,给游戏规则的制作过程省下了很多浪费。 以上两点是我制作规则引擎时的一些感想。 现在开始说说核心规则的结构和制作方法。 第一步,开始制作核心规则 开始制作核心规则时应先确保图形以及世界引擎部分已经完成了。至少要满足以下条件才算完成:有一个世界编辑器,并且可以驱动世界编辑器数据,有一套将模型读取到世界引擎的标准,有一套标准的粒子系统的编辑器,确保已经在世界引擎中实现了最基本的寻路和碰撞检测,确保已经实现了GUI引擎。 当以上条件都满足以后,那么就可以动手开始制作核心规则了。 第二步,剧情系统(QA) 这一步是可以选择的,某些游戏是没有剧情的,如果你不需要制作QA,可以跳过这一步。 因为QA部分很独立,一般都是将它作为基础提前做完,然后才进入正题。 制作QA系统最麻烦的地方是QA系统的设计环境,一问一答的交互,涉及到脚本触发,逻辑跳转,逻辑展开,等等。

文档评论(0)

1亿VIP精品文档

相关文档