查看原文
其他

模拟佳作《江湖医馆》专访:用 Cocos Creator 开发原生游戏

COCOS 2022-06-10

《江湖医馆》是一款由成都瓦瑞尔科技有限公司采用 Cocos Creator 开发,成都淌盈科技有限公司发行的原生手游。


年前武汉刚传来新冠肺炎的消息,作为医馆题材的游戏,《江湖医馆》便响应号召,给游戏中的医生和员工也戴上了口罩营业。不仅如此,还与发行公司一起联合推出了“看广告献爱心”活动,将玩家在活动中看广告收益的一部分直接捐助给湖北灾区。


《江湖医馆》各方面的成绩也都非常亮眼,在 APP Store 国内模拟游戏排行榜中位列第 1,免费总榜第 8 ,评分高达 4.9,广受玩家喜爱。



游戏背景设定在江湖中,玩家经营一家医馆,用“中医”为来往的各路武林大侠及百姓进行医治。



游戏的机制设置也非常合理,玩家只需要点点点就能获得大量金币,建设自己的医馆。同时又具有一定的策略性,需要思考如何才能够让自己的医馆赚钱,有好的发展。玩法简单,却令人欲罢不能。



虽然模拟经营类型的游戏层出不穷,但从目前能够突围而出的作品来看,当下模拟经营类游戏最能吸引玩家的点是--题材。《江湖医馆》是一款体验医馆生活的经营类手游,中医加上古风的题材,正好击中了当下年轻人的佛系态度及武侠情怀。


今日我们有幸邀请到《江湖医馆》游戏制作团队,一起来聊聊这款火爆游戏背后的故事~








 1.  Hi,能否先为我们介绍下贵公司呢?

我们公司是在 2018 年 9 月份成立,名字叫成都瓦瑞尔科技有限公司,刚成立的时候,只有 3 个人,随着公司业务的发展和壮大,目前我们公司已经有 20 个小伙伴了。


 2.  请问开发的人员规模和研发占比是怎样的呢?

《江湖医馆》相对于我们公司之前做的其他游戏项目来说,功能模块更多,玩法设计上也需要花心思,所以团队资源更多的倾斜到了这个项目组。


当时把整个团队一半的资源分配给了《江湖医馆》项目组,不过借助 Cocos Creator 这款成熟的引擎开发原生游戏,各方面的成本都降低了许多。


 3.  为什么会想做一款体验医馆生活的手游呢?

从市场方面上来说,模拟经营类游戏用户门槛低,用户黏着度高;另外玩家在游戏的同时,一般渴望获得更多对自己有帮助的内容,社会大众一直比较重视中医养生,所以做中医题材容易引起共鸣。


而从情怀方面来说,我们的团队大多数是 80 后和 90 后,从小就深受武侠影视剧影响,选择中医题材,美术风格上我们就选择了走古风武侠类。


 4.  如何让不懂中医的玩家也能感受乐趣呢?
我们还原了中医的就诊方式,且基本上不需要什么操作,所以对于没有医学基础的玩家也能正常游戏,感受中医魅力。

另外研发团队的态度就是尊重中医理论,我们也是一边学习一边开发,做到每一个病症,每一种药材,每一份丹药都有史可考,有料可查,经得住推敲。


对医学感兴趣的玩家动动手,查查资料,自己发现丹药配方,并在游戏中获得验证,就会是件很有成就感的事。



 5.  在开发的过程中有遇到哪些问题吗?


当有 20 个左右的 NPC 在场景中移动时,在一些低端机上帧率很低,还会导致手机发烫。

通过各种实验方案及排除法手段,发现是因为场景中 NPC 过多,若直接减少 NPC 的数量,会对游戏体验有很大影响。因此我们选择了这种解决方案:把之前的每帧刷新 zIndex 改为了每 15 帧刷新一次。优化结果很显著,且对游戏体验几乎没有影响。


在进行版本 1.0.1 热更新后,下个版本需要强制更新整包,但玩家安装新包之后,由于没有清除上个版本的热更资源,导致玩家还是使用 1.0.1 热更新代码和资源。

问题出在进行过热更的客户端,本地缓存了热更的代码和资源,在安装新包之后,仍然使用了这个缓存的代码和资源。


于是我们就在 main.js 文件中添加了一个段逻辑,去判断是否需要清除本地的热更新缓存资源,这样我们之前已经进行过热更新的玩家就可以正常进入游戏,并且使用最新的代码和资源;逻辑流程主要是在本地通过设置的 key 值读取版本号,判断这个版本号是否存在,如果存在就需要清除一次缓存并更新本地存储的版本号,反之则不做任何处理。


代码如下:

在打开一些功能界面,如游戏中的病症图鉴功能,即使我们已经对 ScrollView 进行了优化,使用了循环列表,但在低端机上打开界面时,仍然会有明显的卡顿感受。

经过测试,我们发现是由于游戏的 drawcall 指数猛增,导致了游戏的短暂卡顿。


即使当我们已经对 ScrollView 进行了优化,不会因为数据过多而一次性创建几十个结点,但是功能界面的设计上也需要我们至少加载 12 个结点,这已经足以让低端机性能受影响。


