《魔兽世界》6.0为什么人物属性压缩势在必行?

时间:2014/09/15 17:03:23 编辑:Ocean

谈到《魔兽世界》全新6.0资料片的功能特色,除全新的要塞系统与背包系统优化之外,最大的亮点便是属性压缩的改革。

在2013暴雪嘉年华上的《魔兽世界》开发团队座谈会环节上,开发团队骨干在现场公布的每一项改动都能引来台下的无数掌声、尖叫和欢呼。命中、精准、招架、躲闪从装备属性中移除,同一件装备将根据角色当前的天赋专精转变属性等特色都十分令人期盼不已,而血量、伤害和属性的全面压缩更是其中的重中之重(>>传送门查看详情<<)。然而,暴雪究竟是出于什么目的进行这一数值方面的改动呢?


下面是一位NGA玩家的分析,他认为当前版本所面临的数据膨胀问题是最初的32位数据结构所无法解决的,因而必须采取措施来改变这种现状,相比于将原有的数据结构扩展到64位,暴雪选择了更为易行的在保留32位同时对游戏数据进行全面压缩的方式。

当前版本Boss血量已经受限于传统的数据结构。

有没有发现5.4的25h脑残吼和25h索克已经需要通过频繁转阶段+回血的方式来让他在场面上站的更久一些?

最后几个英雄模式BOSS:索克、黑索大爷、脑残吼的最大血量都被压在20e左右。

2147483647这个数字对于稍微学过点计算机编程的应该都不陌生——32位带符号整数的上限。

个人猜测最初制作wow的时候boss的血量数据类型即定义为32位的int(?2,147,483,648 to +2,147,483,647。脚男们的伤害治疗数据、BOSS的血量都是定义为32位整数,同类型数据方便运算。

CTM之前只有32位的wow.exe 由于当时属性数据并没有膨胀到今天的程度,21e的数据上限已经足够mop之前所有的数据处理了。

所以,这个问题留到了今天。

因为受限于当前版本的数据结构已经没有办法把boss血做得更多了,只能通过频繁的回血/转阶段来让boss看起来比较耐艹一点。

当年WLK的金币上限是214,748金36银47铜=2,147,483,647铜,打过英雄冰冠堡垒G团的应该都不陌生。H意志H异物一出,再加上橙斧三部曲老板什么的,超过21w,团长一个号已经装不下那时候全程的g了。

ctm后来解决了这个问题:

9月27日消息 大灾变中金币携带上限提升,玩家不用再担心金币超上限被系统吞掉的情况出现了。

现在的金币上限为214,748金 36银 47铜,可按以下方式推论:

WLK:32-bit integer: ?2,147,483,648 to +2,147,483,647

-- 转化为金币 214,748金 36银 46铜 (现在版本的金币上限)

CTM:64-bit integer: ?9,223,372,036,854,775,808 to +9,223,372,036,854,775,807

-- 转化为金币 922,337,203,685,477金 58银 07铜

这样的数字,除非出了什么碧油鸡,否则恐怕是没法再被突破了。

脚男在进化,BOSS也要跟着长胖,所以必须要解决这个问题。

接下来有两种选择,一是压缩属性,二是把boss血量/脚男输出治疗数据扩展到64位。

如果把数据扩展到64位,势必需要对整个wow整个数据库里所有的怪物/人物数据进行重构,由于Raid期间涉及大量高频率数据实时运算和传输问题。

直接把扩展数据长度到64位,带来的是数倍的服务器和客户端本地运算的负担。不像金钱数据这种运算处理传输频率远远低于伤害血量数据,扩展成64位,带来的额外负担对于服务器来说完全不可以接受。

于是,属性压缩便成了首选。

相关资讯