那些日子(一)
明天就是五一假期了,同事都已放假。我不打算在假期加班,因为加班也无事可做,手头上的工作都需要与人合作。
前几天和新同事吃夜宵,大家聊的异常兴奋,我也忍不住开始想当年。当年那些美好的日子,记忆已经很模糊了。我想再过个两年,估计我都不能准确回忆起那些曾经对我影响深刻的日子准确的时间。是时候记下点什么,对自己是一种纪念。
我这人有个优点,选择性记忆,那些不快的回忆很容易随风而去。活在我记忆中的人们,对他们只留下感激。我也曾经爱写日记,很早我就写电子日记,记在自己的机器上,PDA 上,当我有一些不愿意再回忆的事情时,我会个将整个文件加上密码,长长的一次性密码,保证自己只能记住一小段日子。当这段日子过去,密码就消失在记忆中。然后再也打不开这些文字,等到下次更换硬盘,无论我多么的想再看一眼当年的自己,也无能为力,只好把加密过的文件删去。
我想我就是这么成长过来,没有什么挫折的感觉被反复咀嚼,都已经抛在脑后。生命中没有什么不可以失去的,这个道理很早就明白了。我曾经懊恼过丢失了大量的源代码、自以为写的不错的文章、早年的聊天记录、珍贵的日记、数年的电子邮件…… 最后我明白了,一切的一切不过是身外之物,我能拥有回忆中最美好的部分,那么已经是特别幸福了。
不过也正是如此,以下的记录也只能是我努力的回忆。或许因为时间久远,跟真实有所偏差,或许从我的角度只看到的事物的一面,但是、我可以保证,并没有故意在叙述中掺差虚假的东西。
是的,我想讲一个真实的故事,一个拥有数千万玩家的游戏诞生的故事。我并不喜欢这个游戏系列本身,但是我为这个产品自豪。我的代码曾运行在几千万用户的机器上,作为一个程序员,还有什么比这更让人满足的呢?也许有,比如让这个用户数量再扩大 10 倍。
认识“古越”还是我读大四下学期的时候(2000 年初)。有一天,他在 QQ 上蹦出来,问我一些“风魂”的问题。我当时上网主要在泡 sina 的游戏制作论坛,“风魂”就是那几年写的游戏之作。
更早的时候,我比较喜欢在 dos 下写点东西。研究一下 allegro 这个游戏开发库。我翻译了 allegro 第 3 版的所有文档(为此还自己做了一个辅助翻译工具),这项工程耗去了很长的时间,从 98 年开始到 99 年中,业余时间我几乎都在维护这个东西。为了翻译不出差错,同时也阅读了大部分 allegro 的源代码,从中学习到了许多游戏引擎的理念。
那些日子,时常在 allegro 的 maillist 说几句话,为一些代码做优化并迅速被 allegro 开发社区吸收进去。同时我也提出了许多自己的想法。不过由于新的想法需要对 allegro 的接口做调整,这是一个成熟的库不可接受的,和 allegro 的原作者 Shawn 通 email 的过程中,Shawn 用很友好的语气说,如果你觉得那样比较好,为什么不自己做一套东西出来?然后我就做了,甚至第一个版本在 allegro 的 mallist 中发布。有人说,这样的东西没什么意义,allegro 已经够好了(当时已经有了 Windows 版)。Shawn 还帮我解释。
哦,我说的就是“风魂”。甚至不到一个月,风魂就有了一个匈牙利用户,他还用它做了一个小游戏。
这是 1999 年 3 月 4 日到 3 月 8 日的事情。我在网吧通宵了三个晚上把风魂的第一个版本完成。之所以日子记的这么清楚,是因为我查到了当年留下的一份记录文档。开发环境是 MSVC 5 ,因为我不愿意(也没有足够的硬盘空间)装 IE4 ,所以没有安装 6.0 的 VC 。
“古越”,就是天夏的 client 主程,也担当了后来大话西游1 的 client 主要逻辑的编写工作。那个年代,精通 Windows 写游戏编写的人不多,我也只是稍微熟悉而已。很多人刚从 dos 年代过来不久,DirectX 的中文资料很少,且比较难查到。我很能理解他们选择使用“风魂”这个学生作品的缘故:开源 + 使用简单(简单的 C 接口) + 高效(在硬件条件受限的时候,我在软件优化上下了许多工夫)。
天夏这个小公司当时正在开发一款图形 MUD ,名字就叫“天下”。当时估计有很多 mud 迷想把 mud 图形化,但是做出来的产品寥寥。我只记得有一款叫作“笑傲江湖”的所谓图形 mud ,仅仅只是给文字 mud 加了点图片而已。真正意义上的图形化还没有人完成。
显然,天夏的开发团队也没有前人的经验可以追寻,甚至他们没有开发过单机游戏。忘了当年“古越”问了我一些什么,只是最后,他想请我帮忙做一些模块,可以让游戏开发更简单一点。这个工作是有酬的,这点吸引了我。要知道当时都是穷学生,我连买块硬盘的钱都没有,显示器也已经严重老化(93 年购入的时候已经是国外的电子垃圾,不知道服役过多少年了), 我的开发机器中的 CPU 是网友的公司赞助的,主板是编程比赛的奖品,内存条这些配件用的先前一些兼职工资买的。
所以,任何一个用自己的技能赚钱的机会都不会放过。这样,我又认识了 micro ,天夏当时的头儿之一,据说他当过 mud 的巫师,也写一些服务器的代码。不过后来我们见过面之后,一起在网易共事的日子里,几乎没见他再写过什么代码,这些是后话了。
我写了一个支持 Z buffer 的 2d 模块。这样,他们可以简单的处理 2d 游戏中 sprite 的遮罩问题。因为需要让当时配置比较差的机器(486)能跑起来,我尽可能的用汇编优化。这些工作耗费了我一两周的时间。
快完成的时候,我在网上询问了朋友(逆火的庞鑫,他与我同届,但是他在大学期间已经发行了一个游戏了:天惑),庞鑫告诉我说,他们为了养活自己的工作室,时常也接一些单来做。这样的单大约应该开个 1500 的价。当时我天真的觉得,1500 实在是个天价,要知道 97 年的时候,我帮人用 delphi 1.0 做了一个完整的软件也才拿了 600 多点,那个用了我半个暑假。
所以我跟 micro 提的价码是 1000 。有点意外的是 micro 还是觉得有点高了,不过我理解他们的艰辛(当时是一个很小的工作室,没有什么投资,几个人自己在弄),重新核算了一下,把自己花掉的时间统计了一下。按每小时 20 块(比家教的水平高多了,当时就这么想的)得到一个大约 500 的数字,micro 把款打给了我。这就是我和天夏的第一次合作。
btw, 具体的数字我记不太清了,只能说大约这个数量级吧。大学毕业后我就再也没缺过钱用,对钱的数字极其不敏感,所以忘的快。
毕业的第 2 天,我去了北京。在创意鹰翔待了三天。林广利是我很好的朋友,我看他似大哥一样。他邀请我去的北京。鹰翔当时的情况看起来不是很好,不过我不太所谓。总算毕业了,我觉得我自由了,再也不用看老师的脸色,不用应付烦心的考试,不用担心课堂点名……
当被问及我们应该重新开始做个怎样的游戏时,大家并没有想到网络游戏,虽然那个时候石器时代已经开始流行。我听到的圈子里的说法是,“目前国内有 200 个网络游戏正在开发,明年至少有 20 个上市,再开始做已经晚了,也没啥意思”。事实上,2001 年并没有那么多国产网游被开发出来,我所熟知的一个:大话西游,可耻的失败鸟 :D
那几天我们讨论了许多,但是不知道为啥,我始终没什么兴趣。我不知道我需要什么,但是我知道那些不是我想要的。
逆火工作室在创意鹰翔对面的院子里,我联系庞鑫出来聚一下的时候才发现这一点。太巧了,北京如此之大,此刻又如此之小。
庞鑫是个典型的北京人,说话极富煽动性(会忽悠?不过人家也的确有真本事)。我 98 年在北京参加一个大学生计算机比赛时,认识的他。他倒不像我是参加编程部分的比赛,而是展出他的 3d engine 。98 年,3d 显卡还是很稀罕的年代,所以我很是佩服。
庞鑫试图说服我加入他们的工作室,跟随一个投资者(yan dan ,那个时候听说很有名,他说他帮过许多人,比如雷军)做手机的软件。据说很有前景。EPOC 系统,我第一次听说,现在已经改叫 Symbian OS 了。我们为 EPOC 做一个 3d 游戏引擎,应该很不错的。我可以做我最熟悉的一块,在 arm 处理器上,用 arm 汇编优化 2d 部分(因为手机当时还不能配备 3d 硬件,都是软件实现,最终都需要转到 2d 显示)以及一些底层核心代码。
安宁(后来为天下 2 写了几年的程序)当时也在那里,我挺喜欢这个人,他曾经用汇编写了一个软件 3d engine 。符合我心目中的牛人标准。
庞鑫的说服工作只用了几个小时就成功了。我给林广利打了个电话,他只是叹气而已,没太说什么。我就直接住进了逆火工作室租的那间大屋子。
那段日子过的挺自在,都是一帮好朋友,住在一起,半夜饿了就打车出去永和喝豆浆。白天叫些外卖。伴晚时分,也出去闲逛。我在北京有很多朋友可以一个个蹭饭 :)。几乎都是游戏圈子的。比如,最早拉我进入这个圈子的王欣(八爪鱼工作室的负责人);为无数国产游戏“擦过屁股(修补 bug 并完成游戏好拿出来卖)”的余雪松(可能说起后来的 kele8 大家更熟悉一下)等等。
这段日子一直过到天气开始转凉。我还清晰的记得那一天,有人通知我们第 2 天去深圳见风险投资的公司代表。我们连夜做了 PPT ,赶上第 2 天早上第一班飞机南下。我们只在飞机上打了个盹就被拉到另一个合作的团队的驻扎地。这个团队当时叫做 wass ,后来其主干有建立了家新公司唤作“数位红”,现在好象已经不存在了,不过应该 google 的到。
原来投资商是再后一天从新加坡去广州的。我们在深圳只是再准备一下。这次让我领略了该怎么忽悠风险投资 :)我们掐着秒表准备演讲内容,甚至连中场休息的笑话都是预备好的。
我的部分不太需要准备,反正不是说大话,怎么想怎么说即可。所以得以有两三小时的睡眠。等天再此蒙蒙亮的时候,我们已经上了去广州的 taxi 。几乎是一睁眼就到了,除了困,我什么都不记得了。
我和庞鑫的演讲部分安排在最后,会议室里,我们拼命的喝着不加糖的咖啡,中间上了三次厕所。我和站在外面吸烟处猛着抽烟的新哥们相似而笑。 40 多小时没怎么合眼。大家都困死了。
投资商是宏基,看起来比较重视,派了个元老过来谈的,带了很多人。我和庞鑫的演说很成功,想来是因为我们年轻,表现的相当有激情,甚至还为技术细节吵了两句。说完了我们就回房间睡觉去了。晚上有人来敲门的时候,已经带着好消息。
虽然我们要求的四百万美刀没有被答应,不过对方还是答应投资 1.5M 。我们这大摊子人一共保留多少股份不太记得了。只记得逆火工作室的哥几个分到百分之十几。
我们需要签四年的合同,合同很厚很厚,回北京后还安排了律师给我们讲解。我觉得学到了许多。只是最后签字前的那一晚,我想了一个问题:这是不是我的追求,我要的人生?
庞鑫曾经跟我说,没错,如果我们有 15w RMB 我们就可以自己干。即使大家现在一无所有,只要有技术,无论做点什么,不需要多少时间就可以赚到这么多钱,然后开始做自己更想做的东西。但是,或许有更好的路,让我们就有更高的起点,节约我们的生命。我知道逆火的兄弟曾经过的很辛苦,《天惑》做了三年多,只卖了五万块 RMB ,而且出版商还拖欠款项很久。但是我没有亲身经历,我不喜欢手机这个开发平台,离我的想法太远。
在那个大屋子里,大家围坐在一起,劝我不要走。我也很犹豫。负责投资的那个头儿接了电话过来,只问了我是否真的想离开。我说,我不确定,但是我知道,这些不是我想要的。这句话,很多年后我又说过一次。每次说出来,都得到了理解。就这样,我离开了这个团队。
下次再接着写吧,我想会一直写到梦幻西游的成功,是个很长的故事,不知道有没有朋友会一直读下去。我只是想记录这几年的历程,没有读者也无所谓。
注:本文全凭记忆复述,和事实或有偏差。如以后发现错误之处,会尽量修正。顾谢绝转载。
Comments
Posted by: lee | (38) July 19, 2018 07:31 PM
Posted by: qqpet | (37) March 28, 2009 06:25 PM
Posted by: dai | (36) May 30, 2008 11:34 PM
Posted by: simon | (35) May 19, 2008 09:40 AM
Posted by: muzichonggong0726 | (34) May 17, 2008 09:57 PM
Posted by: Jack | (33) May 11, 2008 07:09 PM
Posted by: Jack | (32) May 11, 2008 07:06 PM
Posted by: ronalfei | (31) May 9, 2008 11:36 AM
Posted by: tiroc | (30) May 6, 2008 09:57 PM
Posted by: aanan | (29) May 5, 2008 11:47 PM
Posted by: rocky | (28) May 4, 2008 02:17 PM
Posted by: 江心 | (27) May 4, 2008 08:36 AM
Posted by: xmfs | (26) May 3, 2008 07:43 PM
Posted by: 开心 | (25) May 3, 2008 11:25 AM
Posted by: 星际 | (24) May 2, 2008 12:56 PM
Posted by: pongba | (23) May 1, 2008 08:49 PM
Posted by: hello_world | (22) May 1, 2008 05:45 PM
Posted by: 大饼 | (21) May 1, 2008 02:14 PM
Posted by: KaKa | (20) May 1, 2008 01:51 PM
Posted by: kai | (19) May 1, 2008 01:19 PM
Posted by: kitsionchen | (18) May 1, 2008 12:56 PM
Posted by: Ron | (17) May 1, 2008 12:33 PM
Posted by: perlma | (16) May 1, 2008 12:29 PM
Posted by: cyz | (15) May 1, 2008 12:08 PM
Posted by: 惊涛 | (14) May 1, 2008 11:02 AM
Posted by: lockchen | (13) May 1, 2008 10:53 AM
Posted by: nothanks | (12) May 1, 2008 10:23 AM
Posted by: Echo. | (11) May 1, 2008 10:18 AM
Posted by: Coder9 | (10) May 1, 2008 10:16 AM
Posted by: Hermit | (9) May 1, 2008 09:31 AM
Posted by: jMulrO | (8) May 1, 2008 09:12 AM
Posted by: heidi | (7) May 1, 2008 09:05 AM
Posted by: Felix Wong | (6) May 1, 2008 05:54 AM
Posted by: Joe | (5) May 1, 2008 03:11 AM
Posted by: Joe | (4) May 1, 2008 03:09 AM
Posted by: yeka | (3) May 1, 2008 02:58 AM
Posted by: yeka | (2) May 1, 2008 02:54 AM
Posted by: duguguiyu | (1) May 1, 2008 01:49 AM