第三十八期 新纪元青铜
发布日期:2019年7月28日
游戏运作文件
Music
大家好,这里是深夜数据整理节目肥猫池塘的第三十八期
我是因为缅怀易恒太牺牲而落下眼泪的卖鱼强
大家有留意过你们的地牢与战斗机文件夹的容量大小吗?
就国服而言就有将近18G,韩服也不甘示弱保有15G之大
在很多人眼中看来一个2D游戏不应该有这么大的容量,实际上这个是一个错误的看法,2D游戏因为需要用到大量独立的png图片去保存其动画信息的缘故,实际上只要分辨率高到一定程度所需要的空间量比起某些大型3d游戏还要恐怖,例如去年年初时候推出的帝国时代1决定版,游戏内的图像内容实际上是5套民族+通用的地图集,但是作为一个纯2d游戏还是占用了17.43GB空间之多,在即将到来的十月的二代决定版保守估计要占用超过30G空间,尽管和一代决定版一样也是一个纯正的2d游戏
觉得3d游戏比2d游戏大的缘故是因为步入高分辨率时代后,纯正2d游戏的没落,3d游戏的崛起,电脑配置的飞速发展让高清贴图的应用和更加宏大丰富的世界和内容的构建变得可能,相比之下纯粹的2d游戏因为本身局限性导致难以发挥其优势,导致真正的2d游戏大作太少让人产生了错觉
dnf作为一个运营了14年的2d游戏拥有15G之大的体量完全就是不奇怪的
但是虽然说2d游戏庞大不奇怪,但是这不意味着dnf的容量就是正常的
实际上在硬件飞速发展的时期,因为dnf本身定位不需要太高端的配置的缘故,大量采用了铺张浪费的手段去制作游戏,因为性能过剩
但是在现在这种情况下似乎尝到了当初太浪而种下的恶果了
dnf的客户端到底放了什么?今晚就来一探究竟
游戏运作文件
就是以Script.pvf和DNF.exe为代表的,支撑整个游戏形成可执行程序的文件集
Script.pvf就是运行游戏必须的脚本文件
里面记载了dnf里面所有的脚本数据,包括avatar部件、动画、技能判定、物品等内容
而dnf.exe就是执行这堆脚本的程序集
一般来说都会控制在300M上下
必须部件
不是游戏本身的内容,但是运行游戏是必须有的部件
诸如类似系统运作时生成的日记文件,游戏需要用到的字体文件,反作弊程序组件等,这个韩服是50m上下
国服这个部分占用了2.5G左右的内容,原因其实很简单,国服花费了500M的容量制作了一个国服专用的登录程序,里面包括了各种ui、动画和组件等内容,而剩下的2G就是TP的内容了
这个是国服比其他服务器大很多的最重要的原因
Video
游戏目录下的video文件夹存放了在游戏内部播放的avi文件
占用空间量是2G上下
实际上这个文件夹里面很多内容都是废弃的文件,旧版本角色的技能演示这些视频数据统统都是放在这里的,现在的技能演示使用了即时演算
除此之外,raid相关的动画以及创建角色时的动态立绘都是这里面的文件
SoundPacks
就是游戏里面各种各样的音效的存放路径
角色的技能配音,怪物的喊声,地下城内环境声音等都存放在这里
约使用550m上下
Music
就是游戏里所播放的音乐了
占用了650m上下的空间
dnf的音乐你可以粗略地理解成1M音乐就是一分钟的音乐了,而dnf大部分的音乐都是一分半上下的
Replay
dnf的音乐你可以粗略地理解成1M音乐就是一分钟的音乐了,而dnf大部分的音乐都是一分半上下的
Replay
回放录像
虽然说是回放录像,实际上目前角色的技能演示,角色的pkc连段简介,角色的创建界面的动态图等都是以这个形式存放的
约300M上下
Imagepack2
这个就是全游戏最大最核心的内容,就是游戏里的图像的存放
这个文件夹里面的内容需要好好地分开说了,实际上大概可以分成以下内容:
光环特效
就是imagepack2最开始的,中间有challenge2nd和common、common_aura等文件集
约200M上下
国服这里凭空比韩服多了100m,原因下面会说
challenge2nd其实就是角色的pkc光环要用到的文件,而common_aura就是光环文件,其他的也是天空套的特效那些所有角色都能用到的文件,可以可以理解为这堆东西存放的是角色的光环文件就好
技能特效
角色的技能的特效文件,文件名里带有*职业名*_effect的文件就是了
角色放技能时候的boomboomboom就是这里面的内容,还有二觉技能时的动态立绘
魔枪士134M,格斗家95M,枪剑士185M,神枪手95M,守护者161M,魔法师364M,圣职者250M,鬼剑士311M,暗夜使者94M
总计1.7G上下
格斗家和神枪手这些低碳环保的职业特效是最理想的大小了,别忘了这是男和女的合在一起的,尽管如此还是连只有男性的枪剑士的一半都不到
而鬼剑士和魔法师因为混合了大转移后期的职业所以急剧膨胀..
纸娃娃
文件名里带有*职业名*_equipment的文件就是纸娃娃文件
所谓的纸娃娃就是指通过叠加多个部位形成完整的角色,也就是所谓的时装以及武器
魔枪士178M,男格斗146M,女格斗158M,枪剑士95M,女枪手128M,男枪手218M,守护者155M,男法师143M,女法师158M,女大叔144M,男大叔303M,女鬼剑222M,男鬼剑291M,黑妹162M
总计2.5G上下
因为国服的时装全服务器最多,而且国服大量专有时装都只是保持了v4形态存放,所以国服可以算到3G
装备特效
所谓的装备特效是很新的一个概念,老的装备特效是沿用一些怪物特效的,而90制作史诗,超界防具,普雷武器这些是有专门的文件去存放这些特效的
大概50M上下
通用特效
伤害数字,中毒出血结冰,霸体护甲的碎片,增伤特效之类的特效就是这一类的文件
构建了这个游戏里面最基本的战斗系统的一系列图像
有commoneffect的那一堆就是了
也是50M上下
宠物
总计130M,名字里带有creature的文件就是了
值得一提的是国服的宠物图像大小是韩服的3倍多,因为比起时装这种不容易看出来的,宠物估计谁都会知道数量上是比韩服碾压性地多的
界面
名字里带有Interface的文件就是界面
包括一觉弹出立绘,旧版的开场动画,卡片那一堆内容
游戏里每一个窗口,每一个向角色显示内容的界面都是要Interface的文件去构建的,所以这堆文件占用了将近2G之多
不过最值得吐槽的就是其中的带有event的文件,相信懂英语的都能一眼看出是什么东西了
这堆内容就是传说中的被人诟病得最多的“旧活动又不删除”的图像文件
实际上这堆合起来才400m上下的东西还真不是dnf客户端那么大的元凶……
道具
名字里带有item的文件
称号动画和物品图标都是这里面的内容
韩服这堆文件占据了400M,但是有一个废弃的活动——时空列车所用到的称号动画npk就占了一半有多……
国服虽然称号比韩服多很多,但也因为这个原因合起来也才250M而已
地图
就是游戏里面的地图的图块了,带有map的文件
总计1G
怪物
怪物们的动画文件,带有monster的文件
总计2G
世界地图
带有worldmap字样的文件,就是地图选择界面的那几个图画和选择地图的小按钮之类的东西
总计80M
至此整个dnf的文件结构就是这样了,看完上面的总结之后是不是对dnf的大小有了一个初步的认知了
然后你可以发现如果把国服的TP删了,实际上国服的大小和韩服是没什么差别的
所以dnf臃肿完全就是韩方自己不作为而已
那该如何优化呢?
其实身为一个旁观者的话对他们自己的问题指手画脚是有点不妥,但是现在的dnf也有很多可以优化的地方
这篇的下半部分就钦点一下如何搞
首先,游戏运作、必须部件这一堆是完全不能动的
video文件夹里面,把完全用不到的classchange视频,职业技能演示视频,创建角色时候的动态删除,可以腾出1.2G的空间(保守估计,细删的话可能会腾出1.5G上下)
soundpack里面的内容基本上动了和没动差不多,所以略过,回播文件也是,完全是完全动不了的内容,所以略过
音乐的600多m其实也腾不了多少,官方更新的时候会自动删除用不上的音乐,所以里面的内容全都是实心的,硬说的话可以学以前卡带那样把音乐做成midi,600多m怕是要缩成6m,但现在什么时代了还用midi实在是太可怜了,节约也不用节约得那么厉害
因此基础的除了图像外的优化大概就是1.5G上下了
而图像方面的问题是最严重的,可以说是他们的积弊
首先就是要提到一下np的手段,国服、日服、世界服这些服务器都是由韩方自己亲手进行制作的,加上所有的国服的美术素材都是韩方画的,如此庞大(其实是小家子气)的前提下造成韩方的工作量很大,也就是说每个服务器的本土化根本就不能做得很好,为了确保自己可以赶工出来的可能性就采取了一个原则:延期半年,你有我有
延期半年就先不说了,这点在早些年的时候就是因为这样国服策划被无缘无故喷了拖版本好几年,这几年可能意识到的人多了就很少这样喷了,而你有我有的原则就是造成im2文件夹膨胀的一个重要原因
什么叫你有我有呢?就是客户端以韩服为基准,再在这个基础上添加其他服务器独服独有的内容,造成其他客户端总是比韩服大的情况,有时候国服拆包出韩服有的内容但是国服几年长了也没实装的原因就是如此,其实这个并不是值得别人喷的理由,因为全部包揽的确很难管理每个服务器没有的东西,但是真正的婊点是在于他们实在是懒到出汁
举个例子
sprite_character_common_aura.NPK是存放通用的光环特效的文件,因为存放比较集中,所以大部分本土化内容都会直接在这个文件里面制作,加上了chn前缀的就是国服特有的文件
在制作本土化打包的时候,韩方会进行筛选,如果是中国服务器的文件,就会把chn文件丢进去,而韩服的就不会有
那么问题来了
如果是国服首发的东西,韩服把这个东西搬回去的时候该怎么做呢?
例如下面这个2015年国庆节的云端众神光环,前面标记了chn标记,也就是说这个是不会更新到韩服的
是的,他们的做法就是假装这个文件是韩服首发的
把国服的文件重新打包成自己韩服可以适用的文件,这里的意思就是16年的云端众神光环的意思,因为韩服在16年把这套搬回了韩服
韩服的云端众神光环就是调用这个16_olympus的文件的,而国服依旧是调用sprite_character_common_aura.NPK里面的chn文件,这样就存在了两个完全相同的素材了
有人就会说国服不更这个韩服文件不就行了,所以上面才会提到“你有我有”原则
因为四个服务器都是基于韩服的,所以你翻开国服文件夹里面一样可以看到这个国服压根就不会调用的sprite_character_common_aura_16_olympus.NPK文件!
因为自身的懒惰,造成了其他服务器的臃肿,这个并不是个例,类似的情况还有很多,韩方在制作的时候很多时候都会为了一时的方便让客户端内充满大量的重复数据
例如这堆
全部删除的话会减少很多空间占用量
诸如此类的,大量可以通过底图+素材的格式达成的界面就不应该做成拼在一起的东西,连galgame都知道差分的用处,身为网络游戏反而做不到这一点
这一连串的地图选择足足占用了26M的容量,而采用底图+素材的模式做的话可能1M也不需要
测试用残留下来的东西也是无缘无故撑大客户端的缘故
一些素材上的处理也不够完善,例如这个为了方便坐标的对齐采用了大块留黑的模式,一个图用了12k,实际上是完全不需要的,进行裁切后减少了33%的占用空间,dnf里面有很多可以这样优化的空间
V6色板素材要继续进一步普及
色表的概念,在这一期https://bbs.colg.cn/thread-7265672-1-1.html里面已经谈过
色表可以大大地减少同造型但是异色的物件的容量,让多个物件组合到一起,使用独立的色板去作出区别,大大节省空间
令人沮丧的是,dnf只是对时装和武器进行了v6的封装,而且还是不全的,部分的时装依旧是以独立的img的形式保存,而不是v6的色板
▲黄色文件是把四个颜色整合到一起的v6,绿色文件是把每个颜色独立的v4文件,占用的容量是v6的三倍
而一些怪物其实也可以适用于色板的,但是他们没有这样做
地图也是,完全可以进行统合色板
不过最为奇妙深刻的是他们到了现在还迟迟不把角色的皮肤进行sheet化
sheet这个概念之前也说过了,上面就有这一期的链接
dnf的文件是以散图的形式存放的
散图要记录每一个png文件的文件头等信息,占用空间较大
所以通常的业界的2d游戏都是使用sheet这个形式去制作游戏
减少了33%的空间占用
实际上dnf那个跳票了很久的手游也是使用这个方式去储存素材的,但是至于端游为什么这么久还没适用,之前他们在重制ui的时候也提到过,实在是耐人寻味
是担心素材的读取问题吗?因为sheet是一个整体的图片,所以要读取里面其中一帧就要读取一整个的图片,比起加载单帧要占用的内存要多
但是dnf的img本身就是一个伪sheet,要加载里面一帧就要加载整个img
为啥会这样,我暂且蒙在鼓里
并不单单是删除旧活动就能让dnf瘦身,单纯删除旧活动文件的话也只是让dnf从18G变成17.5G而已
真正的问题还有很多,懒惰而造成的累积才是最严重的问题,如果可以更加细心地清理自身的客户端,可能这游戏连10G也不到吧
不过真正的原因还是因为现在的硬件太发达了,造成没有了以前捣鼓游戏的先辈那种蛮劲了,古代的游戏制作人为了腾出几kb的内容都可以纠结半天,而现在的游戏好像1G连跑几步都不够了
不过因为过度沉浸在安逸的环境里面得到的就是像癌症一样扩散的疾病,这个游戏客户端臃肿的问题也许有人想过解决,但是在各方面的权衡之下,还是太得不偿失了
行动快感!地牢与战斗机