蘇竹青
從對(duì)GBA一無所知,到自學(xué)摸索寫下后來成為國內(nèi)GBA開發(fā)者廣為流傳的《GBA探索日記》技術(shù)文檔;從加入大學(xué)微軟俱樂部,到榮獲微軟公司頒發(fā)的年度“MVP微軟最有價(jià)值專家獎(jiǎng)”;從大二就開始打工,到為公司出謀劃策,并成功開發(fā)手機(jī)RPG游戲;從最初只是希望畢業(yè)后進(jìn)入微軟、IBM這樣的公司工作,到最后放棄機(jī)會(huì),選擇繼續(xù)深造……26歲的四川大學(xué)計(jì)算機(jī)系研究生唐良,譜寫了一曲計(jì)算機(jī)學(xué)子執(zhí)著于研發(fā)的青春之歌。
入門:從探索GBA開始
早在高中的時(shí)候,唐良就對(duì)當(dāng)時(shí)國內(nèi)知名的業(yè)余游戲開發(fā)工作室——成都金點(diǎn)工作室充滿了崇拜之情。2002年夏天,唐良從重慶考入四川大學(xué)計(jì)算機(jī)學(xué)院。第一學(xué)期開始沒多久,他便向金點(diǎn)工作室當(dāng)時(shí)頗負(fù)盛名的softboy發(fā)了一封自薦Email,希望能夠加入金點(diǎn)工作室做游戲。
讓唐良驚喜的是,他很快就收到了對(duì)方的回信,并且讓鼎鼎大名的游戲策劃——徐橋和他見面。第一次見面是難忘的,性格內(nèi)向的唐良基本沒說多少話,一直在聽徐橋講。徐橋和他暢談了國內(nèi)游戲開發(fā)的話題。“講話中,他提到了GBA。當(dāng)時(shí)我連GBA是什么東西都不知道,后來才知道,是日本任天堂推出的一種掌上游戲機(jī)。”唐良笑道。徐橋說他和softboy對(duì)GBA都比較感興趣,想一起來做GBA的游戲。
softboy將了解GBA開發(fā)過程的任務(wù)交給了唐良。當(dāng)時(shí),GBA剛被正式引入中國,國內(nèi)的開發(fā)者對(duì)GBA了解得不多,GBA的開發(fā)資料特別少,中文資料就更少了。而且,“任天堂公司對(duì)于GBA的開發(fā)資料是嚴(yán)格保密的,除非是它正式授權(quán)的合作開發(fā)伙伴,是不可能得到關(guān)于GBA的開發(fā)資料的。國內(nèi)的開發(fā)者大都是根據(jù)網(wǎng)上一個(gè)叫水銀的大哥寫的中文教程來做?!毙鞓蚪o了唐良gbadev網(wǎng)站的地址,接下來的時(shí)間,唐良大部分時(shí)間都掛在網(wǎng)上,到處查詢GBA的開發(fā)資料。
唐良沒辦法,只得逼迫自己去啃英文資料?!爱?dāng)時(shí)我對(duì)GBA的資料收集得特別辛苦”,唐良說,因?yàn)镚BA沒有操作系統(tǒng),任何操作都必須直接寫硬件才行,一旦錯(cuò)了連查找調(diào)試都沒辦法。唐良回憶,那段時(shí)間他特別痛苦,當(dāng)時(shí)的GBA開發(fā)不要說連書籍,就是連完整的開發(fā)資料都沒有,甚至需要他一個(gè)寄存器一個(gè)寄存器去試,看看到底是什么功能,然后根據(jù)不同的執(zhí)行結(jié)果來猜測,這個(gè)寄存器是干什么的,這組地址是做什么的。這期間,他與不少GBA開發(fā)的愛好者成了朋友。其中一位送他一份GBA的官方開發(fā)文檔,一直找不到方向的他終于走上了真正的GBA開發(fā)之路。唐良說,現(xiàn)在回想起來,當(dāng)時(shí)那段經(jīng)歷盡管吃了很多苦,但也有很多讓他受益終身的收獲。
之后的半年,唐良在研究中寫下了《GBA探索日記》,他一共寫了18篇,除了聯(lián)機(jī)的功能,GBA的所有硬件功能都被他挖掘出來了,可以說是一份十分齊全的開發(fā)文檔了?!斑@份日記后來成了國內(nèi)GBA開發(fā)的經(jīng)典教程,甚至一些搞ARM嵌入式的人都把這份資料當(dāng)作參考資料?!闭f到這里,他自豪地笑了。
《GBA探索日記》寫出來了,不過這個(gè)時(shí)候,金點(diǎn)工作室卻處于解散的邊緣。核心人物softboy和徐橋都在忙著找工作,softboy后來創(chuàng)建了成都錦天科技網(wǎng)游開發(fā)公司,而徐橋也到上海去工作了。唐良覺得,“金點(diǎn)”的那段經(jīng)歷,最重要的是讓他接觸到了GBA,并且,讓技術(shù)開發(fā)和鉆研成了他的興趣和長項(xiàng)。
獲獎(jiǎng):MVP微軟最有價(jià)值專家獎(jiǎng)
大二時(shí),唐良加入了四川大學(xué)的微軟俱樂部。微軟俱樂部是個(gè)鍛煉人、結(jié)交朋友的好地方。唐良和伙伴們一起做了一款基于DirectDraw的聯(lián)機(jī)坦克對(duì)戰(zhàn)游戲的簡單原型。
俱樂部的歷練使唐良進(jìn)步很大,他代表四川大學(xué)微軟俱樂部到其他大學(xué)做了微軟技術(shù)日的講座,得到了大家熱烈的掌聲。
“這段時(shí)間我對(duì)編譯原理以及技術(shù)特別感興趣,邊學(xué)邊寫了《從LEX和YACC說到編譯器》的連載技術(shù)文章,發(fā)在CSDN網(wǎng)站上。后來網(wǎng)上的讀者反應(yīng)很好,所以我還專門寫了幾篇相關(guān)的正式文章投稿給《程序員》雜志,有三篇文章被正式刊登了。”
唐良的能力,俱樂部的人有目共睹,“有一天,俱樂部的科技部部長叫我寫一份自我介紹,爭取一下微軟MVP。”
微軟MVP(Most Valuable Professional)最有價(jià)值專家獎(jiǎng),是微軟公司所舉辦的一個(gè)年度獎(jiǎng)項(xiàng)。獲獎(jiǎng)?wù)呤莵碜允澜绺鞯氐募夹g(shù)社區(qū)杰出領(lǐng)導(dǎo)者,他們因在離線和在線技術(shù)社區(qū)自愿分享其高質(zhì)量的實(shí)際專業(yè)技能而獲獎(jiǎng)。 Microsoft MVP 是經(jīng)過嚴(yán)格挑選的專家團(tuán)隊(duì),他們代表著技術(shù)社區(qū)中技術(shù)最精湛且最具智慧的人,對(duì)社區(qū)投入了極大的熱情并且樂于助人。
“當(dāng)時(shí)我都嚇了一跳,因?yàn)槲乙郧案咧械臅r(shí)候就在電視上看過微軟MVP的介紹,覺得是那種技術(shù)特別厲害的高手才行”。
唐良覺得微軟MVP高不可攀,然而還是答應(yīng)部長試一下。他把從高中起做過的一些VC++下的東西,以及在CSDN上與別人討論VC++技術(shù)的貼子和之前做過的GBA相關(guān)的東西,全部整理在了這份自我介紹上了。
“當(dāng)時(shí)不太抱希望”,他微笑道。但出乎意料的是,不久他就接到了通知,還在讀大二的唐良成為2004年的微軟最有價(jià)值專家。
開創(chuàng)世紀(jì):從“魔幻”到“仙劍”
唐良是個(gè)閑不住的人。大二上學(xué)期期末考試完,別的同學(xué)都解禁般到處去玩,他就留在寢室在網(wǎng)上到處搜索有沒有事情可做。很巧,他瀏覽到一個(gè)招聘程序員的貼子,仔細(xì)看了招聘要求,覺得自己能行,而且這個(gè)公司的地址距離學(xué)校不遠(yuǎn),于是唐良按照上面的聯(lián)系方式,加了聯(lián)系人的QQ。
原來這家公司在做手機(jī)游戲,當(dāng)時(shí)的他對(duì)J2ME已經(jīng)有一定的了解,而手機(jī)游戲很大程度上跟他曾經(jīng)鉆研了一年的GBA游戲有點(diǎn)類似,他對(duì)自己勝任這個(gè)職位比較有信心。公司面試他時(shí),也覺得這個(gè)年輕人很不錯(cuò),第二天就讓他去上班了。
“次日早上來到公司,發(fā)覺公司好小?!碧屏夹Φ?不過當(dāng)時(shí)正讀大二的他很樂觀,或許小公司正有發(fā)揮之地呢。剛開始去公司,唐良把他骨子里的敬業(yè)發(fā)揮得淋漓盡致,每天都工作到很晚才回去。公司先讓他做的是一個(gè)腳本系統(tǒng),因?yàn)樗皩?duì)編譯原理技術(shù)了解比較多,而且都已經(jīng)做過一些諸如詞法分析器的工具,所以很快就搞定了。
“接下來公司又讓我參與做‘魔幻1的宣傳片,不過說用J2ME來做。我第一次用‘Java集成開發(fā)環(huán)境,公司的一個(gè)前輩給簡單配置了一下環(huán)境和Nokia S60的開發(fā)包后我就可以開始動(dòng)手了。J2ME的熟悉過程還是挺快的,開發(fā)調(diào)試過程都很順利,而且我做的這個(gè)東西本來就很簡單,加上S60內(nèi)存比較大,我也沒考慮過什么內(nèi)存受限等問題?!?/p>
完成了公司布置的“魔幻1”的宣傳片后,他主動(dòng)請(qǐng)纓,提出想做一款手機(jī)上的RPG游戲。此時(shí),公司的領(lǐng)導(dǎo)已對(duì)這個(gè)小伙子的能力有了充分了解,所以一口就答應(yīng)了。于是,接下來的時(shí)間里面,他一頭扎進(jìn)了這個(gè)新項(xiàng)目的研發(fā)中。當(dāng)時(shí)手機(jī)上能夠做出來的RPG游戲很少,RPG游戲一般都需要比較多的圖形資源,而手機(jī)內(nèi)存還有存儲(chǔ)空間都很有限,所以無論是對(duì)于誰來說,做手機(jī)上的RPG游戲都是一個(gè)不小的挑戰(zhàn)?!爱?dāng)時(shí)我?guī)缀踝咴诼飞隙荚诳紤]一些新異的實(shí)現(xiàn)方式和技巧”,如何找出一種更加簡單更加有效的辦法來實(shí)現(xiàn)?他陷入了苦苦的思索。
當(dāng)時(shí),公司經(jīng)營比較困難,前三個(gè)月他只領(lǐng)到一次工資。不過,當(dāng)時(shí)對(duì)技術(shù)已經(jīng)著迷的他沒有去考慮這些問題,關(guān)心的唯一事情就是項(xiàng)目的開發(fā)。春節(jié)后,這個(gè)RPG項(xiàng)目正式命名為“魔幻之旅2”。隨著項(xiàng)目的漸漸開發(fā),困難越來越多,幾個(gè)人討論再討論,為了盡量在不影響游戲效果的同時(shí),又能減少一些內(nèi)存的開銷,他們想盡了節(jié)約內(nèi)存的辦法,把圖片拆了又拆,連Java的class文件都盡量少用,把所有的代碼都封裝到一個(gè)class里面,整個(gè)項(xiàng)目就只有兩個(gè)class。
那時(shí),同時(shí)上學(xué)和上班,讓他很疲憊,但他堅(jiān)持下來了。功夫不負(fù)有心人,4月份,一直苦心鉆研的“魔2”總算有了一個(gè)雛形了。大家都舒了口氣,利用現(xiàn)有的資源做了一個(gè)大話西游劇情的Demo?!斑@時(shí),當(dāng)時(shí)國內(nèi)手機(jī)游戲開發(fā)的老大——北京數(shù)位紅的老總來了成都,看了我們的游戲Demo,‘魔2的效果讓他震驚了,他們承認(rèn)他們都做不出我們這樣的效果來?!碧屏甲院赖卣f。
隨著“魔1”和“魔2”項(xiàng)目開發(fā)的進(jìn)展,唐良和同事們有更多更好的效果出來了,他們把“魔2”在模擬器上運(yùn)行的視頻錄下來掛在了公司的網(wǎng)上。
最后,公司選擇了杭州的聯(lián)夢無線來作為合作伙伴,不久,香港軟銀也對(duì)公司進(jìn)行了投資。
“‘魔2做完后,公司馬上就接到一個(gè)較大的外包項(xiàng)目,是上海網(wǎng)星的《仙劍奇?zhèn)b傳》手機(jī)版的外包。整個(gè)暑假我也沒有回重慶老家,都消耗在了這個(gè)項(xiàng)目上。我開始寫仙劍的引擎的時(shí)候,相對(duì)半年前的‘魔2,技術(shù)上已經(jīng)成熟了很多,所以無論是從引擎結(jié)構(gòu)上還是代碼的質(zhì)量上,都是比‘魔2要好了很多。仙劍這個(gè)項(xiàng)目最后是在2005年5月份登陸移動(dòng)夢網(wǎng)的,當(dāng)時(shí)賣出了15塊每月的最高價(jià)。憑借仙劍的名氣,仙劍手機(jī)版依然在移動(dòng)夢網(wǎng)的下載量排到當(dāng)月的第二名。至于一些專門的手機(jī)游戲BBS上,更是早就把仙劍討論得熱火朝天了,而且一些玩家還寫了不少攻略呢。不過,我當(dāng)時(shí)自己還放了一把秘密武器在游戲里面,不知道有沒有玩家挖掘出來?!?/p>
“大三暑假后,公司打算嘗試Symbian C/C++平臺(tái)下的一些項(xiàng)目,于是我就被調(diào)去當(dāng)先鋒,開始研究Symbian平臺(tái)下的開發(fā),同時(shí)還分配了一個(gè)新的Symbian項(xiàng)目。Symbian平臺(tái)下的開發(fā)就是直接使用C/C++語言了,而且無論是內(nèi)存還是存儲(chǔ)都比J2ME寬裕了不少,現(xiàn)在市面上的NOKIA S60系列手機(jī)全部都是基于Symbian OS的,其機(jī)器的配置性能很多可以和當(dāng)年的386的PC相匹敵了。限制小了,當(dāng)然對(duì)做出來的產(chǎn)品要求就更高了?,F(xiàn)在市面上做出來的Symbian平臺(tái)下的2D游戲,是完全可以與GBA這種專門的游戲機(jī)的游戲來抗衡的,其游戲產(chǎn)品要求的質(zhì)量比J2ME高了一個(gè)檔次?!?/p>
尾聲
2007年,在四川大學(xué)讀研的唐良到MSRA(微軟亞洲研究院)做實(shí)習(xí)生。這半年多的實(shí)習(xí)經(jīng)歷開闊了他的視野,改變了他的人生目標(biāo)。
“在MSRA那段時(shí)間,幾乎每天都有世界頂尖的學(xué)術(shù)專家過來做講座,而且,MSRA很多研究員本身也就是頂級(jí)的研究員”。得到這樣的熏陶,唐良的想法開始轉(zhuǎn)變了。之前,他的夢想就是到微軟或IBM這樣的公司去工作,現(xiàn)在,他有了新的夢想:他想要去美國讀博,做真正的研究?!盎蛟S我從小就熱衷于未知領(lǐng)域的探索,在微軟的經(jīng)歷某種程度上激發(fā)了內(nèi)心追求的渴望?!彼辉僦皇窍牒唵蔚卣曳莺霉ぷ?而想飛得更高。
唐良很慶幸自己讀研時(shí)能保送到現(xiàn)在的導(dǎo)師和實(shí)驗(yàn)室,導(dǎo)師唐常杰老師對(duì)他幫助很大,他說,沒有實(shí)驗(yàn)室這樣的學(xué)術(shù)氛圍,他不會(huì)堅(jiān)定地選擇走現(xiàn)在這條路。唐良的導(dǎo)師推薦他到美國讀博,還獲得了全額獎(jiǎng)學(xué)金。
在本文收尾時(shí),筆者收到了來自唐良的消息,他已經(jīng)抵達(dá)美國,各方面的適應(yīng)情況不錯(cuò),專業(yè)學(xué)習(xí)尚未開始,不過,他發(fā)現(xiàn)自己的英語口語還需要提高。
唐良這樣解釋他選擇繼續(xù)深造的原因,“你看過金庸和古龍的小說沒?學(xué)武的人,追求的是什么?就是成為頂尖高手。不光是我們學(xué)計(jì)算機(jī)的,做任何一個(gè)行業(yè)、任何一個(gè)領(lǐng)域,大家都想做到頂尖?!?/p>