程序员小说OutOfMemory[8-14]

我最早毕业是给人做游戏的,那个时候网游刚刚开始红火,网吧第一次开的比小发廊多。人们也对于游戏行业第一次有了一个清醒的认识,就是这个玩意居然能赚大钱,很多别的行业的老板在玩过几款游戏后也决定开始做网游。

我供职的第一个老板是学的管道卖的水管出身,没玩过网游,就是看着自己孩子一天到晚玩,觉得能赚钱所以才去做的。所以什么都是都是拿水管给我们打比方,搞的我们都像农民工一样。当然我们也清楚,除了薪水高了点之外,就是农民工。就这样一个多月以后老板还没想好具体做什么,每天就是让我们在企划里什么地方加个阀门,什么地方加点水,从来没正经说过游戏。终于有一天,据说前一个周末有员工建议老板先玩玩再说。

就这样,在一个天气好的想裸奔的日子里。老板喜气洋洋的走进来办公室,跟我们说:“魔兽世界里有的,我们也要有。他们没有的,我们也要有。”

“魔兽世界没有什么?”

“接水管啊!”

就这样,游戏过了一年多的时间磕磕绊绊算是完成了,直接卖给了一个运营商勉强算回本,之后老板就解散了团队不再做游戏。直到不久钱老板给我打电话,问我现在还想做游戏吗。

“想啊,而且我一直在做。”

“我最近终于玩到了一个我梦寐以求的游戏,”老板在电话那头估计已经感动的痛哭流涕了。

“多梦寐?”

“最梦寐?”

“叫什么?”

“Where is My Water,中文叫‘鳄鱼小顽皮爱洗澡’。”

“哦……然后呢?”

“然后你有没有兴趣给我做款游戏?”

“什么游戏?”

“乌龟小可爱爱洗澡。”

我把电话挂了。在我做外包公司的这段时间内,90%的客户是像他一样,过来跟我说要做一个游戏的copycat,然后照样去抄,唯一的更改可能就是把鳄鱼改成王八之类的。另外的10%是告诉我,他们有一个巨牛逼的idae,但是要赚钱之后才能给我结账。

想想其实这也是一个很好的老板,在项目快结束的时候,在凌晨2点我推完副本准备睡觉的时候,在明天是一个慵懒的能在床上滚来滚去的周末的时候。老板给我来了一个电话:“寇德不好了!”

“怎么了?”

“有个大bug啊?”

“什么bug?”

“你快过来吧!大事!”

我被迫在寒冬的黑夜中瑟瑟走了1个小时后打到了一辆车,上车师傅就跟我说:“大老远的就看到你了,跟了半个小时才敢载你。”

我冻得不停的搓手:“为啥不早点让我上车?”

“这么大半夜的溜达,谁知道是人是鬼啊。”

“我是程序员。”

到了公司之后发现老板在里面焦急的转来转去,公司占用的水管场的一个车间,所以面积比较大,转一圈估计也能有个三分钟。按照老板现在走路状态的尿性来看,估计至少完成了一个马拉松。

“我到了。”

“你怎么才到啊!”

“大半夜打不到车。”

“你早说我开车接你啊!快过来。”

我跟着老板到了他的办公室里。在到公司一年多以来我第一次进到这里,平时脑内各种幻想办公室内发生的种种奸情,但直到某天我跟一个同时聊起来的时候才释然。同事对着我骂道:“他妈的你口味真重,老板的秘书是个男的啊。”

我和老板站在电脑前,屏幕上就是我们的游戏。还在做新手任务。

“怎么了?”

“你看这里。”我顺着老板的手指看到屏幕上。

“怎么了?”我没有撒谎,我真没看出问题,至少没有任何bug提示,也找不到任何渲染有硬伤的地方。

“这句话,这里应该是个逗号吧,你打了一个句号。”

“草你妈……”

桂花和疯子那里的游戏据说开发的差不多了。

昨天桂花给我发视频邀请,我收到的时候兴奋的像朵花。

“你怎么没穿衣服啊!”视频那边是桂花的大脸。

“现在是凌晨四点。”我也比较无奈。

“哦,抱歉。我忘了时差了,那我闭上眼。”说完她真乖乖的把眼睛闭上了。

