第2章: 兴趣与劳动
十六进制
小学六年级的我,除了宝可梦之外,也玩各种各样的游戏。因为没有最新的游戏机,所以总是去朋友家玩。经常去拥有PlayStation或世嘉土星的朋友家。我们经常玩《迷你Q赛车》,《魔卡幻想》,《最终幻想VII》等游戏。有一次,像往常一样去朋友家玩《怪物农场》。虽然我知道他拥有什么样的怪物,但那天的情况与往常不同。他的怪物所有参数都达到了最大值。在他故意卖关子后,我终于从他那里得知了秘密。那个秘密是一个叫做”Action Replay 2”的非官方外设,它可以修改游戏数据(准确地说是内存中的数据)。将这个设备连接到PlayStation,输入类似”3009AED1 0064”这样的修改代码,就能让玩家等级变成100,解锁隐藏角色,或获得游戏中的所有道具,简直像魔法一样。
不过,实际上通过这种方式将等级提高到100后玩游戏,很快就变得无聊了。以前辛辛苦苦培养角色,一次又一次挑战强敌时的快感完全消失了。然而,比起游戏本身的乐趣,我对”Pro Action Replay”的运作原理产生了浓厚的兴趣。我很好奇这些字符序列是如何提升角色等级到100的。由于《游戏实验室》杂志上刊登了关于修改代码的内容,我经常去书店翻阅。在和朋友一起输入各种修改代码的过程中,我逐渐理解了其中的规律。我记住了要将游戏中的参数设为100就输入0x64,要设为255就输入0xff。慢慢地,我明白了这些奇怪的字符序列被称为”十六进制”,它是构成游戏和计算机运作的基础。在阅读《游戏实验室》的过程中,我了解到游戏是用电脑制作的,使用电脑可以找到游戏的修改代码,而且有一种叫做互联网的东西,在那里可以找到任何游戏的信息。我逐渐希望拥有自己的电脑。
第一份兼职工作
我有一个比我大一岁的姐姐。因为年龄接近,从小就一直一起玩。刚来日本的时候曾一起玩游戏,但那时姐姐已经是初中一年级,对电视游戏没什么兴趣。有一天,姐姐突然告诉我她要开始送报纸。我们家依然很贫穷,我和姐姐都没有零花钱。上了初中后,姐姐需要更多钱,所以她找到了自己赚钱的方法。我觉得这是个好主意,于是我也和姐姐一起在当地的信浓每日新闻社开始送报纸。一开始我负责约80户邻居家。每天早上5点,我会去附近的公民馆门口取报社预先堆放的报纸。将报纸装满自行车的后架和篮子,在几乎没有集合住宅的地区挨家挨户送报,大约需要一小时。周日时广告量增加,报纸体积会是平时的两倍。这样一次就无法送完,我不得不只装载一半的报纸,送完后再回到公民馆取剩下的一半。如果早上6点半以后报纸还没送到,客户就会开始给报社打电话,所以必须在那之前完成。起早当然很辛苦,但更让人讨厌的是我总是被狗吠。雨天时报纸会被淋湿。一旦出现投诉,就必须用塑料袋包好送到那家,这会进一步增加报纸的体积。我小时候的长野冬天会下大雪,在那种环境中送报纸特别困难。元旦最为艰难,报纸体积是平时的3到4倍,还要在大雪中送。不过,元旦送报纸可以得到5000日元的压岁钱,为了这个,我即使手指冻伤也坚持下来。每周只休息一天,每月还有一天停刊日。工资大约是每月15000日元。随着逐渐熟练,我被允许增加送报户数。最多时每天送约120户,月收入约2到3万日元。我从小学六年级下半年一直做到初中三年级。
对刚开始送报纸的小学生来说,1万日元是一笔巨款。发工资那天我总是去买游戏。虽然大部分钱都用在了游戏上,但随着我想了解更多游戏原理,逐渐开始希望拥有一台电脑。由于电脑很贵,我决定一点一点积攒送报纸的工资。
我自己的电脑
2000年1月,前一年已经进入当地东部初中成为初中生的我,握着送报纸攒下的7万日元和父亲帮助的3万日元,前往LAOX电器电脑商店。我的目标是之前看中的一台廉价电脑,索得科技的PC STATION M250。
好评的 ¥99,800PC 推出新型号
搭载英特尔®赛扬™处理器500MHz
“PC STATION M250”
8倍速DVD-ROM驱动器,10GB硬盘,
ATI RAGE PRO TURBO图形系统,8MB显存,
15英寸显示器,调制解调器,扬声器,附带包括JustHome在内的
各种应用软件
(搭载Windows 98 Second Edition操作系统)
带着被这样的宣传语激动的心情进入LAOX电器,我径直奔向电脑区。在我经常光顾的LAOX电器,我比新店员更了解每样东西的位置。到达电脑区域,终于迎来人生的重大时刻。”听说Windows 2000即将推出,这台能便宜一点吗?”指着PC STATION M250,我对店员说出了精心准备的台词。”哦,Windows 2000与普通人没什么关系。”我的准备被轻松驳回。对于渴望得到电脑的我来说已经没有继续讨价还价的耐心,我将紧握的10万日元交给店员,终于换来了梦寐以求的自己的机器。
有了第一台电脑,从将”安装”错读,到为点击和双击的区别而苦恼,我与计算机的长期关系就此开始。
“没有网络的电脑只是个盒子”,这种程度的知识我已经预习过了,所以得到电脑后我立即签约了互联网提供商。虽然是以父亲的名义,但费用由我自己支付。从小就负责各种家庭手续的我,这种事情轻而易举。当时的互联网是拨号方式,通过电话线连接。我想很多人还记得调制解调器发出的”哔,啪啪啪,哔”这样的声音。家人入睡后的深夜11点,直到第二天早晨电话费固定的”电话时间”是我的黄金时段。我经常熬夜上网查找游戏信息,早上则出去送报纸。后来,我家的互联网从ISDN升级到ADSL,我对计算机的知识也逐渐加深。
游戏与编程
得到电脑后,我主要用它玩游戏和查找游戏信息。为了修改游戏,在研究Pro Action Replay的原理和游戏机制的过程中,我逐渐对编程产生了兴趣。我了解到会编程就能制作游戏。如今IT教育的重要性被广泛认可,即使不是专业人士也知道编程这个词,但当时互联网才刚开始普及,我周围没有一个人了解编程。在这种情况下,我在书店拿起的一本关于Perl编程语言的书成为我接触编程的第一手确切信息。Perl据说是免费且初学者可以理解的,于是我参考这本书准备了Perl开发环境,开始学习。我制作了输出生日的程序,井字游戏,检查书籍ISBN码的程序等。这些程序都是基于文本的,无法做图形化的东西,这让我不太满意。后来我了解到另一种叫做”Visual Basic”简称”VB”的编程语言。正如”Visual”这个名字所示,它可以轻松创建图形化的内容。我使用VB的免费版制作了打地鼠和类似太空侵略者的简单射击游戏。然而,免费版有无法创建可执行文件等限制,我开始认为需要花钱购买软件。通过研究,我了解到编程开发环境有针对学生和教师的学术版,可以以约2万日元购买。2万日元相当于我一个月的工资,是一笔大钱。一开始我打算购买Visual Basic,但进一步研究后发现Basic是一种简单的语言,要进行正式开发需要学习更复杂的C语言。我还了解到如果要学C语言,有一个叫做”Visual C++”简称VC++的开发环境。既然要花大钱,我想即使困难也要买更有用的版本,于是在初中二年级时购买了”Visual C++ 6.0 Standard Edition 学术版”。我以为既然都叫”Visual”,应该和VB一样容易上手,但事实并非如此。现在我明白了,VC++不是编程初学者可以直接上手的东西。理解VC++需要大量知识。所以,我只能照着附带的书输入内容,但几乎无法理解。后来我在互联网上找到了一个叫《猫都能懂的编程》的网站,在那里学习C语言。但还是无法达到编写图形化程序的水平,只能写一些基于文本的程序来玩。
初中三年级时,微软发布了Visual系列的新成员”Visual C#”。VC#宣称拥有VB的便捷性同时能实现与VC++类似的复杂功能,我立即被吸引了。广告所言非虚,已经能写一些C语言程序的我很快就能用VC#编写图形化程序了。那时我迷上了一款叫《Ultima Online》简称《UO》的在线游戏,我编写了一些分析这个游戏的程序。官方玩《UO》每月需要支付3000日元,相当于我一周的工资。我付不起这笔钱,所以通过连接运行UO”服务器模拟器”程序的个人服务器来玩。这种玩法不被官方认可,所以我绝不推荐。不过,这个服务器程序是公开的,设计文档即源代码也是公开的,所以我下载下来进行修改玩耍。我还编写了分析《UO》内部图像的程序。
此外,我还写了一个程序,用来提取当时玩的游戏《合金装备》中通过无线电通信出现的角色图像。盯着数字序列,猜测图像数据类型并进行分析的过程让我感觉自己像个”黑客”。如果身在东京这样的大都市,或许能更早找到可以指导我的人,但因为我身边没有懂编程的人,所以只能通过自学掌握各种知识。
我对编程的同时也对计算机图形学(CG)产生了兴趣。当时PlayStation 2上发布了《最终幻想X》,亲眼目睹该系列图形的进化让我无法不感兴趣。周围当然没有了解CG的人,所以我经常在书店翻阅《CG World》杂志。想自己制作CG的愿望越来越强烈,于是我购买了《Shade》这款日本第一个3DCG软件。《Shade》并不是很主流的软件,但简化版价格在3万日元左右,所以我花钱购买了。3DCG行业的标准软件是《3D Studio Max》和《Maya》等,这些价格从几十万到几百万日元,根本负担不起。最终我什么都没能顺利创作出来,但那时学到的CG基础至今仍在我的日常工作中发挥作用。
还有一件我当时痴迷的事是制作贺年卡。自从有了电脑,每年我都用电脑制作贺年卡。这些贺年卡有些特别,我会将自己合成到《哈利·波特》,《黑衣人》,《座头市》,《最后的武士》等当年流行电影的场景中。
这种贺年卡一直持续到我加入谷歌的近10年时间,据说有很多家庭每年都期待收到。我喜欢这样创造东西,让人惊讶。
【小专栏】初中时代玩过的游戏
初中时代,我几乎把送报纸赚的钱都花在了游戏和电脑上。我经常玩《最终幻想系列》,《异度装甲》,《合金装备系列》,《铁拳系列》,《我的料理》,《海人》,《莎木》等游戏。
我玩过史克威尔软件(前史克威尔艾尼克斯)的《最终幻想》从6到10的所有作品。每次都被游戏系统和不断进化的图形所震撼。特别是《最终幻想8》的冲击记忆犹新。伴随管弦乐演奏,全CG制作的开场动画。看到真人比例并且能自由活动的角色,我无法相信竟然有如此真实的游戏。通关一次后仍不过瘾,我拿着攻略本把游戏的每个角落都探索了一遍。
同样是史克威尔软件的《异度装甲》也让我着迷。这款游戏并不是很受欢迎,但它融合了宗教,社会问题,科幻,哲学等多种元素,有着”中二病”般的故事情节。游戏主角是一个患有解离性身份障碍的青年,拥有温和的人格,孤独的人格和凶暴的人格等多重人格,总是为什么是真正的自己而烦恼。这个设定深深触动了当时还是初中生的敏感的我。同一时期我读了丹尼尔·基斯的《24个比利·米利根》,讲述了一个拥有24种人格的青年的故事,这让我经常思考人格到底是什么,我自己又是什么。
世嘉的《莎木》是我在发售前就期待的游戏。在偶然买到的二手《VR战士3》附带光盘上看到预告片后,我立即成为了粉丝。我反复观看这个预告片。在预告片中,当时世嘉的制作人铃木裕说的”这个游戏不是RPG,而是FREE”这句话让我非常期待这会是一款什么样的游戏。除了游戏系统,游戏舞台与中国大陆有关也是我期待《莎木》的原因之一。就在我买电脑前不久的1999年末,送完报纸后,我在7-11购买了刚发售的《莎木》。通常为了省钱,我不会买新游戏,但这次是特例。学校正值寒假,我整天待在家里玩《莎木》。所谓FREE名副其实,这款游戏的自由度比之前的游戏高出许多。城市里的人们按照各自的节奏生活,玩家可以成为其中一员,探索城市,在自动售货机买饮料,驾驶叉车比赛,或者在城市的游戏厅玩游戏。在游戏中的游戏厅玩游戏,这是革命性的。它可以说是如今所谓开放世界类型游戏的先驱。后来发售的《莎木II》我也在发售当天购买。2016年得知离开世嘉的铃木裕通过众筹为续作《莎木III》筹集资金时,我毫不犹豫地出资支持。截至2017年5月,开发似乎进展顺利,我很期待能够玩到。
科乐美的《合金装备系列》我也经常玩。《合金装备》是一款为阻止核弹发射而潜入敌方基地的特工动作游戏。游戏系统与之前的战斗类游戏不同,创新地采用了不被敌人发现的潜入方式。通关后,游戏以这样的信息作结:”尽管签署了核不扩散条约已经过去几年,世界上仍然存在两万六千枚核武器。”我震惊于游戏竟然可以传达这样的信息。恰好在那段时间,2001年9月11日美国发生了恐怖袭击,我恰好在电视上目睹了飞机撞入世界贸易中心大楼的场景。看着美国以反恐战争的名义入侵阿富汗,尽管年幼,我也为世界的未来感到不安。后来,在我的提议下,全班一起进行了街头募捐,我的小组在车站前站了两天,收集了约20万日元,通过联合国难民事务高级专员办事处捐给了阿富汗。我记得当时收到了时任联合国难民高级专员绪方贞子的感谢信。
电脑博士
初中三年级中途我停止了送报纸的兼职。我找到了一份报酬更高的工作。比我大一岁的姐姐在初中时谎报年龄在附近的中餐馆打工。我效仿她,以”高中复读生”的身份在当地的麦当劳开始兼职。在麦当劳,我的时薪从680日元开始,每次涨10日元。工作日从6点到10点工作4小时,学校放假时工作8小时。每月收入约6至7万日元,几乎不用担心钱的问题。经过高中入学考试,2002年4月,初中毕业后的我进入了姐姐就读的,离家很近的长野吉田高中。从那时起,我的玩伴主要变成了工作单位的同事和高中的朋友。我们去卡拉OK或河边烧烤,以外出活动为主,几乎不再聚在谁家里玩游戏。高中时一起玩的朋友即使后来也没有断联系,上大学后和现在成为社会人后仍保持着珍贵的友谊关系。
这段时间我逐渐不太玩游戏了,但对电脑和编程仍然痴迷。因为不断购买零件进行升级,初中一年级时买的索得科技PC STATION M250除了15英寸显示器外,几乎没有留下什么。我陆续购买了内存,硬盘,显卡等,最后连主板和机箱都换了。到了这个时候,我自称为电脑博士,经常帮人解决电脑问题。通过华人社区的口口相传,听说我能自己组装电脑的人经常请我在有限预算内为他们组装电脑。
九死一生
高中一年级快结束时,我差点丧命。4月出生的我刚满16岁就考取了驾照,开始骑摩托车。后来,对小型摩托车不满足,我开始无证驾驶250cc的摩托车。我并非飙车,只是单纯享受250cc摩托车的动力。然而,愉快的事情并不会持续太久。一天晚上,事故发生了。那天,下班后玩了一会儿,像往常一样准备回家。略微下雨,我急于回家,猛踩油门。接近一个有信号灯的大十字路口时,我看到了黄灯。在中国时不知道黄灯的含义,但这时我当然完全理解它的意思。信号灯即将变红。我在三车道的中间,进一步踩下油门。看到右转车道的车稍微动了一下,下一瞬间,我不知道自己在哪里了。左眼睁不开,好像有人在说话,”没事吧?没事吧?”我听到这样的声音。”怎么办,我没有驾照。”只担心这个,我本能地回答”没事”。意识又模糊了。不知道过了多久。再次醒来时,我清楚地知道自己在哪里。我撞上了汽车,和摩托车一起被抛到十字路口正中央。可能是汽车司机吧,之前跟我说话的人已经不在那里了。我在十字路口中间挥手求救,但深夜没人愿意接近一个满脸是血挥手的人。我拼命想扶起摩托车,试图推到人行道上,但严重变形的近200公斤重的摩托车不听使唤。这时,远处传来了伴随红光的警笛声。”是警察,完了。”想到这里,我放弃抵抗,等待接近的光。透过血模糊的眼睛,终于能分辨的距离内,那是救护车的灯光。得救了。在救护人员的帮助下,我们勉强将摩托车移到人行道上。面对催促我上救护车的救护人员,我自信地说:”没事,我要回家。”比起失去生命,我更害怕救护队联系警察发现我无证驾驶。我亲身体验了人在恐慌时无法做出正常判断。当然,无证驾驶本身就是违法行为,但血气方刚的16岁的我没有这种自觉。现在我当然明白,绝对不能无证驾驶,这不仅会伤害自己,也可能伤害他人。
我就这样回到家,但不想让父母知道,所以一直躲在自己房间直到早上。大概还想隐瞒。整晚脸上流血,无法入睡。早上,父母出门工作后,我在厕所吐血。这时我想:”我是不是就这样死去了。”醒来的姐姐见状大惊,立即叫了救护车。诊断为”左眼眶底及眼侧壁骨折”。多亏戴了全覆式头盔,只骨折了眼部。赶到医院的父母没有像我预想的那样责骂我,而是放声大哭。这时我第一次切身感受到自己有多不孝。治疗需要切除腰部骨骼的一部分移植到眼部的手术。2003年4月16日,在我17岁生日那天,我住院接受手术。手术成功,两周后出院。视野和视力逐渐恢复,几个月后眼部肿胀消退。然而,当时左眼稍微下陷,比右眼稍小的左眼成为我愚蠢行为的终身教训。
移动应用
高中时代,随着NTT DoCoMo的i-mode普及,用手机玩游戏变得普遍。由于i-mode允许任何人自由开发应用,我也想尝试制作自己的应用。然而,我的手机是有学生折扣的AU,不是任何人都能自由开发应用的环境。到我高三时,AU的EZ应用向普通开发者开放,任何人都可以开发应用了。虽然我对玩手机游戏兴趣不大,但想要制作游戏,进行编程的愿望很强烈,所以我挑战了EZ应用开发。EZ应用是用一种叫做”J2ME”的”Java语言”编写的,所以我学习了Java语言。我想制作类似红白机上的《挖金子》游戏。《挖金子》是操控角色,将追赶的敌人埋入坑中收集金块的游戏。经过独自努力,虽然做到了能移动角色的程度,但最终没能完成。我缺乏游戏编程所需的算法和数据结构知识。没有指导者,周围也没有有相同爱好的人,这就是我自学的极限。
某种程度上说,我从高中时代就开始开发移动应用了(……不,或许不能这么说)。