方改則
汪乙屏息凝神,正在修復(fù)游戲里的一個(gè)bug。
這是汪乙自己編程、自己設(shè)計(jì)的游戲。他是個(gè)游戲設(shè)計(jì)師,但與一般人不同的是,他在6歲時(shí)因意外失明。游戲編程對(duì)他而言,全靠“聽”。
2015年,他和另外兩個(gè)盲人程序員一起,設(shè)計(jì)了一款視障者的冒險(xiǎn)跑圖游戲,類似無畫面版的《魔獸世界》。通過“聲音坐標(biāo)”,玩家可以在開放地圖上尋找不同任務(wù)點(diǎn)。再根據(jù)3D音效,判斷出所處的位置與目標(biāo)距離??恐犛X,他們?cè)O(shè)計(jì)出了一張巨大而完整的游戲地圖。加上豐富的環(huán)境音,視障玩家們?cè)竭^森林,跨過溪流,在洞窟里尋找寶藏。還可以和線上的其他人一起組成公會(huì),一同與魔怪戰(zhàn)斗。
不過直到幾年前,汪乙都認(rèn)為這雙手只能做推拿。
和中國(guó)許多視障者一樣,汪乙在盲人大學(xué)學(xué)習(xí)推拿針灸。平常下了課,他會(huì)跟同學(xué)一起去踢足球,或是在宿舍聽聽有聲小說。
直到大二那年,他玩到了游戲《沼澤》。這個(gè)游戲是被一些視障玩家從國(guó)外引入中國(guó)的。它是一款槍戰(zhàn)游戲,通過3D音效,玩家能夠在其中舉槍殺敵,自由戰(zhàn)斗,和以前打打牌、下下棋的盲人游戲完全不是一回事。
汪乙從沒見過這樣的游戲。他和男孩子們窩在宿舍的電腦前,每天在公屏上和國(guó)外的玩家用“塑料”英語對(duì)線,玩瘋了。然而沉迷網(wǎng)游的快樂日子沒有持續(xù)多久。2014年,游戲開發(fā)團(tuán)隊(duì)放棄了維護(hù),bug像野草一樣冒出來。“最難過的還是在上面認(rèn)識(shí)的人,都走了。”
“不就游戲嘛,我們自己也做一個(gè)?!庇幸惶欤粢抑霸凇墩訚伞防镎J(rèn)識(shí)的小伙伴張午給他發(fā)消息。他自學(xué)過編程,也知道汪乙學(xué)過。汪乙聽了,眉頭擰成麻花。代碼編程,他上大學(xué)之后是自學(xué)過一陣子,但水平還不及入門。他在心里嘀咕:“我們寫游戲,這怎么搞得成??!”
高中時(shí),汪乙就被自學(xué)編程“毒打”過。那時(shí)他打開讀屏軟件,試著翻開了計(jì)算機(jī)教材第一頁(yè),耳機(jī)里傳來的代碼聲像天書,他粗粗聽了幾行便馬上放棄。高考后,汪乙毫不意外地考入了長(zhǎng)春一間盲校的針灸推拿專業(yè)。學(xué)經(jīng)絡(luò),摁穴位,他對(duì)專業(yè)課沒有興趣,倒是編程總在他腦子里跳。
鬼使神差地,他又開始在網(wǎng)上搜索“編程自學(xué)”。沒有給視障者專門的編程教材,他只能找書的掃描版,用讀屏軟件一點(diǎn)點(diǎn)啃。而要找到一本影印清晰的“電子書”,就要花上幾天的工夫。
找書只是第一道難關(guān),他幾乎每讀一頁(yè)都要卡殼。即便影印清晰,讀屏軟件還是有大量識(shí)別不了的地方,讀出來時(shí)常卡頓。一段程序中的圖標(biāo)和特殊字符,可以幫助明眼人理解,對(duì)他來說則是學(xué)習(xí)的障礙,軟件根本讀不出來。
每次卡殼,他就得轉(zhuǎn)到網(wǎng)上,在論壇和帖子里不停地搜索解決方法。有時(shí)一查就是兩三天。最麻煩的是,很多問題根本無法找到答案?!熬W(wǎng)上沒有人問這個(gè)的。問這個(gè)太弱智了。正常人哪有問這個(gè)的呢?”他摸進(jìn)了幾個(gè)明眼人程序員的QQ群,遇到不會(huì)的操作就在群里問。然而,他們大都習(xí)慣直接截一張代碼圖來回復(fù)。讀屏軟件碰到圖片就抓瞎,汪乙一開始還會(huì)追問一下,能直接發(fā)文字版嗎?別人總覺得他奇怪,有時(shí)還說他“不懂,小白”。他也覺得自己麻煩,慢慢地,在群里也不說話了。
“覺得難啊。難,我就撤了?!彼f服自己,回到教室,繼續(xù)學(xué)經(jīng)絡(luò),摁穴位。他從小到大都知道,推拿才是一個(gè)盲人該干的事。
畢業(yè)前一年,他專心準(zhǔn)備在醫(yī)院做推拿實(shí)習(xí)。他想好好干,每天早上不到6點(diǎn)就起床,跟著醫(yī)生出診、推拿,晚上7點(diǎn)后才從醫(yī)院回家。直到實(shí)習(xí)的第二個(gè)月,他從居住旅館的二樓意外掉了下來。
“如果那天我沒掉下去,也許根本就不會(huì)去做游戲?!闭勂鹉菆?chǎng)墜落,汪乙把它形容為“一場(chǎng)命運(yùn)”。
汪乙沒能完成實(shí)習(xí),手術(shù)后,提前回了淄博老家,他需要在病床上臥躺養(yǎng)傷一年。
他慌了。推拿是個(gè)體力活,腿要久站,手要使勁。而他每天起床,腦子里就是自己手臂和大腿上的十幾個(gè)鋼釘,心里沒底?!拔铱赡茏霾涣送颇昧?。”這是他從6 歲失明以來,第一次有這種念頭。
張午就是在這個(gè)時(shí)候出現(xiàn)的。他之前也自學(xué)過一段時(shí)間編程。由于失明晚,他在眼睛還能看見的時(shí)候玩了不少游戲,總有很多汪乙不知道的點(diǎn)子。汪乙管他叫團(tuán)隊(duì)里的“大?!?。
他給汪乙發(fā)了幾本編程教材。汪乙看著這些書,想起了之前自學(xué)又半途而廢的日子;去當(dāng)程序員,去寫游戲?想到未來,他沒底。
那晚,汪乙沒睡著。第二天,他撿起張午發(fā)給他的書,硬著頭皮開始看。遇上卡殼的地方,自己就鉚著勁地四處找答案,實(shí)在解不出來,就發(fā)消息去找張午一起討論。
痊愈之后,他進(jìn)了朋友開的一家推拿診所。他就住在診所樓上,每天早上9 點(diǎn)上班,晚上11點(diǎn)休息。他的腿仍不太利索,沒有客人時(shí),就回樓上歇息一會(huì)兒,打開電腦寫寫程序。熬過了最初幾個(gè)月枯燥的C 語言學(xué)習(xí)階段,他突然發(fā)現(xiàn)眼前的代碼有點(diǎn)不一樣了。和做推拿時(shí)虛無的經(jīng)絡(luò)與穴位不同,他“看”到一些程序親手在他手里搭建起來。雖然功能還很稚嫩,但游戲的框架逐漸有了雛形。他咬了咬牙。這次,他不想再半途而廢。
推拿已經(jīng)不再困擾他了,他想在游戲的路上專心走下去。在研發(fā)一年之后,2015 年, 他和另外兩個(gè)伙伴完成了游戲的最終測(cè)試, 將完整的游戲發(fā)布到網(wǎng)上,還在線上辦了一場(chǎng)小小的發(fā)布會(huì)。那天晚上,幾百人涌進(jìn)了直播間,大家都來看他們的游戲,都來看他們。
那一刻,他才在恍惚間意識(shí)到了一件事:“原來我真的可以做游戲啊?!?/p>
游戲發(fā)布沒多久,一個(gè)玩家就把它發(fā)到了國(guó)外的視障者論壇上,服務(wù)器里一下子涌進(jìn)來好多國(guó)外的視障玩家。汪乙發(fā)現(xiàn)了好幾個(gè)熟悉的ID,是以前在《沼澤》里一起玩過的外國(guó)朋友們。他們用“塑料”英語興奮地問候著:好久不見! 以前一起在宿舍里“開黑”的同學(xué)也知道了,都跑過來玩?!巴粢?,你好酷!”那段時(shí)間,汪乙每天都能聽到別人夸他“好酷”。
游戲上線第二年,他辭去了推拿店的工作,選擇全職做游戲設(shè)計(jì)師?,F(xiàn)在游戲注冊(cè)的用戶超過2000 人,最多的時(shí)候能有500人同時(shí)在線。對(duì)于盲人游戲而言這是個(gè)了不起的數(shù)字。玩家游戲充值的收入,已經(jīng)夠汪乙和團(tuán)隊(duì)養(yǎng)活自己。
做游戲是辛苦的。剛上線那陣子,他幾乎每天都熬到天亮才睡。最夸張的一次“正好晝夜顛倒了12 個(gè)小時(shí)”,中午12 點(diǎn)睡覺,晚上10 點(diǎn)爬起來,打開電腦接著寫。雖然辛苦,但他喜歡獨(dú)自敲代碼的日子。
“以前做推拿的時(shí)候老要跟病人說話,哪里不舒服?按得夠不夠?”現(xiàn)在,他不再為經(jīng)絡(luò)與穴位煩惱了。盲人的出路,不只有推拿。
(心香一瓣摘自“看客inSight”微信公眾號(hào),豆薇圖)