游戏体验优化:懒加载游戏资源与后台预加载游戏资源

这两天上头说游戏里打开界面比较慢,让程序优化一波。我看了下,现在项目里的界面是在每次打开的时候都把这个界面需要用到的资源都加载好才打开界面。但是有时候会有一些界面,这些界面中某些部分不是一打开界面就需要展示给玩家的,那么这写还没展示给玩家的界面部分所需要的资源并不需要在打开界面之前就加载好,这会在打开界面的时候浪费很多时间。在界面中有这些并不需要立刻展示给玩家的部分并且这部分占有的资源需要加载比较久时,可以采用懒加载方式。

懒加载

即当真正需要用到这些资源的时候才去加载这些资源,并且可以传入一个回调当加载好这些资源之后通过这个回调执行需要这些资源的操作。而在加载好这些资源之前可以先向用户展示一个loading界面(就是玩家常在游戏中看到的类似屏幕中间有一个圈圈在一直转,或者说右上角有个loading字样之类的)。这样的话,每次打开界面只加载需要立刻就用上的资源就可以了。

后台预加载

在前面的懒加载中,打开界面的时候只加载需要立刻用上的资源,其他的也是当需要用上的时候才加载,但是加载是需要时间的,即时加载时间很短,短到甚至只需要0.2~0.3秒左右,当玩家点开尚未加载资源的界面部分时还是会看到加载资源时的loading界面,而通常在一个界面中玩家是会很大可能浏览到界面的全部部分的,如果每次展示没加载到资源的界面部分多显示一次loading界面,会不会影响到用户体验呢。为了解决这个问题,可以采用后台预加载资源的方法。后台预加载资源——在用户感受不到的情况下在后台悄悄地把界面需要的资源加载上。可以采取的一种做法就是,当用户打开界面时,只加载需要立刻用上的界面资源,然后打开界面,当打开界面之后,再在后台先开始加载这个界面需要用上的其他资源,当用户打开其他未展示的界面部分时就不用花时间加载资源了,因为已经在后台预加载好了。而用户是感受不到这个后台预加载的过程的,用户只会知道打开这个界面很快,然后这个界面的其他部分也能立刻就打开。

结果

假设在打开界面时加载全部资源用了2秒,即打开界面用了2秒,如果用了懒加载+后台预加载方式,只需要加载用户需要立即用上的资源,而这写资源通常是很少的,经验上来说最少可以把打开界面的时间缩短到0.5秒以下。

猜你喜欢

转载自www.cnblogs.com/winsons/p/12805956.html