“那你找我什么事情?”

“是这样,游戏快开发完了,但是总要宣传一下是吧。如果没人下载这几个游戏,好像对于我们的平台推广也没有什么积极的意义。”

“你是让我给你找宣传是吧?”

“是,那就这样。”视频关了。

这是我第二次跟人视频。第一次是08年5月13号跟一个成都甲方聊天。当时我看着qq聊天窗口上有个从来没有点过的按钮,就手贱按了一下。然后视频那边的兄弟一转身就跑了。我花了大约20分钟感叹这个按钮竟然这么牛逼的时候,兄弟气喘吁吁的走了回来。

“大哥,你没事别晃窗口。吓人。”

“怎么了?”

“我公司在17层,累死我了…… ”

大概就这样,我大概明白了桂花是让我宣传一下他们的游戏。但无奈好像我也不认识这种渠道,想了想上微博发了一条微博,推广一下。然后思索了大概五秒钟,意识到这个行为是徒劳。我微博上除了员工之外只有三个粉丝,一个疯子一个桂花一个是发广告的。

“喂,我说,你们谁认识什么可以宣传推广游戏的吗?”我第二天上班就问员工。

“老板,你忘了三爷了么!”

“三爷?”三爷我当然记得,三爷跟我们不一样的,是个正正经经的创业者。那种骨子里都透着硅谷气质的创业者,连血液都透着高贵的气息。最近也在做app,而且据说app上线两个星期就拿到了一笔风投,据说有个小一千万。

“找他做什么?”但是我其实还没有明白员工的意思。

“老板你真傻,他们的app出来时,一天就爬到榜单顶了,肯定有什么法子,你问问去啊。”

姑且不说他说我傻这个事情,就后半句来说,是真有道理。

“喂,三爷你今天有空吗?中午一起吃个饭?什么?忙啊……那……那我一会去你公司一趟,劳烦您10分钟成吗?没问题是吧,那我收拾一下就过去。”

放下手机借了员工一张公交卡就找三爷去了。

“回来记得还我钱啊!”出门前员工还不忘了关心我。

反正因为离婚,我最后决定就把公司搬到自己家里来。但唯一的问题就是,当初没钱把家买在了市郊,去哪都不方便。

我一推门三爷再打电话:“我操,上次你还给我要2万呢,怎么这次就3万了!什么?我们拿到投资了,投资不是钱啊!我操,你不行我们就找别了。最多2万5。买你一个月,干不干?好的那就这样。”放下电话看到我可怜兮兮的站在门口:“哎呀,你来了啊。快进来。”

“好的。”我乖乖走进了他的办公室,坐定后她秘书给我倒了一杯咖啡。我扫了一眼这个秘书的正脸,不住骂娘道:“我操……”

“怎么了?”

“没事……”说着视线又往下打量了一下:“我操……”

“兄弟你没事吧?”

“没事。”说没事是假,可是我见多识广,否则乍一见他的秘书绝对喷血。太漂亮了。

“你找我什么事啊?看样子挺着急的。”

“是这样,我和朋友一起做了几款游戏,想问一下你们当初怎么宣传的。”

“哦,这个啊。小事啊。还劳您自己跑一次,您电话里说清楚不就省的跑了么。我刚才打电话就为的这个么。”他翻了一下手机,“来,您记一下这个电话。”

“干嘛的?”

“你app上线后找他们,给你冲榜的。”

“这么神?”

“这么神。”

“有什么门道?”

“门道多了,你看啊,也就是跟你关系好我才跟你说。你知道我上次创业为什么失败吗?就是找了一个傻逼的公司,给我搞出来的榜单跟打飞机似的,噌的就上去了。之后给投资人一看就知道我是刷帮来的。这次创业的时候我留了一个心眼,找了一个公司先试了一下,我操,这个更牛逼,刷出来的跟心电图一样。终于找到现在这个了,比较稳定。所以投资人一看就给钱了。”

“然后呢?”

“然后啊,这里学问大了去了。像周四周五一定要刷,因为周六日下载的人多,如果榜单位置好对真实下载提升也非常大。例如更新的时候一定要刷,这样就可以跟媒体说,你看我的关注度多高……总之你好好学吧。”

我出了三爷的办公室,临走还扫了一眼秘书。真漂亮。

