在我还是四岁的时候,就由于家庭环境的原因开始接触电脑,因此也有幸体验过很多处于启蒙时期的游戏。或许由于当时过于简单的游戏画面与本身极为浓厚的原创欲望,我逐渐将自己对于游戏的喜爱转变到了游戏的制作层面上来。我想很多人在看到一款游戏的系统与画面时或多或少都会对这种模式形成的原理与底层逻辑有一定的好奇心,而这种好奇配合上一定的创作欲望最终就形成了制作游戏所必必须的动力。不过在现在这个连钢铁煤炭产业都开始进军游戏领域的年代,大部分人对游戏的认知就是一株不可限量的摇钱树,于是想方设法地拼命想挤进这样一个时代的行列中来,由此也衍生了一些不良的怪像。
不久前,一个朋友在网上告诉我他最近发布了一个游戏程序招聘,一个只学了1个月程序的无业者跑来应聘。而曾经和我在同一家游戏公司共事的游戏策划近期也跟我抱怨道:“现在的应届生都太不了解游戏项目的盈利模式,都是只会拿着优秀游戏性这种理想来面试。”这些现象正是促使我转行的主要原因。纵然他对于中国的中小型游戏企业有着一定的合理性,但是我依然认为以这样的想法与行为走上游戏开发的道路都不是真正的游戏人。在我看来,每个游戏设计师都应该是处于某个游戏领域的先锋者。但是仅仅是如此,你也只是一个骨灰级玩家,更关键的部分在于是你是否对游戏有更加深入的理解与设计构想。如果你都有,那么接下来就要学会去证明它。具体如何做呢?其实很简单,首先我们要选对称手的武器,其次我们要了解概念方法。
▍武器:游戏编辑器与游戏引擎
对目前游戏制作工具的总结可以简单地归为两类,其一是游戏编辑器,其二是游戏引擎。
游戏编辑器
如果你是一位业余的游戏制作爱好者或刚入门不久的游戏设计师,或许游戏编辑器与游戏引擎的概念很难让你分清他们之间的关系。但是MOD编辑器,你应该就非常熟悉了。MOD全称Modification,是游戏模组的意思。一般来说它是游戏开发商为该款游戏所使用的引擎所设计的游戏内置编辑器,他可以让玩家们通过游戏自带的或者第三方资源导入的方式制作出新的游戏地图,游戏玩法等内容扩展游戏的可玩性。早期的MOD功能可以追溯到坦克大战的自定义地图功能,而将MOD编辑器发展到黄金时代的无疑是Bethesda旗下的传奇RPG游戏《上古卷轴》。
而游戏编辑器就是MOD编辑器的增强版。它和MOD编辑器一样具有着一套官方所预设好的制作方法与游戏素材,但不同的是它并不面向于某款游戏,而是具有自生产的定位,能根据设计者的需求制作出一款独立运作的游戏软件。简单的来说,MOD编辑器是一款游戏的整合资源可视化工具,而游戏编辑器则是游戏引擎的整合资源可视化工具。例如红色警戒的MOD编辑器它只能设计出适合在红色警戒这款游戏的基础上运作的游戏内容,而游戏编辑器则能在该游戏引擎所支持的范围内制作出任何形式的游戏。
比较知名的游戏制作软件RPG MAKER系列,就是一款极为强大的游戏编辑器。它不但具有着简单易懂的图形操作界面与优秀的素材库兼容性,随着多年来的沉淀所演变而来的脚本编辑器,还具有着卓越的游戏扩展潜力。截止到现在,最新版本的RPG MAKER MV从早期的RUBY语言升级到直接兼容现在比较主流的Javascript语言。虽然名字上依然是RPG MAKER,但它所能MAKER的游戏性质早就远远超越了RPG的范畴。
游戏引擎
不过不管游戏编辑器如何强大,他们的扩展性始终局限在脚本解释层面的设计上。游戏可以运用哪些控件,功能实现方法都已经被事先写死了。所有的模块必须遵循一种核心构架进行运作,设计师无法更进一步的改进与优化游戏内容,于是这时候你就需要一个基于底层编译的游戏开发工具游戏引擎。为了更清楚的认识到两者之间的区别,我们必须要明白脚本解释和底层编译之间的关系。
虽然脚本解释和底层编译都属于程序语言,但两者在底层运作上有本质上的不同,属于主从关系。在程序设计里,一般来说主要分为两种语言,分别是编译型语言和解释型语言。编译型语言并不是单纯的程序代码,也可以定义编码方式。它负责将运行代码转换成机器码并封装成可执行程序,只有在封装的时候需要进行编译,以后的运行将都会直接使用编译结果,因此运行效率较高。而解释型语言,通常又被称为脚本,它并不会将程序直接编译成机器码,而是一种第三方代码,它需要依赖一种与之对应的解释器来进行运作。也就是说脚本在运行的时候真正起执行作用的是脚本解释器,而脚本解释器的原理其实就是一种使用编译语言事先设计好一套机器码语言转换规则,然后脚本对其套用以实现运行效果。
因此具有底层编译特性的游戏引擎才可以真正让游戏设计师随心所欲的进行任何层面的游戏开发与扩展。比较知名的游戏引擎有寒霜3,虚幻4等产品,用这些引擎设计出来的游戏不但具有非常优秀的游戏表现,甚至还成为了一种金字招牌,在开发完成之前就可以轻易的引起业界的关注。
武器的选择
说到这里,或许有人会认为再讨论他们之间的选择已经没有什么意义了,但我想强调的是,选择一款武器从来都是要更加趁手的,而不是最强大的。所以在不同的人,不同的情况,不同的游戏设计目标之下,游戏编辑器与游戏引擎的优劣比例上也会产生较大的差异性。
虽然基于编译层的游戏引擎具有运行效率高的优势,但上手门槛高,易用性低,缺乏可直接使用的程序方法。而且一旦转移到另一种机器平台,就需要整个进行重新编译。而基于脚本层的游戏编辑器虽然运行效率较低,每次运行都需要进行实时翻译,但是由于其规则固定的特性,拥有更加简单直接的学习方式,且能直接使用很多引擎实现所设计好的程序模块,极大地简化了游戏设计过程。更关键的是只要平台拥有相对应的解释器就可以轻易跨平台使用,而不用整个重写,非常利于多平台游戏的开发。
因此合理的根据自己的需求,游戏投放类型,开发周期与实际能力进行开发工具的选择才是最佳的解决方案。
▍概念:游戏事件机制与触发逻辑
在整个游戏设计环节中,游戏机制的实际制作概念是最难以表达的部分,因为这将涉及到很多生涩专业的词汇,不过好在他们都是由最基础的算法演变而来的,所以接下来我将用比较容易让人理解的方式来解剖游戏事件触发的底层结构。我打算把这一块分为3个部分来述说:交互事件,战斗事件与全局事件。不管游戏是简单还是复杂,其实展开以后就是这3种事件类型的灵活运用。
交互事件
交互事件顾名思义就是在游戏中发生交互的事件类型,常见的交互事件有普通对话,任务讯息与节点选择。在早期的游戏中,交互事件并没有什么值得说的地方,因为当时的游戏都是1-2句简单的对话,而且是固定式的内容,这样的话我们只需要呼出一个对话框盒子参数并将对话信息以赋值方式代入即可完成。但是对于现在的游戏来说,玩家越来越追求多样化,游戏细节的体验,因此游戏设计师往往会给一种交互行为增加很多不同的内容,甚至会根据玩家游戏进程、属性或装扮上的不同出现不同的对话内容,那么这样的交互事件究竟是怎样实现的呢?
其实很简单,不管一个交互内容多么繁多,庞大,他都是依赖于条件分歧这个最基础的算法结构。游戏中诸如游戏进程,任务是否完成,玩家属性值,是否携带了某种道具装备,现在是什么时间等数据都储存与游戏全局函数的变量之中。因此在做此种交互的时候,只需要调用相应的变量进行判断便可以实现一个看似繁复的对话系统。至于同种条件下的对话多样性甚至不重复性,其实就是在执行相应的内容之前加入一个随机数组,数组会在指定的数字范围内进行随机变换(随机数组属于脚本),然后我们再根据随机结果分别进行不同的条件分歧触发不同的对话内容。而要实现对话的不重复性可以在某种对话完成之后加入一个属于该种对话的变量开关,若此变量值不为空,则让交互主循环直接跳过,不再进入这个对话。
战斗事件
战斗事件想必不用介绍,大家就明白是什么意思。他只存在于需要战斗机制的游戏当中,例如FPS,RPG,ACT与RTS等类型的游戏。不同类型的游戏中的战斗事件设计方法也天差地别,但也有一定的共通之处。首先你得有一个设计巧妙的战斗机算公式,这个公式包括了敌我属性,环境干扰,平衡性系数以及豁免权重等要素的考虑,这里我就不再过多的解释。其次,你要选择一种合适的事件触发类型与展现方法。
举例来说,在回合制RPG游戏中,玩家进入战斗一般是要转换画面的,因此在战斗事件中你需要加载一个滤镜函数或者通过图片渐变的方式过渡到战斗场景。而在FPS,RTS等地图即时性游戏中,战斗事件则一直处于挂载状态,这样的话,就需要给游戏中的各种项目设计视野网格与曲线,当有敌对目标进入视野区域后则进入战斗循环。
在展现方法上,越灵活的游戏在实现的层面越复杂。一般回合制游戏与战棋类游戏中,在战斗过程中采用简单的指令获取与游戏动画的方式完成展现。而无锁定动作游戏与战略游戏采用的是模型碰撞方法,他们将游戏中所有的元素都拆分成不同的模型块,例如牧师射出的闪电魔法,坦克射出的炮弹,都有着一个符合他们攻击大小的模型。这些模型从本体模型发射出去以后若成功接触到目标模型则算是攻击有效,否则就被判定为MISS。有了这一层设计原理以后,有心的设计师就可以进一步个模型的不同区域划分不同的条件判断,这样就可以完成模拟区域性损伤打击,实现攻击不同的地方,伤害不同的效果。
全局事件
全局事件一般是用于完成玩家不会直接接触的一些游戏运行系统,也可以称为是后台事件。例如游戏世界时间的更替,隐藏任务与特殊装备的掉落点变化,地下城,副本的怪物刷新,细致一点的游戏甚至会有NPC的生活作息,不同城镇的物价变化以及主动迭代变量(玩家的一些行为导致游戏产生全局性改变)等系统机制。
在巫师3中,每次玩家拾取物品,地上其他物品的品质会产生变化的战利品系统就是通过主动迭代变量实现的。他的实现原理是在玩家触发物品拾取事件时向游戏中央处理(全局变量)发送一个拾取提醒,这个提醒可以是变量方式也可以是标签方式,旨在告诉系统玩家刚刚做了一个拾取动作。而游戏中央处理会预先做好很多种不同的事件分歧,当获得了这个提醒以后,便会自动进入与这个提醒相关的分歧,于是根据分歧里面的内容将玩家附近的尸体所爆出的装备强制重新进行一次随机数组演算,并根据结果重新匹配装备品质,从而实现了玩家每次拾取物品都会改变周围物品的品质的效果。
事件效率优化,优秀的逻辑是关键
在游戏事件的设计当中,其实难点并不是功能如何实现,而是实现的好不好。简单的来说,其实不管什么样的游戏事件,他们都是一个个数学算法结构,一种机制的实现有着多种不同的算法逻辑可以达成。繁复而冗余的循环结构不但会使游戏的执行效率变慢还会增加不必要的配置需求,导致游戏门槛提高,玩家体验变差等不良影响。因此如何通过尽可能少的系统计算而精准的完成功能,才是游戏事件设计上最重要的考验。
▍完成独立制作之后,离游戏人之梦还有多远?
游戏设计知识的累积总有一天会达到理想的饱和临界点,当你真正有这样的能力完成独立制作以后,应该好好静下心来思考自己将来的道路。在游戏被人类认同,升华为第九艺术的当下,唯有保持着一颗不被大环境与灯红酒绿所干扰,富有创造力,善于欣赏与发现美的内心才能真正地走上游戏人的正轨,否则只会让自己的梦想被现实的黑色浪潮所湮灭。而游戏设计的掌握,只不过是你迈出的第一步。
【本站原创文章,转载请注明出处!】
点击查看栏目往期内容:『星游视野』
除此之外,你可能还喜欢:
4399手机游戏网打造的产业专栏——【游戏鹰眼】
游戏鹰眼简介:旨在聚焦业内热点事件,专注深入的探究事件本质;解读行业现象与其背后的含义。以鹰眼般的视角穿透力与视界带来深入专业的产业动向。
游戏鹰眼相关文章推荐:
《伏魔咒》:拿Havok引擎当佐料,却依然平淡无奇的ACT手游
更多关于游戏设计、行业解读、新游剖析等相关产业文章,欢迎关注以下微信公众号↓↓↓↓