《天下为棋手游版》改编自 Steam 好评如潮的 《天下为棋》 B2P策略游戏。在继承原作基础的同时,补全了原作剧情章节、道具装备、对原作游戏数值与操作方式均进行了大幅度优化与改动。
在 Unity 技术开放日北京站黑马训练营专场中,《天下为棋》手游版制作人于晓楠分享了团队使用 Unity 进行游戏开发过程中遇到的问题、所用技术以及独游转手游商业化的选择和改进,并就《天下为棋》的玩法设计和技术实现接受了深度访谈。本文对干货内容整理如下:

各异战棋 硬核肉鸽

《天下为棋》是一款 “战棋+肉鸽” 类游戏,虽然小众,但有一批真爱粉,驱动着团队将其打磨为兼顾丰富度与难度的高品质手游。
“战棋”类游戏的特点在于丰富的棋子角色、装备、属性、职业,以及注重回合制策略。《天下为棋》也对这些特征进行了强调和放大。玩家可以在城镇进行装备买卖,在世界地图移动和选择,而且为了提升游戏的精致度,满足玩家的高要求, 《天下为棋》中没有任何相同的棋子 。所有角色、怪物、敌人的攻击方式、位移方式、专属技能都由独立的机制运行,每个章节副本的地形格子也都分别经过特殊设计。这种庞大的资产库和精益求精的设计工作为游戏带来了丰富的随机性和选择自由度。
在战斗准备阶段中,玩家可以对己方棋子进行排兵布阵,配置每局棋子的战位、装备与道具。《天下为棋》的棋子分为三类——豪杰、至尊和奇物,分别对应普遍的、英雄的、特殊的棋子。棋子上阵需要消耗上阵点,不同关卡、不同棋子可使用的上阵点不同,玩家需要在有限的上阵点内,将不同类型的棋子们组合上阵。

属性系统

角色属性界面集成了所有可对角色进行的操作,包括专属技能、专属装备,以及可学习的被动功法技能。角色属性设计了养成机制,可以通过战斗中积累的经验值持续升级。

装备和道具系统

装备是角色使用的武器,可以通过关卡掉落或商店购买获得。《天下为棋》中的装备除了提供基础属性,也拥有特殊效果与附带功法,每个至尊棋子都拥有对应的专属武器。
除装备外,每个棋子还可携带最多 2 组道具进入战斗。道具分为伤害类道具、被动类道具、恢复类道具。道具系统具有一定随机性,如“无极魔方”道具会随机产生不同效果,在关卡中也能刷出特殊道具。

战斗系统

战斗阶段中的每个棋子都有专属的移动、攻击机制。考虑到游戏的公平性,《天下为棋》的战斗设计了军令限制,棋子的移动与攻击均需要消耗军令进行,玩家需在有限的操作步数内运筹帷幄。
根据被攻击棋子的面朝方向,攻击可分为正击、侧击、背击,甚至还有会对敌方和友方造成同等伤害的“友伤机制”,玩家需要有更强的策略性,不仅要注意不将背后暴露给敌人,还要防止操作不当打死己方重要棋子。
普通豪杰、奇物棋子战败会永久死亡,至尊棋子战败会进入多个回合的冷却阶段。除此之外还有随机触发的battle系统、进行装备买卖、棋子招募、棋子复活、支线任务等的城镇系统等,扩大游戏的可玩性,让玩家在其中自由探索。

将“肉鸽”融入战棋

