游戏的辅助系统也基本都定了下来。
……
既然文的搞定了,那接下来就是理的环节了。
可想法很美好,现实也同样骨感。
怎么做?
就不说别的了,单单把披萨上的一大堆配料都做出来,这资源量就有多少了?
简单估算一下,整款游戏最终的资源量甚至要奔几十个MB去了。
放在主机游戏上来说,这个容量对于现在CD-ROM快速推广的时代来说,的确算不得什么。
可这是网页游戏。
那问题就大了。
简单推算一下,哪怕是你住在机房旁边,用着最贵的商业化一代ADSL顶配网络,也得花上几分钟才能加载完。
“光是一个标准厚底披萨的饼底贴图,就需要几百KB……”
基钦在开发机上操作了一番,望着文件的占用,一时间有些头疼。
披萨能自由拼搭,就意味着他们需要把披萨上的每一个配料都单独准备好贴图。
甚至还要有不同角度和形状的变体,确保不容易审美疲劳。
但这得用多少带宽?
哪怕是用上了时下最激进的压缩算法,在不损失像素的情况下这个数字也只能再减少几十KB,量级上根本没有拉出差异。
这还没有算上帧动画呢。
要是再把这些角色的移动效果都给一一做出来,那占用得膨胀到什么程度?
如果要保证最基本的可玩性,那他们计划书上的内容有一大半都得砍去。
但这肯定是不对的。
如果真的做不到,那林立新也不可能放任他们一股脑地往计划里塞东西。
既然林先生认同,最起码在他的脑袋里,是装着完整的实现思路的。
事已至此……
“快去请林先生!”
……
“减少占用?喔,也对,你们从来没有过网站开发的经验。”
简单听大卫描述了一下问题,林立新迅速便明白了过来到底是怎么一回事。
动视这帮人的主要技术栈还是主机和PC端。
他们非常擅长跟底层的硬件打交道,代码能优化到寄存器操作的级别。
但对于高级语言的编写却缺少相关的经验。
同样也没有网页端开发的积累。
这个问题放在后世,其实是非常好解决的。
但对现在念头不通达的他们来说,那就是无论如何都绕不过去的坎。
“事实上这方面的技术GAMENOVA已经用过很多次了,只不过全部放在一个项目里的确是头一回。”
林立新说着,快速跑到楼下,在动视的游戏博物馆里找到了自己要的东西,这才返回屋内。
《心跳回忆》、《危险节奏》以及……《PokePal》。
看似几款作品天上一脚地上一脚。
但解决这个问题的终极答案,早就已经藏在它们之中了。
“咱们先来解决最简单的问题,资源复用。”
林立新拿起PokePal宠物机,
“这个项目就是你负责的,我相信这一点你应该并不陌生。”
资源复用,旧时代主流的优化手段。
核心思想就是把一个素材通过变换做成不同的物件,达到用少量资源制造大量内容的目的。
这里面的核心代表,自然就是老任的《超级马力欧》了。
无论什么时代,但凡提到数据压缩的艺术,一定都绕不开这款惊人的作品。
在《超马》里,整个1-1在卡带中的实际占用其实仅有131字节。
所有的32个关卡加在一起,占用也才只有仅仅7KB。
能有如此夸张的表现,离不开它的核心技术,色板复用以及贴图复用。
同样的一张贴图,涂上蓝白色,就可以摆在天上当云朵。
改成绿色嵌在地上,就可以是一丛灌木。
同样的管道,换成不同配色,就可以在不同地图使用。
放在《老爹披萨店》里,这个技术同样可以照常应用。
“我明白。”
大卫点点头,跟着拿起《心跳回忆》的卡盒。
GAMENOVA的每一款游戏,都是天然的完美教材。
任何一位开发者,只要愿意踏踏实实地去钻研,一定都会有所收获。
尤其是他这种核心成员,更是能直接拿到部分源码。
大卫曾研究过《心跳回忆》里如此灵动的角色立绘到底是怎么做的。
“预制一套组件库,只要数量足够多,自由组合就可以做出各种不同的客人,这样一来可以用更少的贴图做出更多的客人,从而大幅减少占用……”
这就是GAMENOVA在《心跳回忆》里用的技巧。
拆分L2D。
把角色拆成碎片,程序化地动态控制。
一个角色动画甚至只需要字节级别的占用。
至于《危险节奏》,它带来的是音频压缩的技术。
如何把一个几十甚至数百MB的CD级音频压缩到游戏可以承受的范围,它给出了完美的答案。
但……
大卫将《心跳回忆》放回桌上。
“可这还不够,大多数玩家的网络仍然是KB级,它还是太大了。”
这些技术毫无疑问是有用的,而且效果非常好。
理想状态下把占用直接砍半都能做得到。
但这还是不够。
如果不能确保绝大部分人都能玩得到,那他们还不如卖软盘版呢。
起码普及度有保障。
“当然,接下来才是重点。”
网络开发跟单机游戏完全是两个领域。
对于互联网工作者们来说,他们同样是一群手法高超的魔术师。
但他们所擅长的并不是榨干硬件里的每一分机能,而是带宽的利用。
“如果我说,我只需要一项技术,就能把游戏的体积压缩到原本的十分之一,你信吗?”
“啊?”
“在设计NovaScript和HTML技术之初,事实上我跟卡马克就已经解决了这个问题。”
林立新在电脑上操作了一番,随后刷新了一下网页。
空白网页上便多了一个圆形。
随后又是一番操作。
圆形的中间被掏空,闭合处断开,成了一个不完整的圈。
接着圈被分成了内外两层。
最后一次刷新。
外侧变成了深紫色,而内侧则是带着些许淡粉色的白色。
“洋葱圈。”
“……?”
林立新全程没有画任何东西,只是手写了几行代码。
但偏偏他还就真的画出了一个像模像样的洋葱圈。
而这个文件的占用是……711字节。
不到1KB!
但林立新像是还不满意似的,又开始在电脑上操作起来。
不多时,萨拉米、辣椒圈、蘑菇片、培根等各种配料便就都被画了出来。
十分之一的占用?
这特么百分之一都有了吧!
如此鬼畜的优化能力,怪不得之前大家讨论游戏机制的时候他表现得那么游刃有余。
“矢量图技术,我们不描述像素,而是描述路径,NEXUS浏览器会自动解释并渲染的,它有完整的Canvas系统。”
第598章 街角开了家新披萨店
不同于主机游戏和街机。
网页游戏有个最大问题,便是它面对的玩家,根本无法确定硬件条件,也无法确定网络基础。
开发者完全是两眼一抹黑下进行开发的。
于是优化的目标,便跟黄金时代的开发者们走出了不同的道路。
一个玩家,有可能用的是i486这种顶级U,也有可能用几年前的破烂。
与其针对不同硬件做极限优化,倒不如把精力放在……下载时间上。