我们尝试着使用分帧创建结点的方案,也就是之前一帧需要创建 12 个结点,性能压力比较大,现在改成了每 n 帧只创建一个结点,将性能消耗分摊,发现优化结果非常理想。


NPC 移动需要避开家具以及一些障碍物,移动使用了 A* 寻路方案,改动场景中的障碍物及各类家具的位置比较频繁,并且这些改动会影响 NPC 的 A* 寻路功能,每次调整位置需要花费比较多的时间去调整 UI 位置以及填写地图数据。

由于对 Cocos Creator 编辑器相关的 API 不是太熟悉,综合开发时间考虑,我们并没有做一个真正意义上的编辑器拓展功能,而是新建了一个场景。


写了一个在运行时,可以手动标记每一个格子的信息,这样的操作非常直观,编辑完后会输出一个用于 A* 寻路的 json 数据表,这个功能为我们后续频繁的修改场景布局提供了很大的便利。


 6.   Creator 在原生游戏画面的表现力如何?

在开发 2D 项目上,Cocos Creator 开发出来的项目品质并不比 Unity 差,并且包体还能小很多;在我们的游戏玩法中,很多地方需要给玩家代入感,比如问诊,抓药等过程的表现。


Cocos Creator 引擎提供了许多简单实用的动画函数,让我们的策划同学更多的去考虑一些玩法表现该如何设计,而不是过多的考虑实现的难度了。


 7.  游戏后期还有哪些规划呢?

年前武汉刚传来新冠肺炎的消息,作为医馆题材的游戏,我们也想出一份力,战胜新型冠状病毒。


我们推出的“看广告献爱心”活动,玩家热情很高,只用了 3 天就完成了原定 15 天的献爱心计划,搞得策划和运营同学临时加码,捐款金额直接翻了 4 倍。(笑)



后期我们也还会继续优化用户体验:


  • 增加背包系统,使得满地的道具得到整理,操作更加便捷;

  • 增加激活码功能,可以向玩家发放小福利了;

  • 加强游戏内部各系统的关联,以后玩家可以从剧情、信件中获得丹药配方,方便佛系玩家;

  • 增加更多具有收藏价值的信件和更多高级的丹药,增加中国特色的清明节皮肤。


 8.  选择Cocos引擎,您有哪些话想说呢?

目前我们团队已经使用 Cocos 引擎开发过多款项目了。


从团队培养和产品优势上来看,Cocos 开发的项目包体更小,上手快,官网文档全面,和 Unity 操作理念相似,这让很多只有 Unity 开发经验的团队转型更快了;最重要的一点,也是我们非常看重的,能一键发布很多主流平台,我们曾经有使用过 Unity,对比之下发现 Cocos Creator 的引擎界面和操作习惯能让我们的团队尽快上手,我们也就果断选择了它。


目前发现的不足主要有引擎版本升级不太稳定,偶尔会有一些事件或者图片引用关系丢失。


另外一点其实并不是不足,只是对于 Cocos Creator 的一个期许。就是希望 Cocos Creator 在未来的设计中能够直接在编辑器中运行游戏,并且场景中的结点信息能实时变化,这样更加方便于开发者的开发调试工作。


 


在此 Cocos 想先感谢以上为我们提出的宝贵意见。


Creator 是一个非常复杂,并且要抹平很多平台差异的引擎,确实我们在新版本中也比较难完美避免 bug 的引入。


细节是魔鬼,但也是 Creator 的根基,我们会继续在效率和稳定中尽量平衡,为维护高质量的跨平台游戏引擎这个长期目标而努力。


升级的兼容性方面,我们也一直很重视。除了 API 的兼容,如果引擎有行为上的差异,我们都会尽量在项目中自动进行适配,确保升级后的逻辑和表现不变。否则也会在版本发布时提供相应说明。


关于引用关系丢失,在测试版比较容易出现,正式版似乎没有收到过同类反馈,如果有的话我们也会紧急发布新版本进行修复的哦。如果后续还有类似的情况,欢迎在论坛吐槽,我们会高优先级改进。


另外关于对 Cocos Creator 期许,我们不得不承认,内嵌的预览调试确实是 Creator 的一个短板。


我们已经在 Roadmap 中加入了对应的卡片,https://trello.com/c/AF96BdiL。负责人 Jare 也表示,争取今年实现。




最后,非常感谢瓦瑞尔科技有限公司接受我们的专访,也祝《江湖医馆》能够取得更棒的成绩!


Cocos Creator 2.3.1 Preview 已发布,更新说明和下载地址请点击阅读原文查看哦也欢迎小伙伴们继续通过论坛、GitHub、Cocos 企业服务等渠道向我们提交使用反馈!我们希望以这样积极的态度让我们彼此之间的交流形成良好循环,以便更好地打磨产品。


更多精彩推荐
原生 3D 超休闲游戏《弹无虚发》是如何炼成的?3D 小游戏《欢乐贪吃龙》关键技术盘点 
我打辅助!安利一款不错的游戏数据工具
《快上车》3D 技术实现方案

畅销 SLG《乱世王者》深度优化方案

3D小游戏《快上车》技术分享

极限开发创作笔记

竞技对抗小游戏《单挑篮球》开发历程 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存