苏竹青
从对GBA一无所知,到自学摸索写下后来成为国内GBA开发者广为流传的《GBA探索日记》技术文档;从加入大学微软俱乐部,到荣获微软公司颁发的年度“MVP微软最有价值专家奖”;从大二就开始打工,到为公司出谋划策,并成功开发手机RPG游戏;从最初只是希望毕业后进入微软、IBM这样的公司工作,到最后放弃机会,选择继续深造……26岁的四川大学计算机系研究生唐良,谱写了一曲计算机学子执着于研发的青春之歌。
入门:从探索GBA开始
早在高中的时候,唐良就对当时国内知名的业余游戏开发工作室——成都金点工作室充满了崇拜之情。2002年夏天,唐良从重庆考入四川大学计算机学院。第一学期开始没多久,他便向金点工作室当时颇负盛名的softboy发了一封自荐Email,希望能够加入金点工作室做游戏。
让唐良惊喜的是,他很快就收到了对方的回信,并且让鼎鼎大名的游戏策划——徐桥和他见面。第一次见面是难忘的,性格内向的唐良基本没说多少话,一直在听徐桥讲。徐桥和他畅谈了国内游戏开发的话题。“讲话中,他提到了GBA。当时我连GBA是什么东西都不知道,后来才知道,是日本任天堂推出的一种掌上游戏机。”唐良笑道。徐桥说他和softboy对GBA都比较感兴趣,想一起来做GBA的游戏。
softboy将了解GBA开发过程的任务交给了唐良。当时,GBA刚被正式引入中国,国内的开发者对GBA了解得不多,GBA的开发资料特别少,中文资料就更少了。而且,“任天堂公司对于GBA的开发资料是严格保密的,除非是它正式授权的合作开发伙伴,是不可能得到关于GBA的开发资料的。国内的开发者大都是根据网上一个叫水银的大哥写的中文教程来做。”徐桥给了唐良gbadev网站的地址,接下来的时间,唐良大部分时间都挂在网上,到处查询GBA的开发资料。
唐良没办法,只得逼迫自己去啃英文资料。“当时我对GBA的资料收集得特别辛苦”,唐良说,因为GBA没有操作系统,任何操作都必须直接写硬件才行,一旦错了连查找调试都没办法。唐良回忆,那段时间他特别痛苦,当时的GBA开发不要说连书籍,就是连完整的开发资料都没有,甚至需要他一个寄存器一个寄存器去试,看看到底是什么功能,然后根据不同的执行结果来猜测,这个寄存器是干什么的,这组地址是做什么的。这期间,他与不少GBA开发的爱好者成了朋友。其中一位送他一份GBA的官方开发文档,一直找不到方向的他终于走上了真正的GBA开发之路。唐良说,现在回想起来,当时那段经历尽管吃了很多苦,但也有很多让他受益终身的收获。
之后的半年,唐良在研究中写下了《GBA探索日记》,他一共写了18篇,除了联机的功能,GBA的所有硬件功能都被他挖掘出来了,可以说是一份十分齐全的开发文档了。“这份日记后来成了国内GBA开发的经典教程,甚至一些搞ARM嵌入式的人都把这份资料当作参考资料。”说到这里,他自豪地笑了。
《GBA探索日记》写出来了,不过这个时候,金点工作室却处于解散的边缘。核心人物softboy和徐桥都在忙着找工作,softboy后来创建了成都锦天科技网游开发公司,而徐桥也到上海去工作了。唐良觉得,“金点”的那段经历,最重要的是让他接触到了GBA,并且,让技术开发和钻研成了他的兴趣和长项。
获奖:MVP微软最有价值专家奖
大二时,唐良加入了四川大学的微软俱乐部。微软俱乐部是个锻炼人、结交朋友的好地方。唐良和伙伴们一起做了一款基于DirectDraw的联机坦克对战游戏的简单原型。
俱乐部的历练使唐良进步很大,他代表四川大学微软俱乐部到其他大学做了微软技术日的讲座,得到了大家热烈的掌声。
“这段时间我对编译原理以及技术特别感兴趣,边学边写了《从LEX和YACC说到编译器》的连载技术文章,发在CSDN网站上。后来网上的读者反应很好,所以我还专门写了几篇相关的正式文章投稿给《程序员》杂志,有三篇文章被正式刊登了。”
唐良的能力,俱乐部的人有目共睹,“有一天,俱乐部的科技部部长叫我写一份自我介绍,争取一下微软MVP。”
微软MVP(Most Valuable Professional)最有价值专家奖,是微软公司所举办的一个年度奖项。获奖者是来自世界各地的技术社区杰出领导者,他们因在离线和在线技术社区自愿分享其高质量的实际专业技能而获奖。 Microsoft MVP 是经过严格挑选的专家团队,他们代表着技术社区中技术最精湛且最具智慧的人,对社区投入了极大的热情并且乐于助人。
“当时我都吓了一跳,因为我以前高中的时候就在电视上看过微软MVP的介绍,觉得是那种技术特别厉害的高手才行”。
唐良觉得微软MVP高不可攀,然而还是答应部长试一下。他把从高中起做过的一些VC++下的东西,以及在CSDN上与别人讨论VC++技术的贴子和之前做过的GBA相关的东西,全部整理在了这份自我介绍上了。
“当时不太抱希望”,他微笑道。但出乎意料的是,不久他就接到了通知,还在读大二的唐良成为2004年的微软最有价值专家。
开创世纪:从“魔幻”到“仙剑”
唐良是个闲不住的人。大二上学期期末考试完,别的同学都解禁般到处去玩,他就留在寝室在网上到处搜索有没有事情可做。很巧,他浏览到一个招聘程序员的贴子,仔细看了招聘要求,觉得自己能行,而且这个公司的地址距离学校不远,于是唐良按照上面的联系方式,加了联系人的QQ。
原来这家公司在做手机游戏,当时的他对J2ME已经有一定的了解,而手机游戏很大程度上跟他曾经钻研了一年的GBA游戏有点类似,他对自己胜任这个职位比较有信心。公司面试他时,也觉得这个年轻人很不错,第二天就让他去上班了。
“次日早上来到公司,发觉公司好小。”唐良笑道,不过当时正读大二的他很乐观,或许小公司正有发挥之地呢。刚开始去公司,唐良把他骨子里的敬业发挥得淋漓尽致,每天都工作到很晚才回去。公司先让他做的是一个脚本系统,因为他之前对编译原理技术了解比较多,而且都已经做过一些诸如词法分析器的工具,所以很快就搞定了。
“接下来公司又让我参与做‘魔幻1的宣传片,不过说用J2ME来做。我第一次用‘Java集成开发环境,公司的一个前辈给简单配置了一下环境和Nokia S60的开发包后我就可以开始动手了。J2ME的熟悉过程还是挺快的,开发调试过程都很顺利,而且我做的这个东西本来就很简单,加上S60内存比较大,我也没考虑过什么内存受限等问题。”
完成了公司布置的“魔幻1”的宣传片后,他主动请缨,提出想做一款手机上的RPG游戏。此时,公司的领导已对这个小伙子的能力有了充分了解,所以一口就答应了。于是,接下来的时间里面,他一头扎进了这个新项目的研发中。当时手机上能够做出来的RPG游戏很少,RPG游戏一般都需要比较多的图形资源,而手机内存还有存储空间都很有限,所以无论是对于谁来说,做手机上的RPG游戏都是一个不小的挑战。“当时我几乎走在路上都在考虑一些新异的实现方式和技巧”,如何找出一种更加简单更加有效的办法来实现?他陷入了苦苦的思索。
当时,公司经营比较困难,前三个月他只领到一次工资。不过,当时对技术已经着迷的他没有去考虑这些问题,关心的唯一事情就是项目的开发。春节后,这个RPG项目正式命名为“魔幻之旅2”。随着项目的渐渐开发,困难越来越多,几个人讨论再讨论,为了尽量在不影响游戏效果的同时,又能减少一些内存的开销,他们想尽了节约内存的办法,把图片拆了又拆,连Java的class文件都尽量少用,把所有的代码都封装到一个class里面,整个项目就只有两个class。
那时,同时上学和上班,让他很疲惫,但他坚持下来了。功夫不负有心人,4月份,一直苦心钻研的“魔2”总算有了一个雏形了。大家都舒了口气,利用现有的资源做了一个大话西游剧情的Demo。“这时,当时国内手机游戏开发的老大——北京数位红的老总来了成都,看了我们的游戏Demo,‘魔2的效果让他震惊了,他们承认他们都做不出我们这样的效果来。”唐良自豪地说。
随着“魔1”和“魔2”项目开发的进展,唐良和同事们有更多更好的效果出来了,他们把“魔2”在模拟器上运行的视频录下来挂在了公司的网上。
最后,公司选择了杭州的联梦无线来作为合作伙伴,不久,香港软银也对公司进行了投资。
“‘魔2做完后,公司马上就接到一个较大的外包项目,是上海网星的《仙剑奇侠传》手机版的外包。整个暑假我也没有回重庆老家,都消耗在了这个项目上。我开始写仙剑的引擎的时候,相对半年前的‘魔2,技术上已经成熟了很多,所以无论是从引擎结构上还是代码的质量上,都是比‘魔2要好了很多。仙剑这个项目最后是在2005年5月份登陆移动梦网的,当时卖出了15块每月的最高价。凭借仙剑的名气,仙剑手机版依然在移动梦网的下载量排到当月的第二名。至于一些专门的手机游戏BBS上,更是早就把仙剑讨论得热火朝天了,而且一些玩家还写了不少攻略呢。不过,我当时自己还放了一把秘密武器在游戏里面,不知道有没有玩家挖掘出来。”
“大三暑假后,公司打算尝试Symbian C/C++平台下的一些项目,于是我就被调去当先锋,开始研究Symbian平台下的开发,同时还分配了一个新的Symbian项目。Symbian平台下的开发就是直接使用C/C++语言了,而且无论是内存还是存储都比J2ME宽裕了不少,现在市面上的NOKIA S60系列手机全部都是基于Symbian OS的,其机器的配置性能很多可以和当年的386的PC相匹敌了。限制小了,当然对做出来的产品要求就更高了。现在市面上做出来的Symbian平台下的2D游戏,是完全可以与GBA这种专门的游戏机的游戏来抗衡的,其游戏产品要求的质量比J2ME高了一个档次。”
尾声
2007年,在四川大学读研的唐良到MSRA(微软亚洲研究院)做实习生。这半年多的实习经历开阔了他的视野,改变了他的人生目标。
“在MSRA那段时间,几乎每天都有世界顶尖的学术专家过来做讲座,而且,MSRA很多研究员本身也就是顶级的研究员”。得到这样的熏陶,唐良的想法开始转变了。之前,他的梦想就是到微软或IBM这样的公司去工作,现在,他有了新的梦想:他想要去美国读博,做真正的研究。“或许我从小就热衷于未知领域的探索,在微软的经历某种程度上激发了内心追求的渴望。”他不再只是想简单地找份好工作,而想飞得更高。
唐良很庆幸自己读研时能保送到现在的导师和实验室,导师唐常杰老师对他帮助很大,他说,没有实验室这样的学术氛围,他不会坚定地选择走现在这条路。唐良的导师推荐他到美国读博,还获得了全额奖学金。
在本文收尾时,笔者收到了来自唐良的消息,他已经抵达美国,各方面的适应情况不错,专业学习尚未开始,不过,他发现自己的英语口语还需要提高。
唐良这样解释他选择继续深造的原因,“你看过金庸和古龙的小说没?学武的人,追求的是什么?就是成为顶尖高手。不光是我们学计算机的,做任何一个行业、任何一个领域,大家都想做到顶尖。”