拿手机给桂花留了个言:“这事我做不了。”

我想在的地方和我所处的地方,真的是在一个世界上吗?

我有个感情洁癖,就是认为代码注释写的不好的人水平都不行,尤其我不能容忍那些在代码开头都不愿意写出来自己名字的人。

这源自我小时候的一个习惯。那时妈妈总让我在所有自己的东西上写名字,从课本到记事本,即便第一次跟女朋友云雨之后我也拿起了笔去在她屁股上写名字,她温柔的看着我说了一句情话:“傻逼,你干嘛啊。”

这个习惯后来有所改观,就是我生怕某天捡到死亡笔记,然后……就没有然后了。

当然程序的注释不同人也有不同的风格,有的写出来像诗,有的写出来像屎。

六子是我见过唯一一个在注释里骂街的,

以至于我曾经在六子的代码里见过这样的内容。

/*Fuck*/ You();
六子本身是野路子出身,跟我在一个游戏开发论坛上认识的。当时大家水平都不高的情况下,我是为了赚钱,他是为了理想。那种崇拜之情溢于言表。

六子当时不知道从哪搞了一盘叫做《游戏工厂》的软件。按照介绍来说是能开发大商业游戏的,这点也让我们这些穷困潦倒的学生党们羡慕不已。那段时间六子用本来就不宽的网线给我们发了很多截图,我顿时觉得那才是一名游戏开发者应该做的事情。几个月后我也找到了这款软件的种子,下下来后发现理想破灭的如此不动声色。真他妈的难用……

我问六子:“怎么难用的东西你怎么用下去的。”

“总比没的用强。”

后来大学的一个暑假我和六子第一次见面,在一个海边城市租了一见筒子楼,但庆幸的是面朝大海。然后我们心里是春暖花开。当时也没有空调,每天就是两个大男人赤条条的坐在屋子里。实在热的不行了就下海扑腾一会。

我们两个是合计着做款游戏,商量了很久不知道做什么。当时我认定做一个最底层,群众最喜闻乐见的故事。我告诉他,我们要做一款,英雄杀掉魔王拯救世界的游戏。

“这个也太土鳖了吧?论坛上99%的人都是做这个了。”

“那他们为什么做这个?”

“有市场呗。”

“那还是啊。”

“但那不够艺术啊。”

“但有市场啊。”

当时我觉得六子好就好在脑子比较活,所以说两句就能明白。后来才知道,原来是六子没明白我的意思,但是又不愿意跟我怄气。一个合格的程序员最闷骚的地方就在这里,如果你不看他的代码,永远不知道他想的是什么。

整体开发极其不顺利。

因为我们不打算用现有的开发工具,所以决定从底层写自己的引擎,但两个人代码功底都不好,算法能力更是一塌糊涂,遇到了很多极其奇葩的问题。

像当时在做寻路模块的时候,我们看着网上的A*算法但是怎么都写不出来程序。就想编出来了很多自认为是独创的算法,例如从A点到B点画一条线后在障碍物上获得一个出口和入口,再顺着障碍物走左右两条线从出口画到入口,最后整理这个路径就可以了。在地图不复杂的时候,没出现太多问题。

那段几乎是我人生最开心的时刻,只是后来做出的游戏扔到论坛上被人骂的一塌糊涂,没过多久我就因为就业压力很少关注这个事情了,渐渐也和六子断了联系。

几个月前我去看一场iOS游戏开发者的大会,压轴嘉宾我惊奇的看到了六子的名字。原来他现在已经成为了一个成功的游戏开发者,西装革履的站在台子上给我们去讲自己的成功史,之后和组织者开心的回了颐和安缦。

晚上我躺在如家潮湿的床上,听着隔壁此起彼伏的叫声,想起来当初在海边的一个凌晨。我跟六子说:“你睡会吧。”

“不用了。我还是把这段写完吧。”

“又不着急,休息一会吧。”

“不了,我明天想吃早饭,如果睡了就吃不到了。”

六子笑了。

十一

我打电话到疯子的公司,想问问进度如何。员工告诉我疯子住院了。我怕好不容易有个根不红苗不正的朋友,就这么呜呼了实在可惜。