《天下围棋》不光有战棋,还有“肉鸽”。肉鸽游戏(Roguelike)最突出的特点在于生成的随机性、进程的单向性以及不可挽回性。随机的地图、敌人、技能和宝物等给玩家带来无限乐趣,但“一旦角色死亡就永久消失”的经典机制也成为游戏的硬核基底,让玩家又爱又恨。
《天下为棋》中的肉鸽元素主要强调它的随机生成。比如,游戏中设计了几十种随机的“天机”技能,可以控制、伤害敌方棋子,对我方棋子施加增益,或消除地形、解除异常状态,甚至使棋子位移、转移战场等等。
此外,《天下为棋》中的关卡迷宫地图也是随机生成的。玩家在地图副本中可能随机遇到各种关卡类型和事件,有的是奖励格,有的是精英格,需要通过路线策略带来不同的战斗与奇遇,寻找并击败 Boss 才能获得胜利。这样的设计是为了让战棋避免成为线性的消耗品,而是可以通过随机组合带给玩家多次不同的体验。
虽然《天下为棋》在数值和难度上的设定依然十分“硬核”,用于晓楠的话来说是“悲剧才能让人记住,困难才能让你永远喜欢”,但面对玩家的反馈,团队还是选择了通过剧情、复活机制和调整数值来中和“肉鸽”的残酷性。贯穿始终的剧情会从开局慢慢堆积玩家的情绪,将玩家代入游戏中的暗黑武侠世界,通过事件节奏将玩家情绪引向爆裂点,推进更宏大的战斗、特效和 Boss;角色棋子也取消了“纯死亡”的悲剧命运,而是允许玩家通过金币和道具在城镇中复活。
于晓楠总结道,要想做好“肉鸽”游戏,就要重视“肉鸽”这两个字。 肉鸽的随机元素虽然让玩家体验到了乐趣,但也会破坏游戏的平衡性,所以需要在平衡性和肉鸽元素中反复寻找平衡点。 比如肉鸽游戏每次开局,角色、技能都不同,但玩家又要打同一个关卡,这时不同的技能设定要让玩家有平行世界般的游戏体验,而不能有难度区分—— 要让玩家觉得无论选哪一个都能过关,而且都能体验到不同的游戏乐趣,这就是肉鸽。

《天下为棋手游版》中的 Unity tips

中小团队打造这样一款重策略、资产库庞大的“暗黑武侠风”手游,需要降本增效、事半功倍的手段,不仅要聚拢一波能迅速上手开发的有志青年,还要让游戏有能抓住人心的记忆点。团队选择 Unity 开发的原因就两点, 第一,好招人;第二,很熟悉 。“如果看数据,Unity 占比中国游戏开发市场 60% 以上,这样来想,它的毛病最少、辐射性最广、而且好招人,能解决我们大部分问题。”
在使用 Unity 开发的过程中,团队总结了一些以最低成本提高效率、凸显亮点的 tips。

用“辉光”点亮水墨

《天下为棋》手游给人最鲜明的第一印象莫过于暗黑武侠的画风。有别于传统的战棋,团队根据剧情及出海规划放大了美术上的水墨风格,烧脑之外增添了一抹侠义色彩。
中式水墨与《天下为棋》肃杀、硬派的整体设计相得益彰,但大面积运用难免显得色彩灰暗,不够抓人眼球。为了在美术上独树一帜,《天下为棋》团队使用了 Unity Asset Store 中的 Post-Processing 插件 ,将以往多用于特效的“辉光效果”全局应用于UI及整个游戏系统。原始的美术素材整体偏暗,而“辉光”的添加为中式水墨点亮了一盏烛火,让游戏的视觉及色彩焕然一新。
“可以说,对不同界面进行辉光调整的复杂程度远远超过我们当时的想象。单独美术没有办法对游戏的最终效果进行把控,因此为了得到这种特殊的色彩和光感,我们的美术和技术需要花非常多时间反反复复调试。好在最终的画面效果非常特别,也得到了玩家的认可。”

用工具提高效率

除了美术插件带来的画面提升外,《天下为棋》团队还利用 Unity 插件及工具集高效解决了战棋肉鸽类游戏的几大技术点——导表、存档及 UI。
《天下为棋》丰富的棋子、技能及关卡设计也带来了庞大的配置工作量。为了方便开发,团队将游戏中所有的配置表都用 C# 编写成了一个 可视化的导表组件 ,可以通过这个插件配置游戏内的全部内容,包括棋子、关卡、技能、剧情等。配好的表点击导出数据,会将 xml 导出 bytes 并且移动到 StreamingAssets\ClientObjectResources 下。
有了这个插件后,策划可以在后期关卡编辑、测试时直接改动数值,配置后能立即生效,不需要技术再进行反复修改和调整,极大简化了开发流程。
《天下为棋》手游的存档系统使用了 Unity Asset Store 中的 Easy Save 3 插件 。这款插件的优势主要有三点——安全性高、效率高、普适性好,使用插件后可以迅速自动生成加密存档,玩家很难破译,且不会造成存档卡顿。Easy Save 3插件也完美适配了《天下为棋》定点存档等机制和需求,节约了团队处理存档安全性、写入速度等问题的开发成本。
uGUI(The Unity UI Package) 是 Unity 基于游戏对象的 UI 系统(了解 Unity 最新的 UI 系统,请查看 UI Tookit )。团队使用了继承基础 uGUI 组件的方式,添加方法进行了扩展,以满足高级需求。
“uGUI 对我们来说是更易于扩展的普适性 UI 工具。《天下为棋》的 UI 有时候需要调节字符间距、对 button 的每个事件具体设定、设置提示音等,Unity 的 UI 系统可以很方便地拓展和集成这些特定功能。”得益于 Unity UI 的可视化特征,团队的美术、音效等非技术同学可以直接进行 UI 调整。uGUI 还提供了 text 自动根据文字内容换行,以及背景根据文字多少自动增补的效果,尤其便于手游开发一次性适配所有手机型号,节约了 UI 布局调整时间。

