把数字方块的配色从暖色调调成了冷酷的荧光蓝。
最重要的是,他把游戏的核心数值上限改了。
他没有叫它《2048》,而是把游戏的终极目标变成了它的翻倍——《4096》。
为了掩人耳目,利普开始在每天的代码提交上耍起了花招。
他本地的《4096》开发进度一日千里,但每天推送到远程服务器交由杨坚审核的官方库代码量,却被他死死地控制在一半左右。
他就像一个精明的薪水小偷,每天把大量的时间花在自己的私活上,却用龟速敷衍着真正的大老板。
第二天下午,杨坚的公寓里。
杨坚坐在三台高分辨率显示器前,手里端着一杯冒着热气的黑咖啡,目光平静地扫过屏幕上利普刚刚提交的几百行代码。
“进度比预期的慢了大概百分之四十。以你的水平,不应该这么慢啊。”杨坚抿了一口咖啡,语气中听不出任何情绪,转头看向坐在一旁的利普。
利普心里猛地一跳,但脸上立刻熟练地堆起了一副饱受技术折磨的苦逼表情。
他早就准备好了足以把外行人绕晕的专业术语。
“听着,杨,这真的不能怪我。”
利普烦躁地抓了抓头发,连珠炮似地开始抱怨,“Objective-C的内存管理简直就是反人类的灾难!现在的iOS底层还没有完全普及自动引用计数,我必须手动去写保存和释放。稍微有一点指针没释放干净,整个程序就会在iPhone 4S那点可怜的内存里直接崩溃!”
他顿了顿,看着杨坚依旧毫无波澜的脸,继续加大药剂量:“而且,我没有Mac电脑!我是在这台破PC上装的‘黑苹果(Hackintosh)’系统。你知道AMD的处理器跑苹果的内核有多痛苦吗?系统内核扩展动不动就抛出内核恐慌之类的错误!我光是解决编译环境的Bug就花了一大半时间!”
利普说得唾沫横飞,每一个词都精准地踩在2011年iOS开发的痛点上。
他自信,这套无懈可击的技术说辞,绝对能把杨坚这种只懂云服务器和网页前端的架构师唬住。
然而,杨坚并没有像利普预想中那样露出担忧或者追问的神色。
他只是静静地听完,然后微微点了点头,将手里的咖啡杯放在桌子上:“我知道了。黑苹果的编译环境确实不稳定,注意按时保存。回去继续吧。”
就这?
利普愣了一下,看着杨坚那张毫无多余表情的脸,心里涌起一股难以言喻的狂喜。
“这家伙果然不懂苹果的底层开发!”利普在心里冷笑。
他觉得杨坚的平静,不过是为了掩饰自己在外包员工面前听不懂技术细节的尴尬。
“果然,这家伙之前能赚到钱,纯粹就是瞎猫碰上死耗子的运气好罢了。”
利普在心里不屑地冷哼了一声,“一个野鸡社区大学混出来的毕业生,懂什么底层内存管理?真正的技术水平估计就路边一条。”
这种智商上的优越感,让利普彻底放下了最后的戒备。
接下来的几天里,利普彻底陷入了一种狂热的亢奋中。
他靠着黑咖啡和劣质提神饮料,仅仅一周的时间,硬生生地把《4096》的全部代码肝了出来。
甚至他还无师自通地用破旧的画图软件,拼凑出了一个看起来还算过得去的App图标。
激动人心的时刻终于到来了。
周日的深夜,利普咬着牙,用自己好不容易攒下的钱,买了一张不记名的预付信用卡,在苹果官网上支付了99美金的苹果开发者年费。
看着卡里瞬间被扣除的余额,利普感到一阵肉痛。
在南区,99美金足够他们全家吃上一个星期的廉价肉排和意大利面。
但转念一想即将到来的、几万甚至十几万美金的广告收入,这笔小钱完全就是不值一提的投资。
“来吧,宝贝,让我们把南区买下来。”
利普按捺住剧烈跳动的心脏,将打包好的IPA安装包,通过Application Loader工具,郑重地上传到了苹果的iTunes Connect后台。
页面刷新。
应用状态栏里,亮起了一个刺眼的黄色圆点,旁边跟着一行英文:“Waiting for Review(等待审核)”。
利普长长地舒了一口气,靠在椅背上,仿佛已经看到了无数的美元正顺着网线朝他涌来。
他甚至开始在脑海里盘算,等钱到账了,第一件事是先给家里换个空调,还是直接买一辆二手福特搬出这个鬼地方。
然而,利普终究还是低估了真实商业世界的残酷。
一天过去了。黄色的“Waiting for Review”纹丝不动。
两天过去了。利普每天刷新后台不下五十次,那行字依然像一块冰冷的墓碑,死死地挡在他的发财之路上。
到了第三天,利普彻底急了。
他之前只知道写代码,却根本不了解2011年苹果App Store那令人发指的生态环境。
在这个年代,苹果的审核机制还是原始的人工审核。
每一款应用都要排着队,被远在加州库比蒂诺的审核员下载、安装、逐个点击测试。
正常的审核周期,短则十天半个月,长则一个月以上!
“该死!该死!该死!”
利普一拳砸在桌子上,震得那台破显示器一阵摇晃。眼瞅着这周五,也就是杨坚规定的官方版本交付日期马上就要到了。
杨坚那边一旦交付,凭借之前安卓端积累的庞大流量,《2048》肯定会立刻被送进苹果的加急审核通道。
如果在《2048》上线之前,他的《4096》还不能过审,那所有的山寨优势都将荡然无存,他这一个星期的心血和那99美金的开发者费用,全都会打水漂!
患得患失的焦虑,让这个平日里聪明的南区天才,犯下了一个致命的低级错误——病急乱投医。
周四晚上,利普挂着浓重的黑眼圈,疯狂地在各大黑客论坛和iOS开发者交流群里寻找捷径。终于,在一个名为“MacRumors地下论坛”的隐秘板块里,他找到了一个发着广告的帖子。
对方声称自己是苹果内部的审核工程师,只要支付100美金的通道费,就可以把应用直接插队,24小时内必定变绿(通过审核)。
利普的理智在早已被焦躁彻底压垮。
他没有多想,直接通过论坛私信加上了对方的联系方式。
“嘿,兄弟,我有个游戏卡在等待审核三天了,你能搞定吗?”利普飞快地敲击着键盘。
对方回复得很快,带着一种专业的傲慢:“把你的App ID发过来。100美金,只接受PayPal或者西联汇款。钱到账,24小时内状态变更为‘In Review(审核中)’。”
舍不得孩子套不到狼。
利普咬了咬牙,将100美金生活费通过PayPal转进了对方提供的一个匿名账户里。
“钱转过去了,快帮我处理!”利普焦急地催促。
一分钟过去了。
五分钟过去了。
十分钟后,当利普再次尝试发送消息时,屏幕上弹出了一个冰冷的系统提示:【您已被对方拉入黑名单,消息发送失败。】
利普呆呆地看着屏幕,大脑瞬间陷入了一片空白。
几秒钟后,一股直冲天灵盖的狂怒伴随着深深的屈辱感,几乎要将他的胸膛撕裂。
骗子!那根本不是什么苹果内部人员,就是一个在论坛里到处撒网钓鱼的混蛋!
而他,菲利普·加拉格,一个自诩能在南区街头玩弄所有人于股掌之间的天才,居然在互联网上被最粗劣、最弱智的骗术给割了韭菜!
他不仅失去了最后的100美金,更是输掉了唯一可能赶在交付截至日期前上线的希望。
这一夜,利普几乎没有合眼。
第二天,也就是周五的结款日。
利普顶着一双布满红血丝的眼睛,浑身散发着几天没洗澡的酸臭味,死气沉沉地坐在电脑前。
他的《4096》依然挂在“Waiting for Review”的状态上。
而今天,他必须面对杨坚了。
为了给自己那根本没法按时过审的项目继续拖延时间,利普在这周的代码提交中,再次延缓开发进度,导致今天本该100%交付的官方库,硬生生停在了75%的完成度上。
他连借口都想好了,换回最拿手的卖惨套路。
“没办法,杨。黛比的历史作业一塌糊涂,我必须得花时间辅导她。而且弗兰克昨天又喝醉酒把别人的车窗砸了,我跑了一整天的警察局才把他捞出来。”利普在心里反复演练着说辞。
下午三点。
利普深吸了一口气,推开了家门,硬着头皮走向了隔壁杨坚的公寓。
他要在今天,凭借自己这75%的代码,强行找杨坚结账。
只要拿到钱,他就能度过眼前的危机,继续等待他的《4096》过审。
“笃、笃、笃。”
利普敲响了杨坚的房门。
他并不知道,他觉得能瞒天过海的操作,在门后那个真正的架构师眼里,不过是一个小丑在滑稽独舞。
第五十八章 拆穿!
“笃、笃、笃。”
沉闷的敲门声在走廊里回荡。
利普站在门外,深吸了一口冷空气,努力调整着自己的面部肌肉。
他甚至在敲门前,刻意揉了揉自己的眼眶,让那双原本就因为熬夜写《4096》而布满红血丝的眼睛看起来更加疲惫和凄惨。
他今天必须把这笔尾款要出来。
这不仅仅是因为那该死的网络骗子骗走了他100美金让他感到无比肉痛和屈辱,更是因为他觉得这是自己应得的。
他没日没夜地敲了两个星期的代码,解决了那么多恶心的底层Bug,凭什么不能拿钱?
他要在自己的《4096》通过审核、正式一飞冲天并和杨坚翻脸之前,把最后一滴属于自己的血汗钱从这个吸血鬼手里抠出来。
一码归一码,属于他利普的钱,一分都不能少!
房门“咔哒”一声从里面打开了。
开门的是杨坚。
他穿着一件质地柔软的深灰色套头衫,袖子随意地撸到小臂处,手里端着一个印着不知名科技公司Logo的马克杯。
三台高分辨率显示器在并不宽敞的客厅里散发着幽蓝的光芒,上面密密麻麻地跳动着利普看不懂的服务器运维脚本和网络拓扑图。
“进来吧。”杨坚的声音很平静,他侧过身让开一条道,转身走回他的工作站前。
利普搓了搓冻僵的手,走进了温暖的屋内。
每一次走进杨坚的房间,他内心深处那股属于南区底层的自卑感就会不可抑制地泛起,但随之而来的,是更加强烈的嫉妒和不甘。
“坐。喝点什么?我这里只有黑咖啡和气泡水。”杨坚在宽大的转椅上坐下。
“不用了,我拿完钱就走,家里还有一堆烂摊子等着我。”
利普拉过一把折叠椅坐下,迫不及待地切入了正题,“今天的代码,我已经推送到你的远程仓库了。不过……”
利普停顿了一下,露出了他排练了无数遍的苦涩表情。
“不过进度可能没有达到你的预期。”
利普叹了口气,身体微微前倾,试图让自己的语气听起来充满了真诚的无奈,“大概只完成了百分之七十五。剩下的那些UI适配和部分内存泄露的Bug,我还没来得及修。”