10月31日 - 11月2日,CSDN与创新工场联合主办的2014移动开发者大会(简称MDCC 2014),在北京隆重举行。动鱼数码北京工作室负责人钟文,从WarWings开发经验分享了真实题材军事游戏的制作。
主持人:钟文是北京动鱼数码这个公司。我去年的MDCC认识他们一位叫李阳(音)的朋友,他们在MDCC有个游戏展台,结果我从走道走过时被李阳拖过去,给我看他们教育的东西还有第二次世界大战飞机的游戏,我这个人是不玩游戏的,可是我看了以后觉得这个可真好,玩家的玩法展示给我看,这么好玩的东西,从此就跟他们交起朋友。后来成都我去了展会,特别跟他们CEO聊了很久,所以我一直对这家公司很关注,他们做出一些东西未必见得是市场上很流行的东西,可是他们希望自己做的东西是手创的。像今天早上梁其伟他讲的《影之刃》,他们那种激情做重新的东西就会跟人家不同。
钟文:接下来介绍一下它的背景是什么样子的。这个游戏是个飞行射击游戏,什么意思?它是在手机平板上拿陀螺仪为主要操作进行的3D自由空间里飞来飞去的游戏。
我们可以看一下它大概是个什么样子。(视频播放)如果大家有做其他移动游戏,发现装备改造、升级等等都差不多,稍微区别一点的是游戏里面分工略有不同。为什么我们说这个游戏是个冷门游戏?刚才主持人也提到看起来稍微有点冷,冷在什么地方?群众一般都会拿这样几个东西提醒我们:第一个是用户少,你们只能往“欧美”卖,稍微善意点的会这样说。第二个,这个毕竟是3D设计游戏,相对其他游戏来说开发门槛要稍微高一点,但是待会儿和大家分析一下这个东西到底构不构门槛、门槛在哪里。还有,就算把这个游戏做出来了,飞行游戏也非常难以上手,如果这个问题不解决掉会带来这样那样的问题。
第一个,欧美性。这句话是比较善意的玩笑,什么意思?意思是市场不成熟,市场不成熟是需要培养市场,这个话不是开发者说的,是市场人员说的,市场人员说话关于开发者什么事?他表达的担心是从市场角度而言的不好卖,不好卖关我开发人员什么事,我能做出来很好的飞行游戏。作为中国人来说我们培养得培养不了市场,培养得了。我们开发人员东西做得好,一定卖得掉。卖得掉当然也需要大家往海外多看一下,意思是我们公司自己运营把它推不好,或者我身边熟的几家运营商推不好,那我就往好一点的方向推。不是说大家独立做自发型,我们找到一个合适的发行商,不要太相信市场人员说的这个游戏不好卖,而导致自己放弃一个非常好的想法。
第二,3D射击游戏,开发难度高,怎么解决?第一,引擎方面我们就不折腾了,虽然程序员喜欢自己折腾引擎,但是对我们来说做得是比较冷的题材,没时间折腾这个。而且我们前面有项目经验,拿它开发相对来说比较保险。第二,对题材要非常熟悉才行,如果对飞行射击游戏历来涉及的问题不了解,这些问题就会成为坑。但是对于我们来说,这个东西玩了十几年了,对它非常了解。还有,冷门游戏在北京可能很难招聘到冷血飞行模型的人,并且给我的压力是两年以内甚至一年就出东西,这么短的时间没有做研究的时间,只有做开发的时间,这些东西积累才有机会。
我们大概看一下积累出什么东西,这是一段我们程序员的话,我原文引用了一下。意思就是说这个项目立项前的一年或者两年就已经开始有底了,不是从零开始的项目,这也是我们有自信能够消化掉这些制作难度的原因。积累出来的东西什么样?大概这个样子,战鸟,这是个联网的飞行射击游戏,联网在线运行了大概七八年、九十年,然后演化成了所谓的《二战在线》,我们国内运营过,这个东西的源代码没有公开,但是它的制作资料是半透明的,只要稍微搜一搜能够搜到,这是我们搜到关于它的飞机模型、武器模型和飞机性能相关的参数,当然,我们也可以去美国航天局搜风洞资料,但是那个东西对我们来说太不遥远,我们对比很多飞行动力模型之后选了这么一套。
这个东西是制作方法,这个东西都是半公开、半透明,只要愿意收集,一定能收集到。以及我们还有很多书面资料,这些东西是什么?跟我们题材相关,可能跟内容制作人员关系比较紧密一点,一堆书,第一手资料。右下角还有一位老人,他是一个越南华裔,当时他十六七岁在重庆昆明一代从事相关工作,碰巧他住在我们公司CEO家的对门,所以我们跟他有相当多深刻的交互,他作为一个亲历者,从他的著作和口述方面都告诉我很多,他希望我们表达出来中国抗战发生事情的那些来龙去脉和叙述方法。
接下来我们看一下实际制作过程中怎么把画面表现得好。我们制作这么一些东西,让这个画面看起来稍微说得过去。稍微复杂一点我就不说了,没有用深奥的,就是普通的。做了这么几个东西:
首先,镜头污渍,主要是给人一种看起来比较高级的感觉,特别喜欢在光源扫到镜头的时候来个污渍。照亮屏幕上的污渍,让光看起来比较有实感,让画面看得高大上一点,对飞行游戏来说是非常难得的空间,地平线可以做飞机直飞时候的参考,但是如果我们在空中挂一个太阳,在太阳的位置放一个光斑,镜头对照它会产生污渍的话,群众多了一个失去跟地平线接触之后的空间焦点。
另外,同时在图像方面帮助我们的是什么?机身反光。总共我们用了多少?我们以谁为指令数为上限?我们在这样一个指令数上限可以迭多少指令?迭了这些。
除此之外,在可动控制面。我们让所有的减速板都可以真实,比如这架SBD府冲战时是这样。机翼当减速板的类型挺多,有前后开奉机翼等等,毕竟我们对题材比较熟悉、比较喜欢,稍微折腾了一下。
另外一个稍微情怀一下的东西是这种,我们做螺旋桨飞机,做它的螺旋桨的时候美术都说贴个片,贴个片很难解决侧面厚度问题,所以我们稍微处理了一下,处理完之后看起来这样。无论如何,这是给这个画面细节带来了一点点好处。
其他更细的我就不说了,说一个最大的,对我们来说既是图形细节也是有这样一个东西,它面临的细节主要是部件破坏。(视频)一架飞机坐舱可以被打掉;一架飞机的发动机可以被打掉,打掉之后这架飞机如果是双引擎飞机,丢失一半动力,减速,飞行不平稳,如果单发动机飞机,开始燃烧,接下来爆炸;如果是机翼打中一小会儿,会折断。这个东西在手机上能不能做?当然能做,没什么,只不过是数学预算而已。为什么不做?市场的原因告诉我们这个东西观众难以接受我们就不做吗?我们是开发者,不是做市场的,他说不做就不做,那我算什么呀?我能做肯定做。前面解决了制作难度和市场方面的问题,基本的基调是“我能做我就做,我把这个东西做好了,不相信它卖不掉。”
第三,解决比较实际一点的设计问题,就是飞行游戏难上手。群众不知道这个复杂系统内部是什么样子的,我们自己解。根据我们录下来的视频,有中国人的,有外国人的,有口述的,有第三人转的,有第一人称发现的。理下来是这么几个:第一个,搞不清目标在哪里,位置、方向,这的确是很不容易搞清楚,第二个,我知道我的目标在哪,行,我要飞过去,我要手脑协调,这时候大家要跑跑卡丁车,你给我一个不在赛道上跑的车我不一定撞到那个点,更何况更精确的对准一个目标开枪,所以飞不到想飞的地方这个东西必须解决。这里面有两件事,第一,手脑协调,目标在我左边,第二,操纵原理。接下来的问题是打不中,我要拉提前量,拉提前量的时候不能纯追逐,得追逐目标的方向,算出自己的行径曲线,什么时候并航线、什么时候不并航线,是个策略问题,但是要执行这个策略也需要非常高的技巧。
还有,复杂度的问题。去掉仪表能不能玩?当然能玩。第二个,去掉起飞降落,这个东西一拿掉之后玩家观众基本没什么可抱怨的了,最难的东西没有了,拿设计师的话来说,在我的体验曲线上少了一个非常难以控制的部分,为什么起飞降落难以控制?我不知道在场设计师有多少,麻烦举一下手。因为它的难度非常陡峭,要么成功,要么失败,如果起飞阶段失败,后来的一切东西都体验不到。起飞成功难吗?挺难的。降落成功难吗?更难。我已经完成一次任务,我的体验曲线攀升到很高的地方,如果迈不过这个槛就让我马上降到底,不太值得。另外,去掉弹道下落这个事情。然后滚转这件事情得对飞行员有所了解才可以,街机游戏是需要用户最容易上手。
这是一个航天飞机降落游戏,这是它的题材,但是它没有外太空轨道飞行,它要做的事情沿着一条下落曲线拿着陀螺仪操作,让飞机沿着下落曲线飞出轨道就行了,这个游戏难吗?相当有挑战,只剩这一个维度,这个维度足够深。让大家联想到什么?这个游戏是弹道控制游戏或者轨迹控制游戏,没有所谓的背包管理、没有角色升级、没有一堆城镇,但是这个游戏难吗?按键时间多久决定跳多高,起跳速度决定跳多远。作为设计师,去掉复杂度,有深度,就是这个意思。
接下来解决的是所谓的操纵难,操纵难我们要隔离用户能力和挑战难度之间这个关系之前,我们先要看一看为什么用户说操作难,有没有一些机制方面固有存在的所谓的不完美的东西在,这个不完美的东西大概什么样,我们要不要先修BUG再说设计。有没有BUG?当然有。第一个事情就是很多飞行游戏到了顶点的时候我再给它左右输入,这架飞机就不再左右转了,这架飞机开始围绕顶点打圈,在场的程序员朋友想一想为什么会出现到顶点了之后左右输入不起效、开始打转?我们既然发现了这个东西是个机制方面的不完美,一个机制层面可以解决的东西那就解决它呗。解决的过程其实就是以天地线为参考座标,以本地座标系为座标系,不以摄像机座标系为座标系,垂直向下时依然保持对飞机左右控制。什么意思?在给用户看之前先把BUG修了。
我们首先解决最容易解决的事情,我们先不说用户要飞到哪自己飞不到的事,我们先解决用户看不见目标的事,用户看不到目标怎么办?这个问题在真实世界也很难解决,我们在倒车时候怎么知道背后有半米高的桩子、怎么知道背后有个小孩在玩?这个对游戏来说无非是要解决,他想看东西的时候不要丢失对自己刚才座标系的视觉联系,什么意思?这个时候的摄像机不要切,要转。什么意思?这个摄像机负责了这样一些复杂度,第一,追在玩家后面,第二,玩家跟水平天地线成夹角摄像机要延迟成夹角,第三,飞机向左右持续转弯摄像机主动跟天地线转出夹角,第四,飞机加速转速摄像机要变FOV,第五,当玩家看中某目标锁定他的时候,摄像机要看这个目标,同时,看这个目标必须是从飞机当前方向转过去的,松手取消掉的时候必须保持天地线的稳定,看目标的时候天地线是平的,回到自己天地线还是平的。我们游戏做特殊技动的时候摄像机是受动画控制的,受远近控制、滚转受逻辑控制,要接管的时候要圆滑交给动画,结束时候要圆滑把控制权交给控制器,死了时候要拉远。一个摄像机承担这么多东西,我写状态可不可以?可以,状态转换要保持中间圆滑,状态本身也是一个状态,怎么办?这个状态相当复杂,这个东西怎么解?这个东西很容易解,这个东西上过09年的讲座,用一堆控制器来切换它。
再来说一下我们自己的解决方案,接下来我们做了几件事,第一件事是小地图,第二件事是Padlock,第三个是离屏目标指示器。然后我们做了一键事是什么?我不知道大家有没有玩这个,主角切到视觉场景的时候会有一个摄像机非常酷的,目标在后面打我,我不知道它在哪,我看雷达,它在我后边。大家还记得我们是个触屏设备吗?我们可以直接点目标,当我拉得足够远,看到我周围射程1.5倍或者2倍目标的时候直接在屏幕上点,解决完之后感觉还挺好的。
飞不到目标的问题怎么说?这是个问题,为什么?这是异面的问题,目标跟我不在一个屏幕上,我不单要考虑左右,还要考虑上下。即便追逐,用户要考虑提前追逐、之后追逐还是纯追逐,提前追逐是拉提前量,但是不能一直拉提前量,需要开火时候拉。怎么解决?RTS为了一队英雄带着一队兵到想去的地方,怎么办?寻路。我们把这个追逐自动化之后策略上会不会受影响?会受一点影响。的确可以现在对准它,但是我拉开一个转弯空间供转弯过去,接下来在上面第一次对准它,接下来在垂直方向转,这个时候是自动的。中间的几次策略是谁给出来的?第一个策略是什么?我不跟它迎头,我要飞高,这没有拉自动,飞高之后这个目标消失在摄像机以外,怎么办?我开启自动,开启自动以后首先把摄像机拉过去,然后再把飞机拉过去。每当玩家丢失他的方向感的时候会按这个键,按完之后马上都会操作,用户几乎不会对它烂用。
设计难打中是后面一个问题,用户的策略是稍微点射还是拉出提前量,是持续射击追瞄过去还是点两枪,对我们来说我们要优化什么?我们优化了它,接下来用户可以在技巧方面去提高、去点射。优化方向有几个:高伤害、自动枪、高散布、自动转。高伤害的意思就是说我不对所谓的飞行品质做任何调节,我就让它伤害它,你不是说打不到嘛,我现在提高伤害,一枪就让你秒了,设计师对它有深刻的理解,要么难度太高,要么难度太低。这是个例子,如果第一次没有把准心打上,第二次要过来就相当难了。
我们看一下自动枪,自动枪的意思是没对准的时候开枪打不中,飞行游戏,一定要我对着敌人开枪中才给我带来我想要的反馈和我想要挑战的奖励。但是我都不没对准它就打中了,这个东西看起来不公平。我们怎么办?我们做了自动追尾,但是自动追尾的同时容许玩家把左右偏一些,这样可以给他一个稍微多一点的策略层面选择,我要不要提前一下,我要不要打其他地方,我要不要打其他部位。总体来说在比较优良的情况下,比如追尾可以保证打中,但是在偏差角大的情况就不能打中,几乎任何时候都需要他自己主动拉提前量。最后我们得到的是什么样的射击体验?我们来看一下。(视频播放)
接下来我们自己还有什么可以做的,还做了特殊技动,看起来这种样子,当满足条件的时候,比如敌人在我背后200米、300米,做一个特殊技动,然后把敌人控制器塞到动画控制器上。玩家如果看出穿帮怎么样?这时候玩家摄像机、敌人都是动画控制,只要足够好,这个东西不出程序上的问题,也很难看出穿帮。
我们山寨了很多的东西,大家可以说山寨,也可以说借鉴,山寨了谁?AfterBurner,山寨了它对飞行模型的思路,把滚转去掉,只留下左右怎么样,会非常容易吸引观众,这是个阶级游戏。第二个,参考PilotWings,这个游戏被群众誉为在速度和高度上终于让大家感觉3D游戏应该有的样子,保证普通用户在他里面也觉得还OK。还参考了WarThunder。还参考了这个,当左右转弯的时候程序员一直在想怎么通过自动操作让这个游戏看起来是左右转弯,但是内部是让飞机来来去去。自动对准是从SkyGunner,这个东西当时卖得挺好的,辅助瞄准这个东西用Thunderwolves,等等。
这种游戏是不是不好做?结论是否定的,当然不是。我们的摄像机是基于Gamephly架构,当时用波斯王子,后来还有一本专著,实时设想机。角色控制器与动画混合几乎到处都在用,大家对这个肯定都有印象,是个老技术。辅助瞄准对于国内的技术人员可能稍微不那么熟悉,但是我对它的印象就非常深,从黄金眼开始,那时候我还没入行,但是我做设计游戏时候,05、06年我们都几乎拿黄金眼和光环调我们的参数。
结论是什么?结论就是我们做了一些在市场人员、不懂开发人员看起来比较冷门的事情。这些东西难吗?一丁点不难,只要大家有积累、大家愿意做,完全可以做出来。比如双人同步电话,这个东西在波斯王子里面、战神等里面应用特别多,但是我们的RPG、ARPG还不怎么用,为什么不用?更细致一点的,马这个生物有5G固态,为什么我们只实现一个?这个东西人家都已经实现过无数次了。
如果大家对里面任何东西有所关心可以邮件给我。