“老宋,你来一下。另外俞亮,李雷你们有兴趣的话也一起来听听。”张帆写了几行代码后,觉得还是和大家分享一下这个思路比较好。而且现在他其实也只是一个猜想,让大家给参谋参谋也不错。
俞亮和李雷已经知道张帆和宋一凡遇到了什么问题,听到张帆叫他俩,两个人来到张帆身边,站在他身后。俞亮问道:“张帆,你刚刚说的卡顿问题解决了?到时候整个游戏画面上方应该还有一些道具吧?这些会影响到游戏流畅度吗?”
“那些不影响,这是两个不同的模块。”张帆解释道。物品栏上的物品实际上就是一组静态的图片,虽然地图会随着人物的移动不断改变,但物品栏上的东西并不会有什么变化。只有在使用物品时物品栏才会进行一次画面刷新,因此并不会拖慢整个游戏的速度。
“老宋,什么情况?”张帆见宋一凡还没过来,提高声音又喊了一声。
“啊?喊我?”宋一凡和刚刚听到一样,带着疑问的语气回了一句,然后他头也不抬的道:“你们稍等一下,我有个新想法,等我先把思路捋顺的。”说着又在电脑前摆弄起来。
张帆送了耸肩,看了看站在身后的俞亮和李雷,他也伸了个懒腰站了起来。宋一凡看来是有了什么灵感,张帆索性就先休息一会,等宋一凡搞完手头的事再一起讨论。
不过宋一凡这一“等”,等的也真够久的。张帆在工作室里转了好几圈,俞亮和李雷见没啥事又回身去写物品编辑器的代码,一直过了能有半小时,宋一凡这才长出了一口气,然后抬起头问道:“张帆,你刚才喊我了?”
“我擦,哥们你不会走火入魔了吧?”这宋一凡的武痴也真是痴到一定程度了,这都自带屏蔽效果了?他拉着宋一凡来到自己的电脑旁,一边给宋一凡演示,一边把自己刚刚的设想说了一遍。俞亮和李雷见了,也来到旁边“听课”。只有李子悦默默的留在自己的座位上画着原画——程序员的世界,美工不懂。
宋一凡听张帆说完他的“部分画面分段绘制”技术后,点了点头道:“这个技术应该能实现,但是我有个问题。”
“你说!”张帆喊大家过来就是为了大家一起出谋划策的,他打开一个空白的文档,准备将宋一凡提的问题先记录下来。
“你看,你刚刚的意思是,通过代码的手段“欺骗”计算机,让它只绘制新出现的画面,但如果游戏里的人物做一个返回的动作。”说着宋一凡按动键盘的←键,让人物往回走了几步:“那么你之前所说的,被丢掉的画面,就又得重新绘制了。这个我感觉还有改进的空间。”
“哦?你的思路是啥?说来听听。”张帆一听宋一凡还有想法,顿时也来了兴趣。心说能让这个武痴愣神半天的想法,应该是好想法吧?
宋一凡从桌子上拿了两张白纸,在电脑屏幕上比划了一下。这年头的电脑屏幕可不像后来,动辄就是20寸以上的大液晶屏。这时候还是“大背头”型的显示屏,屏幕尺寸也很小。宋一凡两张白纸一铺,就把屏幕完全盖住了,而且还超出了一大截。
“我的想法是这样的,”宋一凡一边比划一边说道:“你看,以这个白纸为例。实际上咱们屏幕上显示出来的画面,只有屏幕那一小块。但我们可以通过代码控制计算机,让它提前绘制两张白纸那么大的画面。而剩下的画面我们可以先把它缓存在显存里,等到人物移动的时候,直接从显存中调用这些画面就可以了,这样不就彻底解决了刚刚画面刷新慢的问题了吗?”
俞亮和李雷在后面听的一脸懵逼。事实上,张帆和宋一凡所讨论的话题已经是非常前沿的技术了。这种“图像自动刷新”技术,在后来硬件膨胀的时代看起来或许没什么用,可在硬件性能捉襟见肘的90年代初几乎是每个大公司的必修课,几乎每个大型游戏公司都有着自己的“独门秘籍”来解决硬件性能不够的问题。
俞亮和李雷互相对视了一眼,两个人默默的去搬了两把椅子坐在张帆身后,准备好好学习一下到底是怎么回事。
而张帆在听完了宋一凡的想法后,也觉得确实是一个好方法。其实宋一凡的想法说白了,就是一个“打提前量”。因为玩家在玩游戏时,是不可能一直闷着头往前冲的。比如说他看到一个宝箱,或者看到一个怪物,都会暂时停住脚步。
宋一凡的方法要的就是玩家停住脚步的时间差。当玩家在当前屏幕打怪,开宝箱时,计算机通过代码就偷偷地在后台绘制后面的图像,然后将其存到显存里。等玩家解决完了这个怪物,或者说打开了宝箱再往前走,计算机就不需要再“绘制”图像了,而只是将显存里的图像调用出来,这无疑比现场绘制要快得多。
玩家等走到了新的一块地图,自然又会遇到新的地图事件,电脑再趁着这个时候再提前绘制,这样就能给玩家一种“无缝横版卷轴”的感觉了。