热更新的前置模块:AB管理器

2023-09-19 08:30:00

引言

本系列是《8年主程手把手打造Cocos独立游戏开发框架》,欢迎大家关注分享收藏订阅。

前面的文章给大家介绍了手敲Cocos独立游戏开发框架中常用到的UI管理器和资源管理器,为了减少包体的大小,我们需要引入热更新的模块,但是热更新的前提是把资源打成AssetBundle(简称AB),本文笔者给大家介绍一下AB和AB管理器。

本文源码和源工程在文末获取,小伙伴们自行前往。

什么是AB管理器?

AssetBundle(资源包)是Cocos游戏引擎中用于管理和打包资源的一种机制。使用AssetBundle可以优化游戏的内存使用,提高加载速度,并允许游戏开发人员将资源按需加载,以减小初始加载时间和减少内存占用。

AB管理器固然是管理众多AB资源的管理器。

AB管理器的主要作用和功能

AssetBundle(AB)管理器是一种用于管理和加载AssetBundle的工具,通常在游戏引擎中使用。其主要作用和功能包括:

  1. 资源加载与释放: AB管理器允许游戏在运行时动态加载AssetBundle中的资源,以及在不再需要时释放这些资源。这有助于减小游戏内存占用,提高性能。
  2. 异步加载: AB管理器通常支持异步加载,这意味着游戏可以继续运行而不会被资源加载阻塞。这对于确保游戏流畅性很重要。
  3. 资源依赖关系: AB管理器可以处理AssetBundle之间的依赖关系,确保在加载一个AssetBundle时,其所依赖的其他AssetBundle也会被正确加载。
  4. 资源缓存: AB管理器通常会在内存中维护一个资源缓存,以便在需要时快速访问已加载的资源,而不必重新加载。
  5. 资源热更新: AB管理器通常用于实现游戏的热更新功能,允许在不重新发布游戏的情况下更新游戏内容。
  6. 资源加载优化: AB管理器可以帮助优化资源加载顺序,确保在游戏运行时仅加载当前场景或关卡所需的资源,从而提高加载速度和节省内存。

总的来说,AB管理器是游戏引擎中的一个重要工具,用于有效地管理游戏中的资源,以提高性能、降低内存占用,并实现资源的动态加载和卸载。这对于大型游戏和需要频繁更新资源的游戏特别有用。不同的游戏引擎可能提供不同的AB管理器实现,但其基本功能通常是相似的。

构建AB管理器

1.声明AB管理器

声明AssetBundleManager,单例类。包含一个已经放置加载好的AssetBundle的Map。

2.加载AB方法

核心接口是cc.assetManager.loadBundle,用于加载AB。

3.卸载AB方法

核心接口是bundle.releaseAll(),用于卸载AB。保持良好的编码习惯,不用了就释放。

4.改造资源管理器

资源状态新增bundle,用于保存加载好的AB。

通过改造前面文章介绍的资源管理器,加载资源通过加载AB的方式。

同样的把释放资源的方法也改造一下。通过AB管理器释放AB。

5.准备测试资源

将演示用的预制体从resources移动到bundle下。

选择Prefab目录,将配置为Bundle开启,然后应用。这样Prefab下的预制体将会被打成AB。

6.编写测试代码

测试代码和前面资源管理器文章一样,没有变化。

7.测试结果

测试结果和前面资源管理器文章一样,没有变化。

还有更高级的AB管理器吗?

  1. 资源版本控制:为了确保游戏的稳定性和一致性,你可以实现资源版本控制。这包括为每个Asset Bundle 分配版本号,以及在热更新时验证版本。可以使用文件哈希或其他方法来管理版本控制。

  2. 资源依赖关系管理:当资源之间存在依赖关系时,确保正确加载和释放这些资源是至关重要的。你可以创建一个依赖图,以跟踪资源之间的依赖关系,并在加载或卸载时处理它们。

  3. 资源缓存策略:优化资源加载和内存使用的缓存策略是必要的。你可以实现LRU(Least Recently Used)或其他缓存算法来管理已加载的资源,以及决定何时释放不再使用的资源。

  4. 异步加载和并行加载:优化加载性能,使得游戏可以同时加载多个Asset Bundle 或资源,以减少加载时间。

  5. 热更新策略:实现更复杂的热更新策略,包括增量热更新、全量热更新、资源差分包等,以减少热更新的带宽和时间成本。

  6. 资源加密和安全性:保护你的资源不被非法访问或盗用,可以实现资源的加密和解密机制,以及安全校验机制。

  7. 资源分包和按需加载:将资源分成多个小的Asset Bundle,以便按需加载,减少初始加载时间和内存占用。

  8. 资源预加载管理:实现更复杂的资源预加载策略,可以根据玩家行为、游戏进度等动态地预加载资源,以提高玩家体验。

总结

本文的重点内容主要有以下几点,不知道小伙伴们是否已经理解:

AD:笔者已经上线的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家可以自行点击搜索体验。