用脚本优化性能

“一款游戏在 PC 上性能好,不一定在手机上就跑得好”。相比 PC,手游最容易被玩家感知到的问题就是处理过多数据导致的发热、卡顿。当脚本数量过多的时候,一个方法调用的脚本数量也会随之增长,而且极其容易遗漏而出错,单个脚本行数过多可读性极差,核心代码比率极低。
因此《天下为棋》团队重点处理了 脚本之间的通信问题 ,采用分发事件的方式,在某个节点发出触发事件的信息,所有注册到事件系统的脚本都会接收到,然后根据接收到的消息行进行下一步动作,这样代码可读性就好得多。将处理代码发散到各自的脚本中,解决了繁复的脚本之间相互调用的问题,提升了游戏处理速度,从而减少卡顿。
另一方面,一个预制体中脚本可能有很多,开销极大,而很多脚本仅仅是为了指定需要关联的游戏物体。因此团队采用了逻辑脚本从挂载节点脚本中提取的方式,即主要的逻辑脚本从节点脚本中获取挂载的游戏物体引用,然后 强制销毁已经提取过的节点脚本 ,这样所有的逻辑和引用都处于一个脚本之下,再配合 Tick 树使用,最大限度降低开销,避免了手机因性能不足可能出现的发热、卡顿现象。
最后,游戏在开发过程中要经历反复测试,以排查 bug 及上文所述的性能等问题。而 bug 分为可复现和不可复现两种,有时团队花一周甚至更多时间都无法找到并复现 bug。为了更高效地还原 bug 的触发机制,《天下为棋》团队设计了对测试进行记录和反馈的 操作栈 。测试玩家的详细操作会被记录到一个 dict 当中,并压入栈,当想返回上一步时就可以直接读取栈,根据标志调用该系统的退出或是其他事件方法。
操作栈的设计取代了在代码中打记录节点的测试方式,更加高效、直观地保存了时间段内玩家的所有操作,便于回查不可复现 bug 的触发机制,而且避免了代码中记录节点可能造成的游戏卡顿问题,在降低测试时间成本的同时兼顾了性能。

独游转手游的商业化选择

于晓楠分享道,独游和手游的商业化模式是不同的, 独游适合“B2P收费”,而手游的B2P盈利会薄弱一点,因此团队采用了“广告制、内购制的混合制收费”。 一方面以奖励吸引玩家主动观看广告,另一方面加入了比较多的内购和新 DLC、新主线、新支线。
不同的商业模式,也对应了不同的游戏人群。STEAM上的玩家普遍很硬核,且已经习惯了一次性付费,这就要求游戏制作需要重视好的口碑、好玩的内容、足够标新立异; 而在手游上,玩家的时间更碎片化,无法长时间去玩一个硬核游戏,所以游戏的难度就必须降低 。团队在手游版本中加入了更多的简单装备获取方式及 装备继承机制 ,使得玩家在多周目挑战时,可通过装备继承机制来转移部分道具,降低了玩家游玩多周目的时间与精力成本。
此外,《天下为棋》手游版本还增加了 付费商店和排行榜 ,以刺激玩家付费。为了弥补单机游戏在内购制方面的弊端,手游版目前已实现游玩过程 全程联网 ,并且将玩家诟病的手动式存档优化为了自动存档,预防外挂与破解版本的出现。
下一阶段,《天下为棋》手游版还计划加入包括 PVP 等复杂的内购玩法,如玩家对战等,进一步探索手游的更多可能性和盈利空间。

现场交流

在 Unity 技术开放日北京站黑马训练营专场中,Unity 黑马计划导师与《天下为棋》团队进行了更深入的现场交流。

杨雪钰:

