《DFQ》开发随录——后记

  欢迎参与讨论,转载请注明出处。

前言

  DFQ终究是顺利的开发完成,并在发布之后的短短四日内达到接近十万的下载量。赢得广大玩家的好评,甚者认为比之官方的手游品质更佳。然而这一切恍若黄粱一梦,于昨日晚上收到了来自腾讯的律师函,要求删除相关下载渠道与宣传内容
  取得这等成绩自是喜人,能被腾讯警惕也证明品质确实出色。只可惜游戏尚有一些待完善之处,无法再为玩家提供更新了。在此期间也有不少请求换皮合作的邀请,但本人志不在此。也不想讨论相关太多,就来为这个项目做个总结吧。

程序

  关于制作DFQ的想法,在《阿拉德英雄传》3.0搁置以后便有了模糊的想法。认为要做一款简洁爽快的中小型DNF同人手游,作为我、以及开元的DNF同人最终章。但随着增长了见识以后,便发现自己的程序架构掌控力不足,于是花了不少时间恶补。且前期对于要做一款怎样的游戏并无清晰的概念,遂直到2018年6月才正式开始制作。
  由于DFQ算是弥补3.0搁置的一个执念,于是依旧选择了LÖVE引擎。事实上这是个重大的决策失误。LÖVE关于移动端方面的功能只是刚刚推出,且是冷门引擎,没人帮忙踩坑。于是在制作时便遇到了很多问题,包括相关库的缺少或不合适以至于要造轮子、引擎本身的BUG之类等等。在发布之后更是遇到了诸多问题(NO GAME、全面屏、DPI等),在此奉劝各位,不要用冷门引擎
  说回程序本身,这次基本上是达到我的要求了,至少工程不再是一塌糊涂、难以协作的状态了。对于各种方面的写法问题也有过深刻的研究(如活动对象采用ECS架构),对于代码格式与写法也有了规范。不足之处在于状态的业务按理来说应该配置化,而非OOP,因其存在大量相似而不同的业务,而这些部分是难以用OOP解决的。以及在OOP的规范上,我引入了private(以_前缀表示),然而会发现很多时候这只会增加不必要的思考负担以及封装成本,这方面该如何处理其实至今我仍未有答案(在业界也是众说纷纭)。
  为了弥补Lua没有强类型与智能提示的缺点,我引入了EmmyLua。所以看过之前的开源工程的会发现代码会有形如---@class XXX的注释,不过这种外挂的形式终究不如原生来的爽快,且缺乏运行前检查的功能。对于代码健壮性的建设尚嫌不足,由此可见TypeScript才是究极的工程化脚本啊。
  在后续测试的图中遇到过一次严重的内存泄漏事故,基本上刷到第三个地下城时便会内存膨胀到难以接受的地步。通过使用LuaMemorySnapshotDump发现,由于我为了减少内存申请,会将一些固定的table类参数写成模块变量,而使用后却没有及时清空,导致游戏对象一直依附其中,无法回收。以及为了优化而做的对象池也是如此,真是汗颜。

美术

  美术方面可以说的不多,首先是由于因需求做了个粒子编辑器,导致对粒子效果的掌控力上升。游戏的粒子特效使用率较之《阿拉德英雄传》有了大幅的提升。
  在人物素材方面,实现了非常强大的纸娃娃,并且为了效率优化,纸娃娃是拼合成一张大图的,缺点在于合成相当耗时,需要在恰当的时机进行(如读图)。并且部分设备支持的图片大小最高为4096,而实际上则出现了超过该大小的图片(此问题至今尚未修复)。
  在优化方面,由于引入了图集与压缩的措施,游戏的加载速度与显存占用是得到了极大的提升。在尚未采取压缩之前,小米9会出现显存带宽爆炸的情况。可以说安卓设备五花八门,令人十分头大。
  UI方面,立绘依旧是小山龙同志的作品,质量较之当年可谓进步明显,原本打算采取live2d的方案,却因工期延宕而搁置了,实是一憾。至于界面本身,可以看出对于手游而言,连及格都称得上是勉强,实是因为一版过兼无经验所致。
  手游UI与端游UI的不同处在于,由于屏幕太小,实际上UI要做的很大才显得正常。并且由于有着触控的需求,按钮也必须大且位置合适。如果为了美术效果而做得小,那也得必须要求附近无其他冲突项,且实际可触控范围要比素材看起来大才行。

