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

《乱世王者》是由腾讯天美工作室出品的一款战争策略手游,2017 年 8 月开启测试,数天之内便取得了 App Store 中国区畅销榜前三的成绩,充分体现了市场、玩家对于这款游戏的认可。

在尊重和传承经典 SLG 玩法的前提下,游戏做出了不少突破:游戏构建了一个大世界,为玩家呈现更加真实、热点的游戏环境和生态;游戏融入了极具乐趣的养成模式,使得游戏策略性更强;游戏内加入了如 AR 寻宝玩法、 自定义头像等酷炫新玩法。

6 月 22 日,来自腾讯的游戏高级工程师肖程祺受邀出席了 Cocos 上海沙龙,向开发者分享了《乱世王者》的深度优化方案,包括《乱世王者》项目中地形处理和优化思路,深入讲解了游戏针对纹理内存优化的解决方案,并分享了项目对引擎渲染层所做的一些优化。

肖程祺

 

在获得程祺同意后,Cocos 将其优化方案整理成文,同更多开发者进行分享,具体内容如下:

 

《乱世王者》深度优化方案分享

腾讯 肖程祺

 

《乱世王者》是基于 Cocos2d-x 开发的一款战争策略类游戏,需要在游戏玩法创新的同时,在美术品质和性能方面也做出突破。

 

一、SLG 地图的微创新和优

美术上想要增加细节表现力,让地形的细节更加丰富,同时需要增加 3D 透视的感觉。

实现成果:

 

1、丰富的细节

 

地形细节丰富的代价:

资源量膨胀,地形纹理是原来的5倍。

地形类型新增:沙漠,雪地,每个地形的变化增加。

tile 数量从 100 块左右提升到 500 多块。

渲染压力提升,渲染层数从 2 层变 5 层,拖动地图的时候重新组织数据的开销增加。

 

面临的问题有:

内存增长:纹理扩大了 5 倍

  • 地图层数增加后,加载和拖动地图更新的效率成倍降低
  • 贴图数量增加后,需要自己去实现 batch

 

我们的优化方案:

(1)提升贴图的利用率,减少地图纹理的内存

重新排列 tile,贴图利用率从 50%提升到 85%

 效果:

5 张贴图最终变成 3 张

 

(2)建立更高效的数据组织,提升加载效率

地图数据离线处理后,以 protobuff 的数据格式存储,并使用 zstd 无损压缩进行处理,加载速度和大小都得到保证。

(3)合并地图批次,减少不必要的顶点数据

每一层地图的都根据 TextureID 排序后绘制,由于顶点和 UV 数据已经存储在 VBO 里面,只需要根据裁剪结果修改 indexbuffer 即可。5 层一共 3 张贴图,意味着 drawcall 数量不会超过 15 个。

 

2、3D 透视关系效果   

 (1)处理3D透视关系

  • 场景用 3D 相机绘制
  • 地图上的物体“站”起来

 

所有物件绕x轴旋转至垂直于摄像机的fov中线的角度

 

(2)解决大物件的视角偏差

边缘位移:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值