起因是在油管上看到一个外国博主花了两个月尝试把 WOW 移植成网页游戏,并发了个演示视频( A3MUzq_AMj0 ),激起了我的兴趣。由于他没开源,于是我也抱着学习目的,开始了自己的尝试。
过程就不再赘述了,无非就是解包,拿到模型,贴图,然后再塞进 web 里。目前的阶段性结论是,基本原版游戏里的东西大都能实现,比如任务系统,战斗,装备,职业,种族等等。
但也遇到两个比较棘手的问题,1 是游戏容量,2 是浏览器的内存占用。先说第 1 条,我尝试把整个东部王国的所有城市,地形,建筑都解出来,发现光模型+贴图+碰撞等就有 1GB 左右(最大头是贴图),这对端游来说很正常,但如果要放到线上网页版,下这么大的包肯定不现实。
后来尝试各种无论压缩( Gzip 等),也没办法小到可以接受的程度,总之一次性下载大包是不现实的。那么就面临两个选择:1.读条加载地图。2.随着玩家移动动态加载。WOW 一个比较大的魅力就是无缝地图(除了副本等),变成走几步就读条加载地图感觉体验有点差。所以 2 号方案是一个目前来看比较好的选项,游戏一开始只加载玩家所在区域方圆 XX 范围内的地图、模型、贴图。随着玩家不断移动,动态下载+加载其他区域。这也同时把浏览器内存占用的问题解决了一些。
但依然有个缺点,就是当玩家不断移动的时候,也是需要不断跑流量的。为了尽可能节约流量,还有一个办法是把容量最大头的贴图都改成 webp 格式,有损压缩一遍。
研究到这个阶段,就到此为止了。等油管大佬开源了,我会再下载研究一下他是怎么解决的。
说了这么多,下面来个贴图看一下运行效果吧:

顺便放个演示: https://jamfer.com/wowdemo
PS:演示只是展示项目可行性的,以一次性加载整图的方式运行。服务器小水管,目前只加载了压缩后的艾尔文森林(不包括暴风城)
过程就不再赘述了,无非就是解包,拿到模型,贴图,然后再塞进 web 里。目前的阶段性结论是,基本原版游戏里的东西大都能实现,比如任务系统,战斗,装备,职业,种族等等。
但也遇到两个比较棘手的问题,1 是游戏容量,2 是浏览器的内存占用。先说第 1 条,我尝试把整个东部王国的所有城市,地形,建筑都解出来,发现光模型+贴图+碰撞等就有 1GB 左右(最大头是贴图),这对端游来说很正常,但如果要放到线上网页版,下这么大的包肯定不现实。
后来尝试各种无论压缩( Gzip 等),也没办法小到可以接受的程度,总之一次性下载大包是不现实的。那么就面临两个选择:1.读条加载地图。2.随着玩家移动动态加载。WOW 一个比较大的魅力就是无缝地图(除了副本等),变成走几步就读条加载地图感觉体验有点差。所以 2 号方案是一个目前来看比较好的选项,游戏一开始只加载玩家所在区域方圆 XX 范围内的地图、模型、贴图。随着玩家不断移动,动态下载+加载其他区域。这也同时把浏览器内存占用的问题解决了一些。
但依然有个缺点,就是当玩家不断移动的时候,也是需要不断跑流量的。为了尽可能节约流量,还有一个办法是把容量最大头的贴图都改成 webp 格式,有损压缩一遍。
研究到这个阶段,就到此为止了。等油管大佬开源了,我会再下载研究一下他是怎么解决的。
说了这么多,下面来个贴图看一下运行效果吧:

顺便放个演示: https://jamfer.com/wowdemo
PS:演示只是展示项目可行性的,以一次性加载整图的方式运行。服务器小水管,目前只加载了压缩后的艾尔文森林(不包括暴风城)