直接打车到了医院,看着疯子躺在床上举着一个iPad,居然还很无耻的翘着二郎腿。

“寇德你来了。”我站定了几秒之后他根本不看我的就开始了问话。

“我听说你生病了。”

“你说,像iPad,像手机,躺着使用是不是一个主要的需求场景。”

“是吧……”我尴尬的答道,因为完全没有反应过来他到底要说什么。

“这傻逼游戏非要重力感应,玩的我好辛苦。 ”

“哦……你病的如何了?”

“你看我像有事的吗?”

“不像。”其实我心里说的是像。这个世界上有两种病需要住院,一种是已经失去行动能力了,但还在苟延残喘。另外一种是活蹦乱跳,但是时日不多。相比较前者后者更可怕,那种感觉像是自己抱着一个C4,然后把起爆器给了一只猴子。

“本来就没事,就是被我们一个傻逼员工吓的。”

“咋了?”

“我们之前那个员工不是去世了么,我就把他的电脑给一个新员工了。今天那个新员工也没来,说是起水痘了之类的。但是我上班时候偶尔溜达,发现那个电脑上还在做着东西。我眼睁睁看着一个屏幕上在蹦代码。”

“我擦,见鬼了?你这个员工真好,死了还帮你开发。”

“狗屁!那个新员工让别人给他开了一个远程桌面……”

“然后呢……”

“然后我嗝的一下就过去了。”

“你真牛啊。”

“别废话,看我拿东西了吗?”

我现在才想起来这个事情:“抱歉,我明天给你。”

“这就对了。话说我刚才吓过去的时候真的觉得自己入了一次地狱啊。”

“那好玩吗?”

“不好玩,我溜达了七层之后就回来了。”

“哪七层?”

“应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。”

我大约思考了几秒钟后说道:“你说,这是不是某种暗示。”

“暗示什么啊,你应该还有别的事情吧,否则不可能连东西没拿就来看我。”

我确定疯子一定没事。

“哦,是这样。开发进度做的如何了?桂花那好像有点着急。”

“别提了。太伤感情了,整天就看苹果改规则,两个月突然出来好几个新分辨率,SDK又是上下不兼容。你要是有意见就找苹果去。”

我突然觉得根我们做Android的也没什么区别,但还是要安慰一下:“你们的开发环境多好啊。”

疯子掩面痛哭:“这Xcode是带着bug一起升级的。”

“那……”我本来是真心要吐槽Eclipse。

“还没完,每次点个run都要等一部电视剧的时间,真机调试一次直接可以看电影了。”

“那……”我还是想把话说完。

“那个等待时间我都用来刷微博了,所以一年涨了一万多粉,收入一天不如一天了。”

“那也算有点收获……”终于说出来了,还不是真心话。

“哎,其实程序员都是苦命人啊。”

“嗯,你也辛苦了。”

“你像我们新招的那个小子。什么都挺好,就是脑子有点呆,也是个可怜人啊。”

“怎么了?”我觉得水痘没什么大不了的,只是这么大还得有点罕见。

“我前几天在论坛上发帖子招聘,其实根本不是招聘,就是宣传一下,直接打广告肯定让人删了。这个小子就找到了我。我问他为什么想换工作,你猜他怎么说?”

原来不是说水痘,我假装思考了几秒后说道:“不知道。”

“你当然不知道了。他说,上个公司搬家。然后忘了告诉他新公司在哪了。”

十二

“你说,为什么C++没有garbage collector?”

“如果有的话,那C++还有什么?”

“有道理,那是不是,如果Java的garbage collector正常工作,这个世界上就没有Java代码了?”

“理论是这样的。”

听着两个员工在身后有一搭没一搭的聊天,想起来以前一个真实的故事。

在大学的时候,有一门很老的C语言课程,用的都是上个世纪的教材。中间有一个学籍管理系统的大作业,班上很多人写不出来。老师就给了我们一份样板,据说是她曾经暗恋男生的。

这个老师也就三十多岁,在本校从本科念到了博士,然后直接留校。说起来算是个美女,即便已近中年还颇有风韵。班里的男生经常拿她取乐,她也从不介意。

在一个阳光格外出彩的下午,她跟我们说:“我这里有一份以前我上大学时候写的作业,和你们这次作业比较像。就是昨天有同学跟我说不会做,我才翻出来的。有兴趣的同学下课过来拷一下。”

