51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2087|回复: 3
打印 上一主题 下一主题

[讨论] 补丁包体文件大小优化方案

[复制链接]
  • TA的每日心情
    无聊
    2024-7-12 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2017-6-21 13:01:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    背景

    目前项目根据研发计划稳步推进中,而制作过程也在不断新增内容,不过在打包时发现耗费在烘焙内容和打包内容上的时间正慢慢增加。

    联想到之前做端游测试期间,项目发布后如果有内容或配置上的修改,可以通过补丁方式更新获取,于是问题来了:VR项目的补丁怎么整?补丁包体大小是否有限制?

    方案1

    第一个问题在topic5702中已经得以解决,关键点在于“创建一个该游戏的发布版本以进行发布”、“要创建的新版本的名称”和“这个基于的发行版本”,如图所示:

    发布时记得填写新版本名称(即发布版本号),补丁制作基于发布版本号!如图所示:

    补丁已经打出来了,问题也跟着来了:补丁生成的.pak文件大小几乎等于整包发布时生成的.pak文件大小(大概2.23G)!!!!那么补丁的存在就没什么意义了。修改内容后直接更新出个整包文件得了~~

    方案2

    方案1显示满足不了补丁存在的意义,后来通过尝试修改部分蓝图或配置文件,在改动较小的前提下打出一个补丁,加以验证补丁包体中到底包含哪些内容。
    在同等配置的条件下,补丁大小和内容经过整包与散包对比,发现修改内容较少时打出的包体345M,包含Assets、BaseMaterials、Blueprints等11个文件内容,如图:

    虽然补丁包体大小从2G左右降到300M左右,但是这么一个小小改动居然产出300+M的补丁文件,不能忍!(这还不是最优方案,就不贴图了)

    方案3

    通过散包文件发现打进补丁中的有11个文件,而实际上我只对其中一个文件夹中的某个文件做了修改,为什么会把其他不相关的内容也打进补丁中呢?似乎、好像、貌似找到点切入点了:补丁中包含一些无用文件!!而且有的文件占用空间比较大(比如maps)。。

    前面废话了那么多,现在终于轮到“主角”登场了:Directories to never cook,如图所示:

    打包设置项中这块是对整包\补丁制作过程中,不相关文件夹剔除设定。那么实际在打包过程中只将改动的内容打进补丁中了!通过一个小补丁试了一下,补丁包体大小的确降到200K以内,如图所示:

    注:不过在修改内容较大的地方如修改maps文件时,补丁包体偏大是正常的(因为地图文件本身就是个大文件)

    结束语

    或许我尝试出的方案并不是最优方法,不过也解决了目前工作过程出现的问题。也希望更多的人加入VR游戏测试研究中,进一步完善现有的流程与方式~~

    不过我也在想既然可以剔除不相关的文件内容,那么为什么不能只打进修改的内容呢?

    Additional Asset Directories to cook,我尝试过只是解决了打包过程C++引用的文件而蓝图中未引用,导致包体内容缺失的问题。

    可能我的方向不对,没有找到正确的方法,希望大牛能够解决这个问题..

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2017-6-21 15:14:36 | 只看该作者
    这个和我们差不多,不过200k还是大了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2017-6-21 15:15:21 | 只看该作者
    今天想了下这种方法可行度太低了....自测过程可以修改某个文件夹中某个配置或资源容易更新补丁,但实际游戏项目每天改动量还是蛮大的,如果每个文件夹中都修改一个文件,那导致最终的结果就是不能剔除任一文件夹...
    高级设置项中“迭代cook:仅cook上次cook后改变的内容”,引擎中提供了这一项,为什么勾选后却打包失败就搞不懂了。
    上述方法仅供参考,仅供参考。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    4#
    发表于 2017-6-21 15:15:49 | 只看该作者
    我们一般是修改方法级别,然后推个补丁,利用java动态加载替换掉原来坏的方法。和游戏可能不一样。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 03:51 , Processed in 0.066919 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表