梁永琪握着手机,听着话筒里断续传来的背景噪音,像有人在喊什么,隔着一道门板,声音闷闷的。
她回头看了陈浩一眼,陈浩已经从沙发上站起来了,站在她旁边,目光落在手机屏幕上,没有伸手。
她说:“你先让他们别动手,我十分钟内回电话。”挂掉之后她把手机屏幕转向陈浩,简单复述了一遍方晴说的内容。
陈浩听完点了一下头,语速提了上来:“你打给他们两个,开个三方会,免提。
你坐这儿,我听着。”
梁永琪拨了李轩的号,响了四声被接起来,接起来之后那边没有人说话,只听见键盘被敲的声音,啪啪啪的,节奏很快。
她又拨了陈远航的号,响了两声接起来,接起来之后那边的第一句话是“你让李轩接电话”,声音大得像是在对着门板喊。
她拨了方晴的号,方晴接起来说“我进他们办公室了,我坐他俩中间,梁总你开免提吧”。
她把手机放在茶几中央,按了免提键。
扬声器传出来的声音先是一段嘈杂的电流声,然后陈远航的声音冲了出来,每个字都带着一口气,像在喘。
“你这个方案根本不现实。
全自研引擎,从渲染管线的设计到驱动层的适配,你知道这玩意儿多大规模吗?你去看一看现在市面上那些引擎,哪一个不是几百人年的积累?我们团队多少人?你告诉我你打算花几年?”他的声音挤在手机喇叭里,带着一点破音,像嗓子里有什么东西堵着。
李轩的声音接上来,比他低得多,但字与字之间咬得很紧。
“我知道规模。
我评估过。
商业引擎的底层架构是为FPS设计的,它在帧同步和碰撞检测的调度算法上预设了场景内对象数量不超过一百个。
我们要做的是超过一千个。
你拿一个为一百个对象设计的引擎去改造,你改到第三层就会发现整个调度逻辑锁死了,你动不了,你只能在上面叠补丁。
叠到后面性能损耗比你自己写一个还大。”
“你先把东西做出来啊!”陈远航的声音拔得更高了,“你先做一个能跑的版本给用户看,后面优化可以慢慢来,我们可以迭代,可以升级。
你把所有时间花在底层上,半年过去什么产出都没有,投资人怎么看?用户怎么看?团队怎么看?”
“用户玩到一个卡顿的东西,”李轩的声音还是平的,但尾音比以前重了,像在极力压着什么东西,“玩完就走了。
他不会再给你第二次机会。
我们做的是网络游戏,不是单机。
单机用户你出一个bUg他可以等补丁,网络的用户卡了一次他就永远不回来了。”
方晴的声音插进来了,比两边都安静得多,语速不快不慢。
“李轩,你先说一下,你预估全自研引擎走完核心层的时间是多长?给一个大概的数字,不需要特别精确。”
“六到八个月。
核心层跑通,包含渲染管线的底层、驱动层的适配、数据同步模块的核心逻辑。
上层应用和内容填充并行,不占用这个时间。”
“行。
陈远航,你这边商业引擎改装的方案,第一版能跑能玩的上线工期要多久?”
“四个月。
最多五个月。
用商业引擎的现成渲染框架,上层叠我们的逻辑层,画面质量肯定比自研差一点,但用户肉眼看不太出来,帧率可以稳住。”
两个人的声音同时在扬声器里撞到一起。
李轩说“那个画面质量差的是动态光影”,陈远航说“用户谁他妈在乎动态光影”,方晴说“你们一个一个说”。
电话里吵了大概有半分钟,梁永琪一直没开口,她坐在沙发边缘,两只手搭在膝盖上,手指收紧又松开,收紧又松开,像在做一种无声的计数。
然后陈浩往前倾了倾身,嘴唇靠近手机麦克风,声音不高但很干净,一下就把那两个人的声音接住了。
“李轩,商业引擎的驱动层接口是封闭的,对吧?”
电话那头安静了。
键盘声停了。
过了两秒,李轩的声音响起来,比刚才沉稳了一些,像被人从情绪的凹槽里拉了出来。
“对。
封闭的。
它的渲染管线调度周期是写死的,外部不允许修改。”
“那你有没有想过,在它上面封装一层你自己的数据同步层,把引擎的渲染时钟当一个外部信号接进来,上层用你自己的心跳窗口做帧间插值。
接口封闭不影响你接它的输出信号,你只要不动它的输入,在上面做一层外套。”
又安静了两秒。
然后李轩那边传来一个很轻的声音,像人从椅子上直起腰来的时候椅子发出的响动。
他的声音变了调,没有刚才那种硬邦邦的棱角了。
“……可以。
这样相当于在它上面架一个桥,帧同步不走它的底层,走我自己的逻辑层,渲染那边只是把它的输出拿过来用。
但这样会多一层数据转换,帧率会掉百分之五到百分之八左右。”
“百分之五到百分之八可以接受。”陈浩说,“原型阶段你把这个桥搭起来,团队的策划和美术可以正常开工,游戏跑得通,画面看得过去,功能全都能验证。
同时你另外开一条线,你自己的引擎核心继续写,等写好了直接替换桥下面的底座。
两条线并行,叫双轨也行,两条腿走路总比单腿蹦要稳。”
电话那头又安静了。
这次安静了很长时间,梁永琪盯着手机屏幕上的通话计时,数字一秒一秒地跳着,大概跳了七八秒之后李轩的声音重新出现了,轻了一些,像从刚才那个紧绷的状态里退了一步。
“双轨并行的话,自研引擎这边我需要多调两个人。
不是普通的程序员,要懂驱动层适配的,市面上这种不好招。”
“人给你,”陈浩说,“招人的预算你跟梁永琪批,不用走常规的流程,特批。
你要找谁你直接找,薪酬可以谈。”
陈远航的声音也响起来了,比刚才降了两个调,嗓子里那口喘气的声音没有了。
“双轨的话,我这边内容开发的进度不受影响对吧?我照常排我的里程碑,策划案照常往下走,美术资源照常进?”
“不受影响。”陈浩说,“你用商业引擎那一轨做功能开发和内容验证,等自研引擎的底座上线了,上面那层应用和内容是直接迁移的,不需要重做。
你这边的工作一天都不用停。”
陈远航那边传来一个短促的呼气声,像憋了太久的一口气终于可以放出来了。
“那我没意见了。”
方晴的声音最后出来,轻快又干脆。
“那我做个记录。
引擎方案确认双轨制,商业引擎做原型开发和内容验证,自研引擎做底层储备和后续替换。
两边各自排期,同步推进。
李轩下周一之前给双轨的排期表,陈远航给内容开发的里程碑节点。
还有什么要补充的吗?”
李轩说了一个“嗯”,陈远航说了一个“行”。
方晴说了句“那散会,有事我再拉会”,然后电话被挂断了。
梁永琪按了挂断键,扬声器里的电流声消失了,书房恢复了原来的安静,只能听见空调风口吹出来的轻微呼呼声。
她靠进沙发里,整个后背陷进靠垫,脑袋往后仰,后脑勺搁在靠背的顶端,眼睛看着天花板。
天花板上有一道很浅的裂纹,从灯座旁边延伸出去,细得像一根头发丝,她以前从来没注意过。
她盯着那道裂纹看了一会儿,然后闭上了眼睛。
陈浩把果盘里那几颗葡萄往她的方向拨了拨,她没睁眼,伸手摸了一颗,指头碰到葡萄表皮上那一层薄薄的白霜,滑滑的,她捏起来放进嘴里,咬下去,酸汁在舌头上炸开,酸得她眉头皱了一下,但她没有吐出来,含着嚼了几口咽下去了。
“搞定了。”她说。
声音又轻又短,像从嗓子眼里挤出来的最后一口气。
她睁开眼,侧过头,脑袋往陈浩的肩膀方向歪过去,太阳穴抵着他的肩头,鼻尖擦过他衬衫的领口。
他的肩膀比她高出一截,她这样靠着的时候脖子是微微弯着的,但她没有调整姿势,就那样弯着脖子靠着。
陈浩的右手抬起来,掌心落在她后背肩胛骨之间的位置,隔着衬衫的布料,他的手掌是暖的。
他开始拍她的背,节奏不快,大约一秒一下,力道很轻,拍的时候手掌贴着布料发出那种闷闷的拍打声,像有人在慢慢地、一下一下地拍松一块板结的土。
她的呼吸在刚开始那几下里还是浅的,胸腔起伏的幅度小,每一下吸气都吸到一半就停了。
但他一直拍着,节奏没变,力道没变,慢慢地,她的呼吸开始往深里走,吸的时候胸腔鼓起来,呼的时候整个身体往下沉一点,往下沉一点,像有东西在从她身体里一点一点地往外退。
她闭着眼开口,声音比之前更轻了。
“浩哥。”
“嗯。”
“你说得对,我自己如果真不信,我怎么让别人信。
我今天坐在咖啡馆里听他们讲那些话的时候,我心里面有一块地方在晃,我觉得自己可能搞不定这事儿。
但是刚才电话里听李轩和陈远航吵的时候,我又觉得这事儿能搞。
你说我这个人是不是太反复了。”
“反复正常。”他说,“不反复的是死人。”
她笑了一声,很轻,从鼻子里出来的。
“那你有没有过那种时候,觉得自己的东西拿出来会给别人看笑话。”
“有。
经常。”他拍着她背的节奏没变,“我写第一个程序的时候拿给我老师看,老师说你这个变量名取得像狗啃的。
我当时就想把电脑砸了。
后来我写了个稍微能看的东西,拿给投资人看,投资人看了三分钟说你这个产品没有商业前景。
每一次都有人笑你,每一次你都觉得完了,这一次真的完了。
但每一次你只要没停下来,走完那一段你就发现笑你的那些人已经换了一批了。”
她没说话,往他颈窝里又埋了埋,鼻尖蹭着他领口边缘的那一小块皮肤,蹭到他的体温。
她呼出的气打在他脖子上,暖暖的,湿湿的。
“我有时候在想,”她说,声音闷在他肩膀和下巴之间的空隙里,“我们做这个东西,如果做成了,那当然好。
如果没做成呢?那些钱会不会真的就像他们说的,打水漂了。”
“钱本来就是用来打水漂的。”陈浩说,“打在能听个响的地方,就不算白花。
你漂出去一百块,能听个响,能炸出一朵花来,那就是值了。
我们这个项目,就算最后上线没人玩,但李轩把那个同步核心写出来了,陈远航把那个策划案打磨出来了,方晴把团队管住了,这些都不是白干的。
下一把,换一个方向,这些东西全是底牌。
你手里牌越多,下一把就越不慌。”
她轻轻地“嗯”了一声。
那一“嗯”拖得有点长,尾音往上飘了一下,飘到一半就散了。
茶几上那盘水果还剩大半,苹果片边缘的氧化层比之前又扩大了一圈,颜色从浅黄变成了深褐。
葡萄在盘底滚动的时候留下几道水痕,现在水痕已经干了,只剩一片浅浅的印子,不仔细看看不出来。
手机横卧在茶几中央,屏幕黑着,像一块安静地躺在那里的石头。
书房里只剩空调的低频声和陈浩拍在她后背上的那一点细微的布料摩擦声,每一下间隔都差不多,不急不慢的,像心脏在安稳地跳。
【跪求礼物,免费的为爱发电也行!】