“老师,你上大学的时候我们还是小蝌蚪吧?这都留着呢?”

“嗯,我当时喜欢一个男生,就想尽办法跟他一个小组做作业,这个作业就是当时做的。只是,我当时光顾着别的了,作业其实都是她一个人写的。”老师笑的格外灿烂。

晚上我光着身子在飘逸着酸黄瓜味道的寝室里打开代码,想看看究竟有什么可以借鉴的部分,几分钟后就发现了一行至今仍然难以释怀的注释,可能一直到现在我习惯于一行一行读完所有的注释也是因为这个:

/*
* 界面模块:生成图形界面。
* printf(“PS:我爱你。\n”);
*/
第二天正巧在学校打球后碰到了老师,我说:“老师你还真浪漫啊。”

“怎么?”

“你的代码?”

“哦,那个啊。昨天不是说了么,那不是我写的。”

“那你看过吗?”

“没有啊,怎么了?”

“哦,没事。代码写的挺好看的。”

“哦,我替我朋友谢谢你。”

“你现在还和那个朋友有联系吗?”

“啊,很久没有了。最后同学聚会的时候,只是知道他做了老板。你怎么好奇起来这个了啊?”

“没事,就是想知道什么样子的人能写出来这么优雅的代码。”

第二天老师站在讲台上,眼眶都是肿的。

有好事的学生站起来问她怎么哭了。

老师笑了笑说道:“我丢过一个扣子,好不容易找到后,发现我已经换了一件衣服。”

现在回想起来这个事情要远比当时伤感,那段时间,我的思绪经常回到老师的大学时代,看着她每天在最美的晨光里期待他的影子。

我转头问两个依然在扯淡的员工:“你们大学时候有什么喜欢的人吗?”

“当然有了。”一个员工回答。

“然后呢?”

“然后啊,我当时巨想追求她。而且我担心现在不下手,以后工作了更没人要了。”

“再然后呢?”

“再然后我妈妈让我专心学习,等牛逼了自然就明白了。”

“那你明白了吗?”

“当然明白了。我明白我当时的担忧全是真的。”

十三

程序员有一条很可怕的鄙视链,基本上是写Haskel的鄙视Lisp,Lisp鄙视Scheme,Scheme鄙视Ruby,Ruby鄙视Python,Python鄙视C,C鄙视C++,C++鄙视Java,最后Java可怜兮兮的看看做.Net的,.Net当然也不甘寂寞,对一旁的美工投去了无限的鄙视。

结果周末美工带着女朋友去公园,一帮在鄙视链顶端的傻逼还在加班。

今天是周末,然后我们所有人走在加班。

前几天接了一个其他外包公司再次包给我们的单子,我本来以为是二次外包,结果没想到是第七次了,基本上包给我们的价格铁定亏。当时我就说不干,可以那边说没法加价,但是可以临时借我们一个程序,如果别的项目需要也可以临时用用。我就同意了。显然,事情比我预想中要好多的。借来的还是一个女程序。

昨天晚上我和哥几个聊天,问他们:“如果夜里,一个单身男程序和一个单身女程序在一起,你说会发生点什么?”

一员工抢答:“骂产品吧。”

另一员工插嘴:“铁定是骂运营啊。”

终于有个有良心的员工想到我了:“扯淡,一定是在骂老板。”

我觉得是时候稍微插嘴了:“为什么不会安心写程序呢?”

“呵呵。”

大学时候我们班里有两个女生,但这个事情一直到一个学期以后我们才发现。因为有些人从外观很难区别物种。

今天我看到了女程序,比我想象中的要漂亮的多,真的是那种看到鼻血流一地的素质,随便拍张照片都能觉得是明星照。

这个女生中文名叫高兴,英文名叫Happy。名字很对得起长相,进来之后一直笑嘻嘻的。开始我们觉得她是那边公司扔过来滥竽充数的,但想到好不容易有个异性也就没多说什么。一天后我们发现自己错了。她堆代码的能力远远强过我们所有的人。

“我说,你是怎么学的。相当厉害嘛……”

“其实我本来是做模特的……”

“哦,那怎么学编程的。”

