五楼东侧靠窗的位置,是阿坤的办公区。他不喜欢隔间,林浩就让人用四张桌子拼了个大工位,三面围着书架,上面堆满了书:《计算机图形学》《实时喧染》《3D数学基础》《OpenGL编程指南》。书都很新,但页边已经卷起,空白处写满了笔记,字迹小而密,像蚂蚁爬过的痕迹。
阿坤已经在这里坐了三天。除了上厕所、接水,几乎没离开过椅子。屏幕上是黑色的代码编辑器,左边是3D引擎的架构图,右边是数学推导公式。他手边放着三个空的红牛罐子,一个吃了一半的饭团,包装纸已经发硬。
凌晨两点,办公室只剩他一个人。日光灯关了一半,他这片还亮着,在黑暗里象一个孤岛。手指在键盘上快速敲击,嗒嗒嗒,嗒嗒嗒,节奏稳定得象心跳。屏幕上,一个简陋的3D立方体在缓慢旋转,六个面是不同的颜色,虽然粗糙,但光影正确,透视准确,旋转平滑。
他停下来,揉了揉发酸的眼睛。摘下眼镜,用衣角擦了擦镜片,重新戴上。然后他拿起内线电话,拨了林浩的号码。
响了三声,接通。林浩的声音很清醒,不象被吵醒:“阿坤?”
“还没睡?”
“在写新版本的计划。你那边怎么样?”
“3D引擎的de跑通了。”阿坤说,声音有点抖,不是累,是兴奋,“最基本的功能:模型加载、材质贴图、光照计算、相机控制。帧率能稳在60,同屏一千个三角面。虽然简陋,但架子搭起来了。”
电话那头沉默了两秒,然后说:“我过来。”
五分钟后,林浩推门进来。他穿着简单的T恤和运动裤,头发有点乱,但眼睛很亮。走到阿坤身后,俯身看屏幕。
那个彩色立方体还在旋转。阿坤敲了几下键盘,立方体变成了一栋简单的房子模型,有门有窗有烟囱。再敲,房子表面粘贴了砖墙纹理。再敲,一盏虚拟的灯亮起,在房子侧面投下柔和的阴影。
“光照模型用的是Phong,简化版。”阿坤指着代码,“顶点着色器在CPU算,太慢。但如果用GPU……2003年的显卡,GeForce FX系列支持可编程流水线,我们可以写真正的着色器程序。”
“性能呢?”
“现在的de,纯软件喧染,吃满一颗CPU。如果用硬件加速,性能能提十倍。但需要写DirectX 9的封装层,工作量不小。”
林浩没说话,拉过旁边的椅子坐下。他看着屏幕上那栋简陋的3D房子,看了很久。房子在缓慢旋转,光影在墙面流动,虽然粗糙,但有种质朴的美感。
“阿坤,”他缓缓开口,“你为什么急着做3D?”
阿坤推了推眼镜,手指在桌上轻轻敲着,象在组织语言。
“因为2D到顶了。”他说,“《血战天下》做到三十万人在线,国战做到万人同屏,技术上已经摸到天花板。再优化,无非是更细的同步粒度,更巧的压缩算法,但体验的提升边际递减。玩家现在觉得新鲜,是因为没见过更好的。但他们总会见到的。”
他调出另一个窗口,是国外游戏论坛的截图,用翻译软件翻成中文,生硬但能看懂。
“这是今年E3的报道。《光环2》《半条命2》《毁灭战士3》,全是3D。虽然现在国内机器跑不动,但硬件在升级。去年主流显卡是GeForce 4,今年是GeForce FX,明年可能是GeForce 6。显存从64M到128M到256M。最多两年,3D游戏就会成为主流。”
他又打开一份文档,是自己做的技术趋势图。横轴是时间,纵轴是性能。几条曲线向上延伸:CPU主频,GPU浮点算力,内存带宽。在2005年的位置,他画了一个红圈。
“到2005年,主流PC的性能,足够跑中等画质的3D MMO。如果我们现在不开始,等别人做出来了,我们就被甩下了。”阿坤看着林浩,眼神炽热,“林浩,浩宇不能只做2D。2D做得再好,也打不过未来的3D浪潮。我们必须走在前头。”
林浩安静地听着。等阿坤说完,他问:“你想做一款什么样的3D游戏?”
“大型3D MMORPG。”阿坤毫不尤豫,“开放世界,无缝地图,真实物理,精细建模。玩家可以攀爬、游泳、飞行,可以改变地形,可以建造房屋。战斗要有真实的打击感,技能要有华丽的粒子特效。社交要更沉浸——语音聊天,表情系统,肢体动作。这需要全新的引擎架构,但浩宇有基础,我们的同步算法、网络框架、工具链,都可以迁移。”
他说得很投入,手在空中比划,象在描绘一个看不见的世界。那个世界里,山是立体的,水是流动的,风会吹动草叶,雨会打湿衣衫。玩家不是扁平的