“光影用多层叠加。”林浩在白板上画,“比如,一个山洞场景,我们预喧染三套:白天版、夜晚版、火把版。运行时根据游戏内时间,动态切换。或者更精细点,用‘光照蒙版’——一张黑白图,白色局域亮,黑色局域暗,运行时叠加在场景图上,仿真光影变化。”
“破坏地形……做不了。但我们可以用‘事件触发替换’。比如一堵墙被炸毁,我们准备两套场景图:有墙版和无墙版。触发爆炸事件后,无缝切换到无墙版。玩家会觉得墙被炸了,实际上只是换了张图。”
“天气系统同理。雨、雪、雾,都是单独一层半透明贴图,叠加在场景上。粒子效果用2D精灵仿真。”
阿坤听着,手指在桌上轻轻敲着,象在脑子里运行这些方案。他不得不承认,林浩说的每一点,技术上都能实现。而且实现成本,比真3D低一个数量级。
“但角色是3D模型,在2D场景里走,不会穿帮吗?”赵永问。
“用‘深度缓冲图’。”林浩说,“预喧染场景时,同时生成一张‘深度图’,记录每个象素的深度值。角色移动时,根据深度图决定谁在前谁在后。这样,角色可以走到树后,可以被建筑遮挡,看起来就象在3D空间里。”
阿坤长长地、缓缓地吐出一口气。他看着林浩,眼神里有种近乎敬畏的困惑。
“林浩,”他轻声说,“你脑子到底怎么长的?这些取巧的办法,你是怎么想出来的?这已经不是优化了,这是……重新定义问题。”
“因为我们必须活下去。”林浩说,“真3D是未来,但不是现在。在现在和未来之间,我们要搭一座桥。这座桥可能简陋,可能取巧,但能让玩家走过去。等他们走到对岸,硬件升级了,我们再拆桥,建真3D。但如果我们现在就要建跨海大桥,会死在半路。”
玻璃房里安静了很久。然后陈默第一个鼓掌,很轻,但坚定。接着是赵永,是老徐,是其他程序员。最后阿坤也抬起手,拍了一下,很慢,很重。
“那就干。”他说,“但这个方案,工作量巨大。要重写整个喧染管线,要开发预喧染工具链,要做深度图生成器,要设计图层管理系统。三个月,不一定够。”
“那就加班。”林浩说,“从现在开始,引擎组分成两拨。阿坤带六个人,攻坚伪3D喧染管线。赵永带六个人,继续优化真3D内核,为未来做准备。双线并行。陈默,你的美术组要调整工作流,所有场景出两套资源:一套高模用于预喧染,一套低模用于真3D未来版。”
“明白。”
“王磊,你协调服务器组,为伪3D方案调整同步逻辑。2D场景的同步量小,但事件触发要更精确。”
“收到。”
“一鸣,你的算法要适配新架构。伪3D的场景事件是离散的,推荐逻辑要调整。”
“好。”
分工完毕,人群散去。玻璃房里又只剩键盘声。但气氛不一样了。刚才的绝望,变成了紧绷的、亢奋的专注。有路了,哪怕是取巧的路,也比没路好。
林浩走到阿坤身后,看着他调出新的工程文档,开始写伪3D喧染器的第一行代码。
“林浩,”阿坤没回头,突然说,“如果有一天,硬件够跑真3D了,我们还会用这个伪3D方案吗?”
“不会。”林浩说,“但这段代码,会变成浩宇的遗产。它会告诉我们,在技术不够的时候,要怎么用聪明才智活下去。它会提醒我们,做游戏,技术是手段,不是目的。玩家的体验,才是目的。”
阿坤的手指停在键盘上。他转过头,看着林浩,看了很久。
“你知道吗,”他说,“有时候我觉得,你象个从未来回来的幽灵。你知道所有问题的答案,但你不说,你引导我们自己想出来。为什么?”
林浩笑了笑,很淡的笑:“因为答案不重要,重要的是找到答案的过程。浩宇不能只靠我一个人,要靠所有人。我要做的,是点燃火把,照亮路。但路,得你们自己走。”
他拍拍阿坤的肩膀,转身离开。
走出玻璃房,外面办公区灯火通明。陈默在和白板美术组开会,手舞足蹈地讲图层设计。王磊在打电话,和服务器托管商谈扩容。张一鸣在写算法文档,眉头紧锁。
所有人都相信,这条路能走通。
因为他们有林浩。
林浩走到窗边,看着外面。夜色浓重,寒风呼啸。但远处工地上的塔吊还在工作,巨大的探照灯划破黑暗,像不眠的眼睛。
他知道,伪3D方案是权宜之计。但权宜之计,往往能活下来。而活下来,才有机会看到明天。。等硬件上来了,他们再慢慢转真3D。这是中国游戏产业的生存智慧——在限