感兴趣的小伙伴记得关注"亿元程序员"哦,一位有着8年游戏行业经验的主程。学习游戏开发不迷路。感谢您的关注,希望能给到您帮助, 也希望通过您能帮助到大家。

喜欢的可以点个、点个在看哦!请把该文章分享给你觉得有需要的其他小伙伴。谢谢。

更多推荐

基于时序分析及约束(1)-时序约束是什么?

首先回答标题的问题:时序约束是什么?简单来讲,时序约束就是你要告诉综合工具,你的标准是什么。综合工具应该如何根据你的标准来布线,以满足所以寄存器的时序要求。为什么要做时序约束?这里引用特权同学书中的话:“没有任何设计约束的工程,编译器工作的时候就如脱缰的野马,漫无目的且随意任性;但是,任何的设计过约束或者欠约束,都可能

打造本地紧密链接的开源社区——KCC@长沙开源读书会&openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合openKylin社区举办的KCC@长沙开源读书会&openKylin爱好者沙龙,在长沙圆满举办。这是KCC@长沙首次正式进入公众视野,开展开源交流活动,也是openKylin社区长沙首场线下沙龙。长沙地区及其周边的众多开源爱好者齐聚活动现场,聆听读书分享、参与开源话题讨论,实现1+1>

HAM高可用配置及故障切换

1.什么是MHAMHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可

RK3588修改eth0和eth1,对调这两个网卡设备的名称

1、以太网卡的名称一般是ethX(X可以是0,1,2,3…),一般我们的设备只有一个网卡,并且一般也不会改变它的网卡名称,所以不需要关注此问题,但是有一些设备有两三个网卡,有时候我们需要eth0是指定的硬件网卡设备,此时我们就需要人为干预一下,修改一下网卡的名称,使其满足我们的使用场景。2、在rk平台,假如你的两个网卡

蓝蓝设计提供地理信息系统GIS界面设计

北京蓝蓝设计(北京兰亭妙微科技有限公司)是一家专业的设计公司,致力于为客户打造卓越的用户体验和品牌价值。他们在地理信息系统(GIS)UI界面设计领域拥有丰富的经验和专业的设计团队。他们深入了解地理信息系统的特点和用户需求,通过用户研究和数据分析,精心设计出符合用户习惯和心理的GISUI界面。他们注重界面的布局和排版,确

软文发稿:软文发稿小技巧让你瞬间爆红

欢迎阅读本篇科普文章,我们将为您介绍软文发稿推广的小技巧,帮助您快速在网络平台上获得广泛关注。不仅仅是吸引眼球,我们还将分享实用的策略,帮助您提高软文的质量,提升传播效果。1.精准抓住受众要瞬间爆红,首先要明确目标受众。在撰写软文之前,进行市场调研是必不可少的步骤。了解受众的年龄、性别、兴趣爱好、需求等信息,有助于您编

深圳企业智荟康亮相深圳教装展,大力推动校园健康午休工程

2023年9月15日上午,第五届深圳教育装备博览会在深圳(福田)会展中心隆重开幕。本届教博会以“数字赋能·先行示范”为主题,这场盛会吸引了来自全国各地的众多教育界人士和专业观众。主办方介绍,本次展会将有效推动教育装备领域的技术革新和产业升级,将继续引领行业风向,加速促进产业融合,为各级各类教育机构和教育装备企业提供新技

Python爬虫技术系列-01请求响应获取-urllib库

Python爬虫技术系列-01请求响应获取-urllib库1urllib库1.1urllib概述1.1.1urllib简介1.1.2urllib的robotparser模块1.1.3request模块1.1.4Error1.1.5parse模块1.2urllib高级应用1.2.1Opener1.2.2代理设置1urll

2023常用的原型设计软件推荐

美观易操作的产品原型可以帮助团队构建积极的用户体验,帮助团队理解产品交互逻辑。因此,可互动、易修改的产品原型设计对产品的点击率和回访率具有重要意义。选择专业的产品原型设计工具,可以为团队和企业带来高效的产品设计体验。本文选择了四种产品原型设计工具,可以为实际工作带来方便。让我们看看。即时设计即时设计是国内首款专业级的U

SpringBoot

SpringBoot1.概念和介绍Spring用于简化Java程序的开发,而SpringBoot为了简化Spring程序开发。SpringBoot是Spring脚手架。可以快速完成Java程序的创建、提高开发效率等。SpringBoot的优点:快速集成框架,提供启动依赖的功能,可以集成各种框架。内置了运行容器、无需配置

酷开科技,让家庭娱乐生活充满激情

近几年,随着智能电视在家庭生活中的广泛应用,让人们的家庭娱乐生活有了更多的选择,但随之而来的是消费者的需求也在不断地升级,个性化、细分化的需求趋势越加凸显。而酷开科技正是抓住了这个机遇,不断赋能家庭娱乐生活场景,获得了更多消费者的青睐。与此同时,酷开科技凭借自身包容的开放生态体验,以及为消费者提供更丰富、更多元的内容,

热文推荐