“因为当时一个游戏公司给我签了一个showgirl的合同,当时老板是做美工出身,就天天教我画图之类的……”

“然后呢?”

“然后我又以美工身份跳槽到一个网络公司……”

“那到底什么时候开始学的编程?”

“就是有一天我发现程序员的收入比美工高不少,就顺口问一句公司的技术总监,结果技术总监就天天帮我辅导。后来即便有问题了,也不停有人帮我,慢慢水平就好了。”

我尽力检索大脑的每个神经元,只是想起来最早在游戏公司时曾经咨询过一个大牛怎么处理一些数据,只换来一个字的回答:“滚。”

“那你是怎么学的编程啊?”高兴问我。

“我大学就是学这个的。但是……”猛然一个大学室友的故事闪到我大脑里。

“怎么了?”

“我大学有个室友,有一天偷看我电脑找黄片。当时里面存了很多编程的视频。他以为是黄片就看了。”

“然后呢?”

“然后他一个学管理的,毕业之后去微软做程序员了。”

“机缘巧合啊。”

十四

刚刚上大学的时候,我想泡在学校图书馆打工的小妹妹。在一个光芒万丈的午后,我鼓足怂了二十年的勇气找到她,轻声细语的拜托她给我找一本编程书。

回来她给了我一本《边城》。

显然,高兴比她要强得多。至少高兴来了之后,整个项目的进度快了一倍以上。这种高效致使我一直不明白,这么漂亮能力又好的程序员为什么会被借到我们这种连小蝌蚪都无处安放的公司来。终于一天中午在叫完盒饭后,我忍不住问了一下她:“你到底为什么被借过来啊?”

“哦,就是有一次。老板开会,跟我们说他的字典里没有失败两个字。”

“然后呢?”

“然后我说我的字典借你。”

“总不能因为这点小事吧。像这帮孙子还经常说我坏话呢。”我环顾一下一帮在QQ斗地主的孙子。

“老板你傻了啊。”

“你看,他们又骂我了。”

“她老板是个女的啊。”

我顿时领悟。

“姑娘,你也是个苦命人。要不然就留在我们这里吧。”

“好啊。”

于是我终于有了一个不骂老板的员工。

又过了几天,高兴第一次主动跟我说话:“寇德。”

“嗯?”

“我发现你和最早教我编程的人很像。”

“为什么这么说?”

“你们经常都是看着代码一脸淫笑。”

我确实有这个毛病,所以问他:“那个人也有这个习惯吗?”

“有的,但是有一点不一样。”

“怎么了?”

“他经常用一些HEX软件,打开AV文件,对着16进制代码淫笑。”

“我操,这也太牛了。”

程序员都是自负的,但跟武侠小说里的江湖混混一样,要是真有人能证明比他厉害,那他终生也会像门下走狗一样信奉于这个大牛。

于是到底什么样子的程序员才是一个好的程序员的问题我也经常思考,在工作了很久,自己办过公司以后才发现,最牛的程序员会在周日晚11点59分告诉你本周项目完成,一般的程序员会在第二周周一告诉你上周项目完成,最烂的程序员……你就找不到他人在哪里了。

我没开玩笑。

我曾经的一名员工就是这样。某个周一早上他给我发短信,说家里有事要赶紧回去一下,能不能把拖欠的薪水给他。当时我正在为一个奇怪的问题头疼,就是我们的网站无论如何都上不去了。更奇怪的是根本都ping不通,给机房的人打电话也没人接。心情不好的前提下就顺手回了一条:“你先回去,我有钱了打你卡上。”

“我就是下午三点的火车,着急用钱,回去怕没有地方取,能不能尽快给钱我啊?”

我崩溃了:“妈的,你要么跳楼讨薪去,如果记者报道了,增加咱们公司的知名度,兴许我还能给你点。”

“老板你真狠,哦,对了。我还从公司拿走了一个东西。”

“什么东西?”我回复前还特地看了一圈,没发现丢什么东西。

“你们的服务器现在在我手上,我在火车站前的肯德基里,如果你能在我下午我上火车前过来,我就把服务器还你。注意,考虑到服务器的安全,请不要报警。”

“你稍等。”

原文:https://gitcafe.com/Superwyh/OutOfMemory