(热脉游戏发行制作人,曾发行游戏:《地牢迷途》、《海沙风云》、《死亡教堂》、《迷雾侦探》等)
《天下为棋》这款游戏上线的时候我也体验过,不论从美术还是玩法上讲都是非常独特的游戏。您刚才提到了游戏在PC上的销量不是很好,有90%的玩家引导关卡都没办法过去,这对游戏的销量肯定会有很大影响。
独立游戏开发者在做游戏的时候,有时候需要注意的一点是不能太过于追求游戏的独特玩法,还是需要对整个市场和玩家的情况有一些迎合。尤其早期两到四小时内,还是需要让玩家有相对平缓的、好上手的体验。希望在手游移植的版本里可以在这个地方稍微做好一点,因为太难确实还是比较劝退的。
于晓楠: 谢谢,我们也注意到了这个事情,确实当时想做一个比较硬核的战棋类游戏,所以在难度设定上相对困难了一点。我们现在对难度已经进行了大幅度调整,手游方面我们给了更多选择,两个难度版本变成了四个难度版本,想体验剧情的玩家可以有更多剧情体验,不会把他们卡住。当然我们也保留了高深的难度,相信有些玩家愿意体验。谢谢您的建议。

胡jiang洋:

(雷霆游戏发行制作人,7年PC主机发行业务负责人,3年发行制作人,创建Indievent,Lightning Games游戏发行厂牌,代表产品有《鬼谷八荒》《纪元变异》《硬核机甲》《通神榜》等,现任雷霆游戏PC主机游戏业务负责人,创造国产单机游戏首月180万套销量的历史最好成绩)
主要是上手学习成本而不是难度的问题,你们非常强调每一个关卡、角色、操作单位的独特性,因此每一次都有学习成本。随着学习成本的叠加,一部分偏轻度的用户就会劝退,这是更重要的,难度我觉得还好,这个游戏还没发售的时候我就玩过。
另外,收集玩家信息这部分可能要提醒一下,要注意隐私的问题。特别是《天下为棋》发的都是海外平台,有可能会遇到对应的风险。

徐年骏:

(上海兰迪律师事务所律师,台湾地区居民,经国家考试合格取得中国律师职业资格,自 2017 年便在两岸为游戏企业提供相关法律服务,包括游戏出海、投资融资、知产合规等,服务对象包括国内外头部知名游戏企业)
我自己是做律师职业,跟蛮多龙头游戏企业有出海合作。一般做单机化游戏转到手游游戏的时候,资料的储存是原本的个人端转到服务器端,这时候会涉及到数据安全和个人信息保护、隐私的问题,个人信息保护在欧美地区有相应的规定,去这些地方的时候要特别注意。
除此之外,消费方式从原本maiduan制变成内购制,包括要抽卡等等,就要看当地的相关法律,比如有没有涉及到日本的“景品法”。您刚才也提到游戏机制,包括在游戏中死亡有可能是永久消失的,需要特别注意可能会消失的物品是不是付费取得的。
于晓楠: 不会,付费产品不会消失。

高川:

(Unity中国高级技术经理,在游戏开发行业工作十余年,曾在 Gameloft , Glu 等公司任开发负责人,涉猎从手机到游戏主机等多种开发平台。在 Unity ,曾负责开发 UPR , Shader Analysis Suit AssetBundle 原生加密等项目。目前主要负责中国区社区技术支持,为客户提供引擎定制方案和源代码培训的相关工作)
我自己原来也是做游戏的,自认为也是硬核玩家,但是看完之后觉得你这个好硬啊。我们过去做游戏的时候会把硬核和高难度做区分,硬核更多的是艰深的机制和玩法,并不一定代表着非常复杂。在我看来咱们这款游戏如果做成手游,面临最大的问题是如何做减法。做得太简单没有挑战,做得太复杂,玩家可能会一步棋算三个小时,就拜拜了。
我看过的战棋里面能做的东西,你这里都做进去了,下一步需要考虑的是哪些东西是需要你们减掉的。好的游戏并不一定有非常非常多的内容,可能会把几个点做得非常好。咱们这个游戏可能想表达的东西非常多,但是移植到手游的时候可能要控制自己的表达欲,把里面最想表达的东西突出出来,其他过于分散玩家精力的东西去掉一些,这样也会提高你们整体的留存,同时并不会失去你们的风味。这是你们未来可能会遇到的设计上的难题,因为砍东西总是很难受的。
从技术上讲,刚才提到几个技术问题并不是非常少见的问题,如果有机会合作的话可以一起聊一聊你们性能方面的问题。
Logo

分享前沿Unity技术干货和开发经验,精彩的Unity活动和社区相关信息

更多推荐