包体的入门到精通

包体的入门到精通前言 本人在 龙之谷 负责资源管理工作一年多 积累相当多的打包经验 经验都写成博客 所以写一个总结篇 整理一下思路和感悟 版本管理 版本管理 要从多平台 多渠道 多服务器 多语言等维度进行版本管理 功能拆分 多平台 一般是 3 个平台 还有主机平台 如下 iOS Android PC 多渠道 一般是上线前夕需要部署到正式服上的模块

大家好,我是讯享网,很高兴认识大家。

前言

本人在《龙之谷》负责资源管理工作一年多,积累相当多的打包经验。经验都写成博客,所以写一个总结篇,整理一下思路和感悟。

版本管理

版本管理,要从多平台、多渠道、多服务器、多语言等维度进行版本管理。

功能拆分

多平台,一般是3个平台(还有主机平台),如下

  1. iOS
  2. Android
  3. PC

多渠道,一般是上线前夕需要部署到正式服上的模块,例如以下

  1. huiwei
  2. xiaomi
  3. oppo
  4. ...

多服务器,一般游戏依据需要,通用的如下

  1. 内网测试服(包括私人测试服)
  2. 外网测试服(用于接入外部渠道等需要的网络)
  3. 商务服(用于外部推广使用)
  4. 审核服(用于版号,ios等审核)
  5. 准正式服(跟正式服基本一致,一般比正式服提前一个版本)
  6. 正式服(对玩家开放的服务器)
  7. 特殊服

实际上游戏运行时通过渠道、平台、版本等包体配置,来指定服务器请求服务器信息。

多语言,这个会根据需求,进行字符串、图片、语音等的替换。常用的方式是通过打包和资源导出时确定需要添加到当前渠道的语言包。

  1. 中文
  2. 繁体
  3. English
  4. ...

多地区,如果全球发行的游戏,一般还要兼顾地区的多渠道(一般一个海外地区就一个渠道),笔者将其作为一个渠道处理。

CDN目录结构

对应上面的逻辑,我们CDN目录结构设计如下

--InTest --Default --IOS --Android --PC --Test --OutTest --Default --Test --Ready --Release --Default --IOS 一般只有一个IOS平台 --PC --huawei 一般渠道都只有Android --Android --xiaomi --Android --Japanese 一般多地区,是跟渠道并行一个层级 --IOS --Android --PC 

讯享网

上述只是资源管理部分,在很多情况下,服务器很可能是同一台服务器,比如常见的iOS和Android数据互通。这样是根据游戏启动,游戏包体对应配置到服务端获取对应服务器地址,再连接对应服务器。

CDN文件目录

在平台之下是多版本的资源,会得到如下的目录结构


讯享网

讯享网--PC 平台 --IOS --Android -- 当前版本的资源目录,包含所有资源 --Assets ab导出的目录 --xxx1.ab ab文件 --xxx2.ab --xxx3.ab --xxx4.ab --Assets ab的manifast文件 --Bytes 二进制配置文件目录 --xxx1.bytes 二进制文件(加密) -- 只导出比增加和修改的文件 --Assets --xxx1.ab 修改的保留 ...xxx2.ab 相同的不放人目录 --xxx5.ab 增加的保留 --Assets -- -- -- 换包需要新启midVer,会全部重新导出一遍资源 -- --.txt 版本文件表,包含所有文件信息 --.txt --.txt --.txt --.txt --version.txt 当前版本号 

上面的表示就一目了然了

所有,管理维度依次是——服务器类型=》渠道=》平台=》版本

Git管理

应对上述的复杂情况,Git管理目前已经成为一个主流。

在这里插入图片描述

  1. 项目中最好只有一条主开发分支线,多服务器、多渠道、多语言、多平台的功能都被包含,关键节点拉出分支固定节点内容
  2. 要发布一个渠道,从开发主分支拉出分支作为xx渠道分支,导出package
  3. 热更xx渠道,从xx渠道分支拉出x.x.1版本,提交内容打patch,再从x.x.1 拉出x.x.2提交内容打patch
  4. xx渠道换包,将xx渠道合并回主开发分支,重复第2步

打包和资源文件

大包、小包和资源文件

  1. 美术资源
  2. 音效资源
  3. 配置文件
  4. 脚本代码

不可热更资源

  1. 需编译代码
  2. SDK,第三方库等
  3. 平台相关环境

打包,就是指将不可热更资源依据平台环境,导出成平台安装包(iOS,Android,PC),
资源导出,就是将可热更资源导出成平台相关的资源文件,进安装包或热更。

打包,分大包小包
大包指平台安装包包含所有的资源文件,一般包体非常大,iOS平台会要求使用大包。
小包指平台安装包只包含少量必要资源文件,其他资源文件通过热更下载的方式,一般Android、PC平台使用。

自动化Jenkins系统

自动化打包和资源导出,一般依赖Jenkins系统
由上文,我们在多渠道、多平台、多服务器三个大维度,每个维度上还有版本维度。然后游戏工程一般非常大,如何解决n * n * n * n的需求呢?

笔者设计了以3个平台(iOS,Android,Pc)建立三个游戏工程目录,通过Git的快速切换分支功能,实现一键式自动化打包热更

  1. 基于指定分支拉出渠道分支,指定版本号,然后对三个平台打包和资源导出功能
  2. 基于指定分支(热更分支),导出热更资源的功能
打包
小讯
上一篇 2025-03-13 12:50
下一篇 2025-01-10 11:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/28904.html