设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

关于MV游戏模仿大型端游的资源预加载问题

查看数: 3911 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-6-28 10:54

正文摘要:

大家都知道MV网页版的弊病,就是老要出LOADING,每过一个图都可能弹一下,严重影响游玩体验。 因为MV的资源管理模式几乎就是用到再加载,其实就是边玩边加载图片,这样图片稍微加载慢一点就出LOADING了,玩玩就LOAD ...

回复

清澈淌漾 发表于 2024-4-28 19:05:16
玩家只能看到镜头里的东西,所谓预加载就是把资源放在镜头外面。
预加载主旨就是背地里偷偷加载资源
系统需要时刻监测玩家 下一个周期可能会调用的资源,看看哪些东西没加载粗回来。
比如在一个场景里,玩家以移动速度往前走,转身需要0.5秒
那么作为程序 你是能算出来每个周期玩家通过正常的手段会走到什么地方,然后把可能需要的东西加载,不需要的东西释放掉。

当然以上是3D游戏, 一个2D游戏合理规划资源 游戏本身不到1G的话 游戏启动把全部资源塞内存里都行
505681468 发表于 2024-4-28 17:30:12
本帖最后由 505681468 于 2024-4-28 17:31 编辑
泼墨漓江 发表于 2024-4-28 16:24
这个不算边缘的,图集+压缩纹理是移动端很常用的优化方式,texture packer也是一键式的图集打包软件,pixi ...


是很常见优化,包括选择更小体积的文件格式来减少加载时间、内存占用,预加载、缓存池来减少加载时间

为什么说他边缘,是因为在主流都是8~12G的情况下,1、2g 内存的手机都是安卓5.0了,甚至正常的软件都用不了
一,为了在 1g 内存这部分用户而写图像的加载、管理、渲染,做底层拓展兼容
mv 这部分是缺失的,pixi 支持图集,mv 也支持,但是打包图集的管理流程、UI 的加载使用, mv 是没有的
二,像兄弟说的,bitmap 类就难受了
虽然说把文件格式兼容到 mv texture 里面就能给 gpu 用了,但是那是过 shader 的
当然了,普通开发者也没这个优化需求就是了
三,相比于给 rm 做底层兼容拓展,可能直接用 pixi 自己写个引擎可能会更快

只能说又一个5年了,看看 rm 对 pixi 有没有新一代的支持吧
小秋橙 发表于 2024-4-28 16:44:37
对于素材加载我确实没什么好的想法,隔壁 h5mota.com 的做法是:
1. 背景音乐懒加载,声效、图片、动画在启动时加载
2. tileset根据使用情况在游戏发布时用自动化工具把没用到的块都p成透明的,这样png文件大小就小多了(但是RGBA位图还是一样大?)

RMMV/MZ的话我个人习惯把地图文件在启动时一次加载完,一来第一时间发现地图文件缺失问题,二来省得反复切换地图都要重新加载一遍(连带还要重新处理一遍note和meta)
泼墨漓江 发表于 2024-4-28 16:24:20
本帖最后由 泼墨漓江 于 2024-4-28 16:31 编辑

这个不算边缘的,图集+压缩纹理是移动端很常用的优化方式,texture packer也是一键式的图集打包软件,pixi自己也有良好的图集支持,压缩纹理的上传在webgl上其实也是一键式的,只是需要读下文件头补充下信息,这块pixi没做,离能用目测只有“接入自定义ktx后解析器”这一步了。如果这步能搞定,整个流程就基本通畅了。不过rm喜欢用blt拷图片到自己的canvas上,手动绘图,这点可能压缩纹理会不支持。

也观望下有没有其他同好的分享吧。

纹理压缩真的很香,在画质损失不大的情况下,图片大小能压缩到原来的1/10,加载时间也只有原来的1/8,在手机这个内存吃紧、性能有限的环境下,纹理压缩技术对游戏体验提升非常高,这里能做成性价比感觉还是很高的,相比其他优化手段。
505681468 发表于 2024-4-28 14:04:34
建议放弃这么边缘的优化
重写底层支持,重写图形渲染逻辑,重写图形管理
这样的话,其实可以放弃兼容,直接做引擎的
泼墨漓江 发表于 2024-4-28 13:18:21
现在2024年,astc压缩纹理格式在移动端支持率95%以上,建议优先考虑astc,压缩率和质量相比其他几个格式也好不少。

麻烦的点主要在于pixijs原生的压缩纹理文件解析库很落后(mv/mz版本),mv/mz版本使用的pixijs均不支持压缩纹理格式的加载,较新版本v7.4.1版本仅支持astc 4×4规格的压缩纹理(一般6×6或者8×8级别的压缩规格文件大小更小)。

最新版本pixijs v8,虽然支持了各种规格的astc压缩纹理加载,但是底层架构大改,和rm生态兼容性很差。

如果这块解决了,那么推荐使用texture packer把图片整合并压缩,再在代码层面做一些架构,就能愉快的使用低开销高性能的压缩纹理,免去冗长的加载和高额的内存占用了。

rm上这块落实得太少,个人正在研究中,看下后面能不能出什么好用的插件
Angie丨 发表于 2023-10-14 07:12:29
本帖最后由 Angie丨 于 2023-10-14 07:13 编辑

大佬,你这个问题解决了吗?
地图越大,事件越多,就感觉有点卡顿了,特别是切换场景的时候,要等很久,性能差点的设备会直接闪退吧
lisliz 发表于 2019-6-28 19:15:58
本帖最后由 lisliz 于 2019-6-28 19:18 编辑
dearake 发表于 2019-6-28 17:20
预载入不一定需要载入到内存 预载入到本地硬盘也是预载 当年flash页游一堆这样的
只不过问题在于这些缓存有 ...


哦哦,感谢指导,目前游戏里部分资源是【预载入到本地硬盘】的,部分资源是【预载入内存】的。

立绘,se,me,bgm这种不会卡MV场景加载的都会预载到硬盘。

但是tilesets和光影,事件贴图,菜单UI图片这种,会引起loading问题的资源就直接载入内存。

之前这些资源到硬盘中还是会引发一瞬间的LOADING画面让人很不爽,所以就改为内存预载了。
shitake 发表于 2019-6-28 17:20:40
预载入不一定需要载入到内存 预载入到本地硬盘也是预载 当年flash页游一堆这样的
只不过问题在于这些缓存有大小限制 比如html5的application cache 就是5mb
还有玄学办法让他们下载离线资源包【我也很好奇这是如何实现的 但是当年确实遇到过这样的flash页游
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-27 21:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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