第1章
從零開始打造游戲帝國(guó)
異世開局------------------------------------------。,是一部他從未見過的手機(jī)——外殼像塑料玩具,屏幕分辨率低得能看清像素點(diǎn),系統(tǒng)界面簡(jiǎn)陋得像是十年前的山寨機(jī)。但這玩意兒確實(shí)在響,推送欄里塞滿了新聞通知。,手指劃過屏幕時(shí)那股阻滯感讓他皺了皺眉。這觸控體驗(yàn),放在他原來(lái)那個(gè)世界,大概會(huì)被評(píng)測(cè)博主罵到退市。,是新聞標(biāo)題?!啊?**方塊》手機(jī)版全球下載量突破五億,再創(chuàng)游戲史新紀(jì)錄!業(yè)內(nèi)人士盛贊:***方塊重新定義了移動(dòng)娛樂!諾基亞CEO:我們將全面預(yù)裝這款世紀(jì)神作!”,然后緩緩?fù)鲁鰞蓚€(gè)字:“什么?”?!柏澇陨咧斧@得圖靈獎(jiǎng),****進(jìn)入黃金時(shí)代。業(yè)內(nèi)專家預(yù)測(cè):未來(lái)十年內(nèi),****畫面或?qū)⑦_(dá)到‘128x128’分辨率。玩家評(píng)選史上最偉大游戲Top10:***方塊、貪吃蛇、推箱子……”,敲在他太陽(yáng)穴上。,閉上眼睛,深吸一口氣。腦海里涌進(jìn)來(lái)的記憶碎片正在慢慢拼合——他穿越了。不,準(zhǔn)確地說,是靈魂擠進(jìn)了這個(gè)平行世界的“陳旭”身體里。原主是個(gè)二十二歲的普通青年,大學(xué)剛畢業(yè),計(jì)算機(jī)專業(yè),正在出租屋里海投簡(jiǎn)歷。父母在小城做小生意,家境一般。沒有女朋友,沒有存款,連這臺(tái)破電腦都是二手淘來(lái)的。,用一種他無(wú)法理解的方式存在著。
****?就是黑白屏上的像素塊移動(dòng)。家用主機(jī)?壓根沒有這個(gè)概念。PC游戲倒是有一些,但最火的是一款叫做《地牢探險(xiǎn)》的回合制文字MUD,畫面全靠腦補(bǔ),玩家們卻奉為神作。
陳旭又看了看手機(jī)里《***方塊》的游戲截圖——那畫面在他眼里跟電子垃圾沒區(qū)別,但新聞評(píng)論區(qū)清一色五星好評(píng)?!吧駜?yōu)化!絲滑流暢!玩法永不過時(shí)!這才是真正的游戲!”
他默默退出了新聞應(yīng)用,盯著出租屋天花板上那盞忽明忽暗的日光燈管,發(fā)了很久的呆。
然后他笑了。
不是苦笑,是一種從胃里翻涌上來(lái)的、壓都?jí)翰蛔〉呐d奮感。
他坐起身,連拖鞋都沒穿,赤腳踩在冰涼的水泥地上,走到那張堆滿外賣盒的書桌前,一把掀開鍵盤。這臺(tái)老舊的組裝電腦嗡嗡響著,像一臺(tái)年久失修的風(fēng)扇。他點(diǎn)開瀏覽器,搜索了一圈應(yīng)用商店的開發(fā)者入駐流程、游戲引擎的相關(guān)信息。
這個(gè)世界的智能手機(jī)性能,大概相當(dāng)于他原來(lái)世界里2010年前后的水平。算不上強(qiáng),但跑個(gè)2D物理引擎綽綽有余。
而這個(gè)世界最流行的編程語(yǔ)言,叫“SimpleC”,是一種他從未見過的奇怪語(yǔ)言,但語(yǔ)法結(jié)構(gòu)和C++有七分相似。原主大學(xué)里學(xué)的就是這個(gè),記憶還留在腦子里。
陳旭靠在椅背上,手指無(wú)意識(shí)地敲著桌面,發(fā)出嗒嗒的聲響。
他腦子里飄過無(wú)數(shù)個(gè)名字——《魔獸世界》《暗黑破壞神》《塞爾達(dá)傳說》《最終幻想》……每一款拿出來(lái)都是**級(jí)的。但他很快壓住了自己躁動(dòng)的念頭。
第一款游戲不能太復(fù)雜。他需要測(cè)試這個(gè)市場(chǎng)的接受度,需要建立口碑,更重要的是——他只有一個(gè)人,一臺(tái)破電腦,***余額三位數(shù)。
他需要一個(gè)體量小、傳播性強(qiáng)、玩法直觀到不用教學(xué)就能上手、而且在這個(gè)世界絕對(duì)沒人見過的游戲。
手指停止了敲擊。
“憤怒的小鳥。”
他幾乎是脫口而出。
這款在原來(lái)世界開啟了手游時(shí)代的作品,玩法簡(jiǎn)單到極致:拉彈弓,發(fā)射小鳥,砸倒**。但它的成功從來(lái)不是偶然——物理引擎帶來(lái)的隨機(jī)爽感,可愛畫風(fēng)的反差,關(guān)卡設(shè)計(jì)的節(jié)奏感,還有那該死的病毒傳播屬性。
陳旭深吸一口氣,翻開桌上的草稿本,開始寫寫畫畫。
他要做的第一件事,不是寫代碼,而是設(shè)計(jì)出核心玩法框架。小鳥的彈道拋物線、不同鳥類的特殊技能、豬的防御值、建筑材質(zhì)的破壞邏輯……這些東西他閉著眼睛都能畫出來(lái),但他必須確保在這個(gè)世界的硬件上跑得動(dòng)。
窗外不知道什么時(shí)候黑了。樓下傳來(lái)夜市炒粉的鍋鏟聲和摩托車的突突聲。陳旭完全沒注意,他整個(gè)人像被釘在了椅子上,草稿紙用了十幾張,每張都畫滿了拋物線公式和類結(jié)構(gòu)圖。
等他終于抬起頭,脖子發(fā)出咔嗒一聲響,他才發(fā)現(xiàn)已經(jīng)凌晨一點(diǎn)多了。
肚子咕嚕嚕叫了起來(lái)。他翻了翻桌上吃剩的半盒炒飯,猶豫了兩秒,還是打開吃了兩口。冷的,油凝固成白色的塊,口感像是在嚼蠟。但他沒有停下來(lái),一邊嚼一邊盯著屏幕上自己剛寫的需求文檔。
“物理引擎……沒有現(xiàn)成的,得手?jǐn)]一個(gè)簡(jiǎn)易版本。圖形渲染用CPU軟渲染就夠了,幀率不需要太高,25幀流暢就行。音效……這個(gè)麻煩,我不會(huì)作曲,但可以用MIDI合成簡(jiǎn)單音效?!?br>他自言自語(yǔ)的聲音在空蕩蕩的出租屋里回響,像是一個(gè)瘋子在跟自己開會(huì)。
第二天一早,陳旭揣著僅剩的幾百塊錢出了門。他先去電子市場(chǎng)淘了一臺(tái)二手的安卓測(cè)試機(jī)——屏幕有裂痕,但能亮。又去了趟超市,買了兩箱泡面和一袋最便宜的速溶咖啡。
老板找錢的時(shí)候多看了他兩眼,大概是被他眼里的血絲和亢奮的神情嚇到了。
接下來(lái)的日子,陳旭幾乎與世隔絕。
他把窗戶用舊床單遮住,不分白天黑夜。餓了就泡面,困了就趴在桌上瞇一會(huì)兒,醒過來(lái)灌一杯苦到發(fā)澀的咖啡繼續(xù)寫代碼。
SimpleC語(yǔ)言確實(shí)有些奇怪的特性,比如內(nèi)存管理比C++更原始,沒有標(biāo)準(zhǔn)庫(kù)的STL。他花了兩天時(shí)間手寫了一個(gè)動(dòng)態(tài)數(shù)組和哈希表,又花了三天實(shí)現(xiàn)了一個(gè)極其簡(jiǎn)陋的剛體碰撞檢測(cè)系統(tǒng)。
第一周結(jié)束的時(shí)候,他能在屏幕上畫出一只**的小鳥——三個(gè)像素點(diǎn)組成的眼睛,一個(gè)三角形嘴,圓滾滾的身體。他按下鼠標(biāo)拖拽,松開的瞬間,小鳥劃出一道弧線,撞上了一塊綠色的矩形。
矩形晃了晃,沒碎。
“**,碰撞體響應(yīng)力向量算錯(cuò)了?!?br>他罵了一聲,手指飛快地敲擊鍵盤,修改了幾行代碼,重新編譯。五分鐘后,再次拖拽發(fā)射。
砰。
矩形碎裂成四個(gè)小方塊,啪嗒啪嗒掉了下來(lái)。
陳旭盯著屏幕看了三秒鐘,嘴角慢慢咧開,露出一個(gè)缺覺的、不太健康的笑容。
第二周,他加入了不同的小鳥類型。紅色的基礎(chǔ)鳥,沒有特殊技能但傷害均衡;藍(lán)色的三叉鳥,在空中**成三只;**的加速鳥,直線沖擊力最大;黑色的**鳥,爆炸范圍傷害。每一種鳥的特效實(shí)現(xiàn)都讓他抓掉好幾把頭發(fā),尤其是黑色小鳥的爆炸粒子系統(tǒng)——最后他用了一個(gè)取巧的辦法,把爆炸效果做成了幾個(gè)逐漸放大又消失的圓形位圖序列幀。
第三周,他設(shè)計(jì)了第一批關(guān)卡。十五關(guān),從最簡(jiǎn)單的“一只豬放在木板上”到稍微復(fù)雜的多層結(jié)構(gòu),每一關(guān)的物理參數(shù)他都用手工調(diào)整了無(wú)數(shù)次,確保彈道有挑戰(zhàn)但不至于難到勸退。
**周,最折磨人的部分來(lái)了——美術(shù)資源。
陳旭從小就沒有繪畫天賦,畫個(gè)圓都能畫成土豆。他嘗試用像素畫的方式點(diǎn)出小鳥和豬的形象,結(jié)果點(diǎn)出來(lái)的**看起來(lái)像一坨發(fā)了霉的鼻涕。他在網(wǎng)上找到一個(gè)免費(fèi)的開源像素圖庫(kù),花了一整天的時(shí)間對(duì)著圖庫(kù)臨摹修改,硬生生磨出了一套勉強(qiáng)能看的風(fēng)格——小鳥圓潤(rùn)可愛,**憨厚中帶著一點(diǎn)欠揍的賤萌。
**圖?算了,純色加一點(diǎn)漸變就夠用了。
音效呢?他用一個(gè)叫“*fxr”的免費(fèi)工具自己合成——彈弓發(fā)射的“咻”聲,小鳥撞上建筑時(shí)的“噗”聲,豬被擊敗時(shí)的“呼哇”聲。雖然聽起來(lái)有點(diǎn)電子味過重,但至少節(jié)奏感和反饋感是到位的。
當(dāng)最后一關(guān)的勝利動(dòng)畫——一只白色的大鳥下了一顆巨大的蛋,轟然砸爛所有建筑——跑通的那一刻,陳旭整個(gè)人癱在椅子上,眼睛干澀得像進(jìn)了沙子,但腦子里某個(gè)繃了太久的弦終于松了下來(lái)。
他看了一眼電腦右下角的時(shí)間:凌晨四點(diǎn)四十三分,日歷顯示已經(jīng)過了三十二天。
他做了個(gè)簡(jiǎn)單的APK安裝包,用數(shù)據(jù)線傳到了那臺(tái)二手測(cè)試機(jī)上。手指點(diǎn)到圖標(biāo)上的一瞬間,他的心還是提了起來(lái)——萬(wàn)一卡頓,萬(wàn)一崩潰,萬(wàn)一……
游戲啟動(dòng)了。
一個(gè)簡(jiǎn)單的標(biāo)題畫面,上面寫著“Angry *irds”——他沒做中文名,直接用了英文,反正這個(gè)世界英文也是通用語(yǔ)言。畫面下方只有兩個(gè)按鈕:開始游戲,關(guān)卡選擇。
他點(diǎn)了一下開始游戲,第一關(guān)的教學(xué)界面彈了出來(lái)。一只紅色的小鳥安靜地蹲在彈弓上,遠(yuǎn)處是搭在草地上的木頭架子,架子里蹲著一只**,正用一種欠揍的眼神看著屏幕。
陳旭深吸一口氣,用手指拖拽小鳥向后拉,彈弓的皮筋被拉長(zhǎng),屏幕上出現(xiàn)了一條虛線拋物線。他松開手指。
咻——
小鳥飛了出去,劃過一道漂亮的弧線,正中木架中間那根橫梁。木頭斷裂的像素碎裂效果閃了一下,架子傾斜倒塌,**被壓在了下面,發(fā)出一聲短促的“呼哇”。
勝利的音效響起,星星評(píng)分界面彈出——三顆星。
陳旭盯著那個(gè)三顆星的畫面,突然鼻子有點(diǎn)酸。他說不清是為什么,可能是因?yàn)槿鞗]怎么睡好覺,也可能是因?yàn)樗鋈灰庾R(shí)到——從今天開始,這個(gè)世界的游戲史,要被他改寫了。
但他只是揉了揉鼻子,打開電腦上的開發(fā)者**,開始填寫應(yīng)用上架的各類信息。應(yīng)用名稱:Angry *irds;類別:游戲/益智;價(jià)格:免費(fèi)(內(nèi)置廣告);適用年齡:所有人。
他想了想,又在描述欄里打了一行字:“拉彈弓,砸**,就這么簡(jiǎn)單?!?br>上傳APK,提交審核。
官方應(yīng)用商店的審核速度比他想象的快得多——四十八小時(shí)后,他收到了一封郵件:“您的應(yīng)用已通過審核,現(xiàn)已上架。”
沒有祝賀,沒有人工問候,甚至沒有檢查出任何*ug。一封冷冰冰的系統(tǒng)郵件。
陳旭關(guān)掉郵件,把那臺(tái)測(cè)試機(jī)里下載好的游戲打開,又玩了三關(guān),確認(rèn)沒有任何問題。然后把手機(jī)扔到一邊,爬上那張已經(jīng)一個(gè)多月沒正經(jīng)躺過的床,把臉埋進(jìn)枕頭的瞬間就睡著了。
這一覺他睡了十四個(gè)小時(shí)。
醒來(lái)的時(shí)候,他第一個(gè)動(dòng)作是摸手機(jī)——這已經(jīng)成為一種本能。屏幕亮起,通知欄里安安靜靜,只有兩條未讀的系統(tǒng)通知,都是無(wú)關(guān)緊要的東西。
下載量:47次。
上架已經(jīng)十幾個(gè)小時(shí)了,只有47次下載。其中大部分應(yīng)該還是路過看見隨手點(diǎn)的,或者商店編輯隨機(jī)展示帶來(lái)的自然流量。
陳旭放下手機(jī),去衛(wèi)生間洗了把臉。鏡子里的自己瘦了一圈,顴骨比以前明顯,下巴長(zhǎng)了胡茬,眼下的黑眼圈深得像被人揍了兩拳。他用冷水拍了拍臉,告訴自己冷靜。
“這才第一天,急什么。”
他泡了一碗面,一邊吸溜一邊盯著開發(fā)者**的數(shù)據(jù)面板,刷新,刷新,再刷新。
下載量跳到61、68、79……這個(gè)增長(zhǎng)速度,跟螞蟻爬差不多。
到了下午,下載量終于突破了200。評(píng)論區(qū)的第一條用戶評(píng)價(jià)出現(xiàn)了——
“什么鬼東西,一只鳥打豬?無(wú)聊?!?br>兩顆星。
陳旭面無(wú)表情地關(guān)掉了評(píng)論區(qū)。
他開始懷疑自己是不是判斷錯(cuò)了。這個(gè)世界連《***方塊》都算神作,是不是代表玩家群體的審美和接受度反而更保守?《憤怒的小鳥》的**畫風(fēng)和物理彈射玩法,對(duì)這個(gè)世界來(lái)說會(huì)不會(huì)太超前了?
或者,他單純就是虧在了沒有推廣預(yù)算上。一個(gè)沒有任何知名度、零投放、零曝光的個(gè)人開發(fā)者作品,在上架池子里就像往大海里扔了一顆石子,能激起一點(diǎn)水花就不錯(cuò)了。
他把面湯喝完,把紙碗扔進(jìn)已經(jīng)滿出來(lái)的垃圾桶里,坐下來(lái)開始規(guī)劃下一步。如果數(shù)據(jù)一直起不來(lái),他可能需要想別的辦法——寫軟文、去論壇發(fā)帖、或者自己做一個(gè)試玩視頻上傳到視頻網(wǎng)站。
但他還沒來(lái)得及打開文檔,手機(jī)的連續(xù)震動(dòng)打斷了他的思路。
叮叮叮叮?!?br>一連串郵件提醒彈了出來(lái),幾乎是一秒鐘一封的節(jié)奏。陳旭拿起手機(jī),愣住了。
前五封郵件的標(biāo)題分別是:
“玩家評(píng)論:這款叫Angry *irds的游戲太魔性了,我停不下來(lái)!”
“玩家評(píng)論:誰(shuí)能告訴我第七關(guān)怎么過?那只豬躲在石頭后面根本砸不到!”
“玩家評(píng)論:藍(lán)色小鳥**的時(shí)機(jī)怎么把握?求大神指點(diǎn)!”
“玩家評(píng)論:強(qiáng)烈推薦!這是我玩過最好玩的****,沒有之一!”
“玩家評(píng)論:辦公室里八個(gè)人都在玩,我們開始比誰(shuí)三星通關(guān)多了!”
下載量的數(shù)字也在以肉眼可見的速度跳動(dòng):487、523、611、789……
陳旭打開開發(fā)者**的實(shí)時(shí)圖表,那條代表下載量的曲線在沉寂了十幾個(gè)小時(shí)后,忽然像被掐住了脖子往上提一樣,陡峭地?fù)P了起來(lái)。
他愣住了。
沒有推廣,沒有廣告,沒有論壇發(fā)帖。這意味著——有人在玩了之后,主動(dòng)推薦給了身邊的人,然后那些人又推薦給了更多人。
口碑傳播。病毒式傳播。
這才是《憤怒的小鳥》真正的武器。
他深吸一口氣,點(diǎn)開評(píng)論區(qū),一條一條看了下去。
“一開始覺得這什么幼稚畫風(fēng),玩了兩關(guān)就上癮了,物理彈道太真實(shí)了,砸倒建筑的那一刻爽爆!”——五星。
“求求了,第二十一關(guān)那個(gè)倒三角結(jié)構(gòu)怎么破?我已經(jīng)卡了半小時(shí)了?!薄男?。
“黑鳥**太好用了,每次炸塌一整片的感覺比***方塊消四行還爽?!薄逍恰?br>“****,騙時(shí)間的?!薄恍?,但下面已經(jīng)有三個(gè)人回復(fù)罵他了。
陳旭翻著這些評(píng)論,嘴角的笑意越來(lái)越壓不住。他站起身,在出租屋里走了兩圈,又坐下,又站起來(lái),最后干脆靠在那張吱呀作響的椅子背上,仰著頭,對(duì)著天花板上那盞忽明忽暗的日光燈,長(zhǎng)長(zhǎng)地呼出了一口氣。
然后他又刷了一遍數(shù)據(jù)。
下載量:1247。
上架不到兩天,一千多次下載,而且還在加速。
但他知道,這才剛剛開始。
三天后,下載量突破一萬(wàn)。
五天后,突破了五萬(wàn)。
評(píng)論區(qū)已經(jīng)炸鍋了,好評(píng)率高達(dá)百分之九十三。玩家們開始自發(fā)建立攻略貼吧,有人整理了每一關(guān)的三星通關(guān)技巧,有人做了全鳥類的數(shù)據(jù)解析表,甚至有人開始在視頻網(wǎng)站上直播速通——雖然這個(gè)世界的直播畫質(zhì)只有360p,彈幕還經(jīng)??ǔ蒔PT。
真正讓陳旭意識(shí)到事情大條的,是一家游戲媒體的報(bào)道。
那天下午,他正對(duì)著電腦寫下一款游戲的策劃案草稿,手機(jī)突然瘋狂震動(dòng)起來(lái),不是郵件提醒,而是新聞應(yīng)用的推送。
“黑馬誕生!個(gè)人開發(fā)者作品《Angry *irds》登頂應(yīng)用商店免費(fèi)榜榜首!”
陳旭點(diǎn)進(jìn)新聞,文章洋洋灑灑寫了上千字,把《憤怒的小鳥》稱為“重新定義****交互方式的現(xiàn)象級(jí)作品”,還專門分析了一通物理彈射玩法對(duì)觸屏操作的完美適配——比虛擬按鍵更直覺,比點(diǎn)觸更有操作感。文章最后寫道:“這款游戲的開發(fā)者署名只有一個(gè)ID——‘X.Chen’,記者試圖聯(lián)系該開發(fā)者,截至發(fā)稿尚未收到回復(fù)?!?br>X.Chen。陳旭當(dāng)時(shí)隨便打的名字,沒想到現(xiàn)在出現(xiàn)在新聞里了。
他把手機(jī)扔到床上,雙手捂住了臉,指縫里透出來(lái)的不是笑,而是一種說不清道不明的復(fù)雜情緒——興奮、緊張、還有一絲絲不真實(shí)感。就好像你精心準(zhǔn)備了一道菜,本來(lái)只打算給自己吃,結(jié)果路過的人嘗了一口之后,整條街都排起了長(zhǎng)隊(duì)。
又過了一周,《Angry *irds》的下載量突破了五十萬(wàn)。雖然跟原來(lái)世界里幾億的下載量沒法比,但在這個(gè)****市場(chǎng)尚且稚嫩的平行世界,這個(gè)數(shù)字已經(jīng)足夠讓所有**跌眼鏡。
應(yīng)用商店的編輯主動(dòng)給他發(fā)了一封郵件,語(yǔ)氣比審核通知熱情了十倍:“X.Chen先生**,您的作品表現(xiàn)優(yōu)異,我們希望能為您安排一期開發(fā)者專訪,方便的話請(qǐng)回復(fù)郵件……”
陳旭盯著那封郵件看了幾秒,然后關(guān)了。
不是不想接受采訪,而是他還沒想好要怎么面對(duì)這個(gè)世界的媒體——他總不能說“這些游戲的創(chuàng)意都來(lái)自另一個(gè)地球”。
更重要的是,他腦子里已經(jīng)在瘋狂轉(zhuǎn)著下一個(gè)項(xiàng)目了。
《憤怒的小鳥》的成功已經(jīng)驗(yàn)證了一件事:這個(gè)世界的玩家不是不渴望好游戲,而是他們根本不知道什么是好游戲。當(dāng)一款真正意義上的現(xiàn)代手游出現(xiàn)在他們面前時(shí),他們會(huì)像發(fā)現(xiàn)新**一樣瘋狂追捧。
而他手握著整整一座**的地圖。
他打開文檔,在標(biāo)題欄打出了幾個(gè)字。
《植物大戰(zhàn)僵尸》。
打完之后他又**。
不行,再等等。《憤怒的小鳥》的熱度還可以再發(fā)酵一陣,他需要先把賺到的錢落袋為安,升級(jí)設(shè)備,搞一個(gè)像樣的開發(fā)環(huán)境。廣告收入結(jié)算周期是月結(jié),第一個(gè)月的錢還沒到賬,但根據(jù)目前的DAU和廣告展示量估算,少說也有……
他心算了一下,然后整個(gè)人靠在椅背上,干咽了一口唾沫。
那個(gè)數(shù)字,比**媽干一輩子小生意攢下的錢還要多。
窗外又傳來(lái)了夜市炒粉的鍋鏟聲,摩托車的突突聲,還有樓下大媽吵架的尖嗓門。這些聲音跟三十二天前一模一樣,但陳旭覺得,整個(gè)世界好像都變得不一樣了。
他不知道自己正坐在一張吱呀作響的折疊椅上,穿著一件領(lǐng)口洗變形的T恤,面前的電腦風(fēng)扇嗡嗡響得像拖拉機(jī)。他不知道在這個(gè)世界的某個(gè)角落,已經(jīng)有游戲公司的產(chǎn)品經(jīng)理在連夜開會(huì),研究《Angry *irds》的玩法參數(shù)和設(shè)計(jì)思路,試圖抄出一款競(jìng)品。
他更不知道,在未來(lái)的某一天,會(huì)有一個(gè)人敲開這間出租屋的門,對(duì)他說出一句改變一切的話。
但現(xiàn)在,他只是伸了個(gè)懶腰,拿起那臺(tái)屏幕有裂痕的測(cè)試機(jī),又玩了三把自己的游戲,每一關(guān)都拿了三星,然后心滿意足地把它放回桌上。
他推開窗戶,六月的晚風(fēng)裹著**的油煙味灌進(jìn)來(lái),吹散了滿屋子的泡面氣息。
遠(yuǎn)處城市的霓虹燈在夜色里明明滅滅,像極了游戲里那些像素點(diǎn)組成的星光。
陳旭趴在窗臺(tái)上,忽然自言自語(yǔ)了一句:“接下來(lái)做哪一款呢……”
聲音很小,被樓下的喧囂淹沒了。
但沒人聽到的這句話,是這個(gè)平行世界游戲**開啟之后,最有分量的一個(gè)問句。
****?就是黑白屏上的像素塊移動(dòng)。家用主機(jī)?壓根沒有這個(gè)概念。PC游戲倒是有一些,但最火的是一款叫做《地牢探險(xiǎn)》的回合制文字MUD,畫面全靠腦補(bǔ),玩家們卻奉為神作。
陳旭又看了看手機(jī)里《***方塊》的游戲截圖——那畫面在他眼里跟電子垃圾沒區(qū)別,但新聞評(píng)論區(qū)清一色五星好評(píng)?!吧駜?yōu)化!絲滑流暢!玩法永不過時(shí)!這才是真正的游戲!”
他默默退出了新聞應(yīng)用,盯著出租屋天花板上那盞忽明忽暗的日光燈管,發(fā)了很久的呆。
然后他笑了。
不是苦笑,是一種從胃里翻涌上來(lái)的、壓都?jí)翰蛔〉呐d奮感。
他坐起身,連拖鞋都沒穿,赤腳踩在冰涼的水泥地上,走到那張堆滿外賣盒的書桌前,一把掀開鍵盤。這臺(tái)老舊的組裝電腦嗡嗡響著,像一臺(tái)年久失修的風(fēng)扇。他點(diǎn)開瀏覽器,搜索了一圈應(yīng)用商店的開發(fā)者入駐流程、游戲引擎的相關(guān)信息。
這個(gè)世界的智能手機(jī)性能,大概相當(dāng)于他原來(lái)世界里2010年前后的水平。算不上強(qiáng),但跑個(gè)2D物理引擎綽綽有余。
而這個(gè)世界最流行的編程語(yǔ)言,叫“SimpleC”,是一種他從未見過的奇怪語(yǔ)言,但語(yǔ)法結(jié)構(gòu)和C++有七分相似。原主大學(xué)里學(xué)的就是這個(gè),記憶還留在腦子里。
陳旭靠在椅背上,手指無(wú)意識(shí)地敲著桌面,發(fā)出嗒嗒的聲響。
他腦子里飄過無(wú)數(shù)個(gè)名字——《魔獸世界》《暗黑破壞神》《塞爾達(dá)傳說》《最終幻想》……每一款拿出來(lái)都是**級(jí)的。但他很快壓住了自己躁動(dòng)的念頭。
第一款游戲不能太復(fù)雜。他需要測(cè)試這個(gè)市場(chǎng)的接受度,需要建立口碑,更重要的是——他只有一個(gè)人,一臺(tái)破電腦,***余額三位數(shù)。
他需要一個(gè)體量小、傳播性強(qiáng)、玩法直觀到不用教學(xué)就能上手、而且在這個(gè)世界絕對(duì)沒人見過的游戲。
手指停止了敲擊。
“憤怒的小鳥。”
他幾乎是脫口而出。
這款在原來(lái)世界開啟了手游時(shí)代的作品,玩法簡(jiǎn)單到極致:拉彈弓,發(fā)射小鳥,砸倒**。但它的成功從來(lái)不是偶然——物理引擎帶來(lái)的隨機(jī)爽感,可愛畫風(fēng)的反差,關(guān)卡設(shè)計(jì)的節(jié)奏感,還有那該死的病毒傳播屬性。
陳旭深吸一口氣,翻開桌上的草稿本,開始寫寫畫畫。
他要做的第一件事,不是寫代碼,而是設(shè)計(jì)出核心玩法框架。小鳥的彈道拋物線、不同鳥類的特殊技能、豬的防御值、建筑材質(zhì)的破壞邏輯……這些東西他閉著眼睛都能畫出來(lái),但他必須確保在這個(gè)世界的硬件上跑得動(dòng)。
窗外不知道什么時(shí)候黑了。樓下傳來(lái)夜市炒粉的鍋鏟聲和摩托車的突突聲。陳旭完全沒注意,他整個(gè)人像被釘在了椅子上,草稿紙用了十幾張,每張都畫滿了拋物線公式和類結(jié)構(gòu)圖。
等他終于抬起頭,脖子發(fā)出咔嗒一聲響,他才發(fā)現(xiàn)已經(jīng)凌晨一點(diǎn)多了。
肚子咕嚕嚕叫了起來(lái)。他翻了翻桌上吃剩的半盒炒飯,猶豫了兩秒,還是打開吃了兩口。冷的,油凝固成白色的塊,口感像是在嚼蠟。但他沒有停下來(lái),一邊嚼一邊盯著屏幕上自己剛寫的需求文檔。
“物理引擎……沒有現(xiàn)成的,得手?jǐn)]一個(gè)簡(jiǎn)易版本。圖形渲染用CPU軟渲染就夠了,幀率不需要太高,25幀流暢就行。音效……這個(gè)麻煩,我不會(huì)作曲,但可以用MIDI合成簡(jiǎn)單音效?!?br>他自言自語(yǔ)的聲音在空蕩蕩的出租屋里回響,像是一個(gè)瘋子在跟自己開會(huì)。
第二天一早,陳旭揣著僅剩的幾百塊錢出了門。他先去電子市場(chǎng)淘了一臺(tái)二手的安卓測(cè)試機(jī)——屏幕有裂痕,但能亮。又去了趟超市,買了兩箱泡面和一袋最便宜的速溶咖啡。
老板找錢的時(shí)候多看了他兩眼,大概是被他眼里的血絲和亢奮的神情嚇到了。
接下來(lái)的日子,陳旭幾乎與世隔絕。
他把窗戶用舊床單遮住,不分白天黑夜。餓了就泡面,困了就趴在桌上瞇一會(huì)兒,醒過來(lái)灌一杯苦到發(fā)澀的咖啡繼續(xù)寫代碼。
SimpleC語(yǔ)言確實(shí)有些奇怪的特性,比如內(nèi)存管理比C++更原始,沒有標(biāo)準(zhǔn)庫(kù)的STL。他花了兩天時(shí)間手寫了一個(gè)動(dòng)態(tài)數(shù)組和哈希表,又花了三天實(shí)現(xiàn)了一個(gè)極其簡(jiǎn)陋的剛體碰撞檢測(cè)系統(tǒng)。
第一周結(jié)束的時(shí)候,他能在屏幕上畫出一只**的小鳥——三個(gè)像素點(diǎn)組成的眼睛,一個(gè)三角形嘴,圓滾滾的身體。他按下鼠標(biāo)拖拽,松開的瞬間,小鳥劃出一道弧線,撞上了一塊綠色的矩形。
矩形晃了晃,沒碎。
“**,碰撞體響應(yīng)力向量算錯(cuò)了?!?br>他罵了一聲,手指飛快地敲擊鍵盤,修改了幾行代碼,重新編譯。五分鐘后,再次拖拽發(fā)射。
砰。
矩形碎裂成四個(gè)小方塊,啪嗒啪嗒掉了下來(lái)。
陳旭盯著屏幕看了三秒鐘,嘴角慢慢咧開,露出一個(gè)缺覺的、不太健康的笑容。
第二周,他加入了不同的小鳥類型。紅色的基礎(chǔ)鳥,沒有特殊技能但傷害均衡;藍(lán)色的三叉鳥,在空中**成三只;**的加速鳥,直線沖擊力最大;黑色的**鳥,爆炸范圍傷害。每一種鳥的特效實(shí)現(xiàn)都讓他抓掉好幾把頭發(fā),尤其是黑色小鳥的爆炸粒子系統(tǒng)——最后他用了一個(gè)取巧的辦法,把爆炸效果做成了幾個(gè)逐漸放大又消失的圓形位圖序列幀。
第三周,他設(shè)計(jì)了第一批關(guān)卡。十五關(guān),從最簡(jiǎn)單的“一只豬放在木板上”到稍微復(fù)雜的多層結(jié)構(gòu),每一關(guān)的物理參數(shù)他都用手工調(diào)整了無(wú)數(shù)次,確保彈道有挑戰(zhàn)但不至于難到勸退。
**周,最折磨人的部分來(lái)了——美術(shù)資源。
陳旭從小就沒有繪畫天賦,畫個(gè)圓都能畫成土豆。他嘗試用像素畫的方式點(diǎn)出小鳥和豬的形象,結(jié)果點(diǎn)出來(lái)的**看起來(lái)像一坨發(fā)了霉的鼻涕。他在網(wǎng)上找到一個(gè)免費(fèi)的開源像素圖庫(kù),花了一整天的時(shí)間對(duì)著圖庫(kù)臨摹修改,硬生生磨出了一套勉強(qiáng)能看的風(fēng)格——小鳥圓潤(rùn)可愛,**憨厚中帶著一點(diǎn)欠揍的賤萌。
**圖?算了,純色加一點(diǎn)漸變就夠用了。
音效呢?他用一個(gè)叫“*fxr”的免費(fèi)工具自己合成——彈弓發(fā)射的“咻”聲,小鳥撞上建筑時(shí)的“噗”聲,豬被擊敗時(shí)的“呼哇”聲。雖然聽起來(lái)有點(diǎn)電子味過重,但至少節(jié)奏感和反饋感是到位的。
當(dāng)最后一關(guān)的勝利動(dòng)畫——一只白色的大鳥下了一顆巨大的蛋,轟然砸爛所有建筑——跑通的那一刻,陳旭整個(gè)人癱在椅子上,眼睛干澀得像進(jìn)了沙子,但腦子里某個(gè)繃了太久的弦終于松了下來(lái)。
他看了一眼電腦右下角的時(shí)間:凌晨四點(diǎn)四十三分,日歷顯示已經(jīng)過了三十二天。
他做了個(gè)簡(jiǎn)單的APK安裝包,用數(shù)據(jù)線傳到了那臺(tái)二手測(cè)試機(jī)上。手指點(diǎn)到圖標(biāo)上的一瞬間,他的心還是提了起來(lái)——萬(wàn)一卡頓,萬(wàn)一崩潰,萬(wàn)一……
游戲啟動(dòng)了。
一個(gè)簡(jiǎn)單的標(biāo)題畫面,上面寫著“Angry *irds”——他沒做中文名,直接用了英文,反正這個(gè)世界英文也是通用語(yǔ)言。畫面下方只有兩個(gè)按鈕:開始游戲,關(guān)卡選擇。
他點(diǎn)了一下開始游戲,第一關(guān)的教學(xué)界面彈了出來(lái)。一只紅色的小鳥安靜地蹲在彈弓上,遠(yuǎn)處是搭在草地上的木頭架子,架子里蹲著一只**,正用一種欠揍的眼神看著屏幕。
陳旭深吸一口氣,用手指拖拽小鳥向后拉,彈弓的皮筋被拉長(zhǎng),屏幕上出現(xiàn)了一條虛線拋物線。他松開手指。
咻——
小鳥飛了出去,劃過一道漂亮的弧線,正中木架中間那根橫梁。木頭斷裂的像素碎裂效果閃了一下,架子傾斜倒塌,**被壓在了下面,發(fā)出一聲短促的“呼哇”。
勝利的音效響起,星星評(píng)分界面彈出——三顆星。
陳旭盯著那個(gè)三顆星的畫面,突然鼻子有點(diǎn)酸。他說不清是為什么,可能是因?yàn)槿鞗]怎么睡好覺,也可能是因?yàn)樗鋈灰庾R(shí)到——從今天開始,這個(gè)世界的游戲史,要被他改寫了。
但他只是揉了揉鼻子,打開電腦上的開發(fā)者**,開始填寫應(yīng)用上架的各類信息。應(yīng)用名稱:Angry *irds;類別:游戲/益智;價(jià)格:免費(fèi)(內(nèi)置廣告);適用年齡:所有人。
他想了想,又在描述欄里打了一行字:“拉彈弓,砸**,就這么簡(jiǎn)單?!?br>上傳APK,提交審核。
官方應(yīng)用商店的審核速度比他想象的快得多——四十八小時(shí)后,他收到了一封郵件:“您的應(yīng)用已通過審核,現(xiàn)已上架。”
沒有祝賀,沒有人工問候,甚至沒有檢查出任何*ug。一封冷冰冰的系統(tǒng)郵件。
陳旭關(guān)掉郵件,把那臺(tái)測(cè)試機(jī)里下載好的游戲打開,又玩了三關(guān),確認(rèn)沒有任何問題。然后把手機(jī)扔到一邊,爬上那張已經(jīng)一個(gè)多月沒正經(jīng)躺過的床,把臉埋進(jìn)枕頭的瞬間就睡著了。
這一覺他睡了十四個(gè)小時(shí)。
醒來(lái)的時(shí)候,他第一個(gè)動(dòng)作是摸手機(jī)——這已經(jīng)成為一種本能。屏幕亮起,通知欄里安安靜靜,只有兩條未讀的系統(tǒng)通知,都是無(wú)關(guān)緊要的東西。
下載量:47次。
上架已經(jīng)十幾個(gè)小時(shí)了,只有47次下載。其中大部分應(yīng)該還是路過看見隨手點(diǎn)的,或者商店編輯隨機(jī)展示帶來(lái)的自然流量。
陳旭放下手機(jī),去衛(wèi)生間洗了把臉。鏡子里的自己瘦了一圈,顴骨比以前明顯,下巴長(zhǎng)了胡茬,眼下的黑眼圈深得像被人揍了兩拳。他用冷水拍了拍臉,告訴自己冷靜。
“這才第一天,急什么。”
他泡了一碗面,一邊吸溜一邊盯著開發(fā)者**的數(shù)據(jù)面板,刷新,刷新,再刷新。
下載量跳到61、68、79……這個(gè)增長(zhǎng)速度,跟螞蟻爬差不多。
到了下午,下載量終于突破了200。評(píng)論區(qū)的第一條用戶評(píng)價(jià)出現(xiàn)了——
“什么鬼東西,一只鳥打豬?無(wú)聊?!?br>兩顆星。
陳旭面無(wú)表情地關(guān)掉了評(píng)論區(qū)。
他開始懷疑自己是不是判斷錯(cuò)了。這個(gè)世界連《***方塊》都算神作,是不是代表玩家群體的審美和接受度反而更保守?《憤怒的小鳥》的**畫風(fēng)和物理彈射玩法,對(duì)這個(gè)世界來(lái)說會(huì)不會(huì)太超前了?
或者,他單純就是虧在了沒有推廣預(yù)算上。一個(gè)沒有任何知名度、零投放、零曝光的個(gè)人開發(fā)者作品,在上架池子里就像往大海里扔了一顆石子,能激起一點(diǎn)水花就不錯(cuò)了。
他把面湯喝完,把紙碗扔進(jìn)已經(jīng)滿出來(lái)的垃圾桶里,坐下來(lái)開始規(guī)劃下一步。如果數(shù)據(jù)一直起不來(lái),他可能需要想別的辦法——寫軟文、去論壇發(fā)帖、或者自己做一個(gè)試玩視頻上傳到視頻網(wǎng)站。
但他還沒來(lái)得及打開文檔,手機(jī)的連續(xù)震動(dòng)打斷了他的思路。
叮叮叮叮?!?br>一連串郵件提醒彈了出來(lái),幾乎是一秒鐘一封的節(jié)奏。陳旭拿起手機(jī),愣住了。
前五封郵件的標(biāo)題分別是:
“玩家評(píng)論:這款叫Angry *irds的游戲太魔性了,我停不下來(lái)!”
“玩家評(píng)論:誰(shuí)能告訴我第七關(guān)怎么過?那只豬躲在石頭后面根本砸不到!”
“玩家評(píng)論:藍(lán)色小鳥**的時(shí)機(jī)怎么把握?求大神指點(diǎn)!”
“玩家評(píng)論:強(qiáng)烈推薦!這是我玩過最好玩的****,沒有之一!”
“玩家評(píng)論:辦公室里八個(gè)人都在玩,我們開始比誰(shuí)三星通關(guān)多了!”
下載量的數(shù)字也在以肉眼可見的速度跳動(dòng):487、523、611、789……
陳旭打開開發(fā)者**的實(shí)時(shí)圖表,那條代表下載量的曲線在沉寂了十幾個(gè)小時(shí)后,忽然像被掐住了脖子往上提一樣,陡峭地?fù)P了起來(lái)。
他愣住了。
沒有推廣,沒有廣告,沒有論壇發(fā)帖。這意味著——有人在玩了之后,主動(dòng)推薦給了身邊的人,然后那些人又推薦給了更多人。
口碑傳播。病毒式傳播。
這才是《憤怒的小鳥》真正的武器。
他深吸一口氣,點(diǎn)開評(píng)論區(qū),一條一條看了下去。
“一開始覺得這什么幼稚畫風(fēng),玩了兩關(guān)就上癮了,物理彈道太真實(shí)了,砸倒建筑的那一刻爽爆!”——五星。
“求求了,第二十一關(guān)那個(gè)倒三角結(jié)構(gòu)怎么破?我已經(jīng)卡了半小時(shí)了?!薄男?。
“黑鳥**太好用了,每次炸塌一整片的感覺比***方塊消四行還爽?!薄逍恰?br>“****,騙時(shí)間的?!薄恍?,但下面已經(jīng)有三個(gè)人回復(fù)罵他了。
陳旭翻著這些評(píng)論,嘴角的笑意越來(lái)越壓不住。他站起身,在出租屋里走了兩圈,又坐下,又站起來(lái),最后干脆靠在那張吱呀作響的椅子背上,仰著頭,對(duì)著天花板上那盞忽明忽暗的日光燈,長(zhǎng)長(zhǎng)地呼出了一口氣。
然后他又刷了一遍數(shù)據(jù)。
下載量:1247。
上架不到兩天,一千多次下載,而且還在加速。
但他知道,這才剛剛開始。
三天后,下載量突破一萬(wàn)。
五天后,突破了五萬(wàn)。
評(píng)論區(qū)已經(jīng)炸鍋了,好評(píng)率高達(dá)百分之九十三。玩家們開始自發(fā)建立攻略貼吧,有人整理了每一關(guān)的三星通關(guān)技巧,有人做了全鳥類的數(shù)據(jù)解析表,甚至有人開始在視頻網(wǎng)站上直播速通——雖然這個(gè)世界的直播畫質(zhì)只有360p,彈幕還經(jīng)??ǔ蒔PT。
真正讓陳旭意識(shí)到事情大條的,是一家游戲媒體的報(bào)道。
那天下午,他正對(duì)著電腦寫下一款游戲的策劃案草稿,手機(jī)突然瘋狂震動(dòng)起來(lái),不是郵件提醒,而是新聞應(yīng)用的推送。
“黑馬誕生!個(gè)人開發(fā)者作品《Angry *irds》登頂應(yīng)用商店免費(fèi)榜榜首!”
陳旭點(diǎn)進(jìn)新聞,文章洋洋灑灑寫了上千字,把《憤怒的小鳥》稱為“重新定義****交互方式的現(xiàn)象級(jí)作品”,還專門分析了一通物理彈射玩法對(duì)觸屏操作的完美適配——比虛擬按鍵更直覺,比點(diǎn)觸更有操作感。文章最后寫道:“這款游戲的開發(fā)者署名只有一個(gè)ID——‘X.Chen’,記者試圖聯(lián)系該開發(fā)者,截至發(fā)稿尚未收到回復(fù)?!?br>X.Chen。陳旭當(dāng)時(shí)隨便打的名字,沒想到現(xiàn)在出現(xiàn)在新聞里了。
他把手機(jī)扔到床上,雙手捂住了臉,指縫里透出來(lái)的不是笑,而是一種說不清道不明的復(fù)雜情緒——興奮、緊張、還有一絲絲不真實(shí)感。就好像你精心準(zhǔn)備了一道菜,本來(lái)只打算給自己吃,結(jié)果路過的人嘗了一口之后,整條街都排起了長(zhǎng)隊(duì)。
又過了一周,《Angry *irds》的下載量突破了五十萬(wàn)。雖然跟原來(lái)世界里幾億的下載量沒法比,但在這個(gè)****市場(chǎng)尚且稚嫩的平行世界,這個(gè)數(shù)字已經(jīng)足夠讓所有**跌眼鏡。
應(yīng)用商店的編輯主動(dòng)給他發(fā)了一封郵件,語(yǔ)氣比審核通知熱情了十倍:“X.Chen先生**,您的作品表現(xiàn)優(yōu)異,我們希望能為您安排一期開發(fā)者專訪,方便的話請(qǐng)回復(fù)郵件……”
陳旭盯著那封郵件看了幾秒,然后關(guān)了。
不是不想接受采訪,而是他還沒想好要怎么面對(duì)這個(gè)世界的媒體——他總不能說“這些游戲的創(chuàng)意都來(lái)自另一個(gè)地球”。
更重要的是,他腦子里已經(jīng)在瘋狂轉(zhuǎn)著下一個(gè)項(xiàng)目了。
《憤怒的小鳥》的成功已經(jīng)驗(yàn)證了一件事:這個(gè)世界的玩家不是不渴望好游戲,而是他們根本不知道什么是好游戲。當(dāng)一款真正意義上的現(xiàn)代手游出現(xiàn)在他們面前時(shí),他們會(huì)像發(fā)現(xiàn)新**一樣瘋狂追捧。
而他手握著整整一座**的地圖。
他打開文檔,在標(biāo)題欄打出了幾個(gè)字。
《植物大戰(zhàn)僵尸》。
打完之后他又**。
不行,再等等。《憤怒的小鳥》的熱度還可以再發(fā)酵一陣,他需要先把賺到的錢落袋為安,升級(jí)設(shè)備,搞一個(gè)像樣的開發(fā)環(huán)境。廣告收入結(jié)算周期是月結(jié),第一個(gè)月的錢還沒到賬,但根據(jù)目前的DAU和廣告展示量估算,少說也有……
他心算了一下,然后整個(gè)人靠在椅背上,干咽了一口唾沫。
那個(gè)數(shù)字,比**媽干一輩子小生意攢下的錢還要多。
窗外又傳來(lái)了夜市炒粉的鍋鏟聲,摩托車的突突聲,還有樓下大媽吵架的尖嗓門。這些聲音跟三十二天前一模一樣,但陳旭覺得,整個(gè)世界好像都變得不一樣了。
他不知道自己正坐在一張吱呀作響的折疊椅上,穿著一件領(lǐng)口洗變形的T恤,面前的電腦風(fēng)扇嗡嗡響得像拖拉機(jī)。他不知道在這個(gè)世界的某個(gè)角落,已經(jīng)有游戲公司的產(chǎn)品經(jīng)理在連夜開會(huì),研究《Angry *irds》的玩法參數(shù)和設(shè)計(jì)思路,試圖抄出一款競(jìng)品。
他更不知道,在未來(lái)的某一天,會(huì)有一個(gè)人敲開這間出租屋的門,對(duì)他說出一句改變一切的話。
但現(xiàn)在,他只是伸了個(gè)懶腰,拿起那臺(tái)屏幕有裂痕的測(cè)試機(jī),又玩了三把自己的游戲,每一關(guān)都拿了三星,然后心滿意足地把它放回桌上。
他推開窗戶,六月的晚風(fēng)裹著**的油煙味灌進(jìn)來(lái),吹散了滿屋子的泡面氣息。
遠(yuǎn)處城市的霓虹燈在夜色里明明滅滅,像極了游戲里那些像素點(diǎn)組成的星光。
陳旭趴在窗臺(tái)上,忽然自言自語(yǔ)了一句:“接下來(lái)做哪一款呢……”
聲音很小,被樓下的喧囂淹沒了。
但沒人聽到的這句話,是這個(gè)平行世界游戲**開啟之后,最有分量的一個(gè)問句。