游戏性

  DFQ的原初想法实是一款刷刷刷的类暗黑游戏,但本人感觉这年头的游戏都过度强调养成了。遂在砍掉养成的前提下重新审视,定下了三国战纪+Roguelike的主基调。三国战纪的元素在于:角色扮演、街机闯关、拾取道具,Roguelike则是随机性了,可谓独立游戏时下的流行元素,当然大家不约而同选择Roguelike的原因很简单:游戏内容不足,所以要用随机性来增添耐玩性。这么一组合起来,DFQ的样子便很明显了:开局一把刀,一切全靠打,随机地图事件,横版街机闯关。
  但是仅仅如此还是不够的,要是玩家一直用着一成不变的搭配进行游戏,那可就太浪费了。传统游戏对于此的解决方案有:上下级替换、针对性关卡替换,然DFQ没有条件搞上下级替换,针对性替换也未免苛刻。于是抄袭《塞尔达传说:荒野之息》的武器耐久度设定,让武器、道具、技能都具有轮替性。这份轮替性对于玩家而言实是辛辣了,以至于赢得不少吐槽。在后续版本中便为此做出了调整优化,但实是最佳之法。关键在于:玩家需要自己感到可控的设计,而非稀里糊涂的机制。DFQ在不少方面都有类似问题(如最初设想的动态难度),实该检讨。
  在关卡设计上,DFQ是以传统游戏的标准进行设计的,做出了不少较之DNF的突破(如跨房间追击战、迷宫等)。在开发前期犯下一个严重的错误:以端游的标准去做手游,以至于难度过大。手游的操作成本比端游要大,以及更适合轻度的体验。传统的DNF操作方式并不够爽快,遂在此基础上加入了小技能可互相强制、普攻可减少技能冷却的设计,让整个游戏的体验如打了肾上腺素一般。
  除此之外,在做《阿拉德英雄传》多年以来,落下不少错误的思想,如怪物的攻击频率相当鬼畜、没有合适的前后摇等。虽然较之当年,我的ACT设计理解有所提升,引入了反击元素,但仍是不足。在小草泥马的一番军训后,引入了紧张时间与舒适时间的概念,领悟了张弛有度的道理。怪物的设计上会做出提供玩家利用的破绽,让战斗的体验达到了业界平均水平(指国际)。

宣传

  在此感谢轻声低语、瓦伦、夕阳飘羽三位同仁的协助,在DNF百度贴吧、COLG等处得到了极大的曝光,也感谢纷纷去安利、自发宣传的玩家们,以此得到了广泛关注。取得了下载量近十万、B站宣传片十三万播放、贴吧关注量近七千、群人数两千七、COLG帖子47页的成绩。
  另外意想不到的是,以前《阿拉德英雄传》的玩家群体的活跃度也很高,并且开元工作室的名声也比想象中要大(不少人都知道,包括DNF吧的吧务),可见以前做下的成果也是有回报的。
  其实在我看来,比较核心向的游戏,只要你知道受众的聚集地,并且有相关号召力的人士愿意帮忙。在赢得了核心玩家的认可下,宣传效果是非常棒的,哪怕远在韩国的好船同志也收到消息并通关了。这点和业界从广泛人群中捞玩家的买量游戏还是有所不同的。

后记

  其实DFQ的成功,除了本身品质的优秀之外,更在于官方手游迟迟未发,当然最近又有动作了,这也算是撞枪口上了吧。且DFQ属于手游里少有的偏传统的单机类型,在玩腻了抽卡养成流水关卡的玩家看来,自然是十分闪耀的。而我之所以拒绝那些合作换皮的邀请,也在于我并没有想过符合游戏的商业化改造方案,如果按照市面上的那一套进行,结合下一次的天时地利人和,感觉迎来的只会是暴死吧。
  经过这次的验证,可以见到我的ACT理解程度已经进入了新的台阶,然而这还不是我所能做到的极限,若有机会一定会再次整活。当然同人游戏是不会再做了,这次已经是撞倒了天花板,在各方面有其局限性。