第13章 私服的機會
消息是王磊帶回來的。
那天是七月十五號,中午,天熱得像下了火。工作室的窗戶全開著,但沒風,只有熱浪一陣陣湧進來。三台電腦的風扇在嗡嗡響,屏幕上是代碼編輯器、終端窗口、網絡拓撲圖。阿坤在推演增量算法的數學公式,草稿紙鋪滿了半張桌子。林浩在寫客戶端架構,鍵盤敲得飛快。王磊在調試服務端,嘴裡叼著根沒點的煙——工作室禁菸,他只能聞聞煙味解饞。
然後王磊的手機響了。是很老式的諾基亞,鈴聲是單調的「嘀嘀嘀」。他看了一眼,是個深圳的號碼。
「餵?」
電話那頭的聲音很大,林浩隔著兩米都能聽見:「磊哥!出大事了!」
「慢慢說,啥事?」
「《龍騰傳奇》!跑路了!」
王磊的臉色變了。他站起來,走到窗邊,壓低聲音:「什麼時候的事?」
「就今天早上!伺服器全關了,官網打不開,客服QQ全黑!圈子裡都炸了!聽說卷了小一千萬!」
「玩家呢?」
「全傻了!幾百萬玩家,充的錢全打水漂了!現在都在找下家,但沒一個私服能接住這麼多人的!」
王磊又問了幾個問題,掛了電話。他站在窗前,背對著房間,站了很久。然後轉過身,臉色凝重。
「出事了。」他說。
林浩和阿坤都停下來看著他。
「深圳那邊,《龍騰傳奇》私服,跑路了。」王磊走回座位,坐下,聲音很沉,「那是個大私服,開了半年,號稱『最穩定、最良心』,玩家有兩三百萬。今天早上,伺服器全關,官網下線,老闆失聯。捲走的錢,少說七八百萬。」
阿坤皺眉:「私服……不是違法的嗎?」
「是違法,但架不住人多。」王磊說,「《傳奇》官服卡,收費貴,私服免費,爆率高,玩的人多。這兩年私服遍地開花,但像《龍騰》這麼大的,不多。它一倒,幾百萬玩家沒地方去,全成了無主流量。」
林浩沒有說話。他靠在椅背上,手指在桌面上輕輕敲著。腦子裡在快速計算。
2002年,《傳奇》是中國網遊的代名詞。官方伺服器經常卡頓,外掛泛濫,點卡收費不便宜。私服於是興起——架設私人伺服器,修改爆率、經驗值,吸引玩家。很多私服是短期圈錢,開幾個月就跑路。但《龍騰》做了半年,積累了口碑,突然跑路,確實會留下巨大的市場空白。
幾百萬玩家,在2002年,是天文數字。盛大官方的《傳奇》同時在線也就五十萬。這幾百萬流失的玩家,會像飢餓的魚群,尋找下一個池塘。
「你怎麼看?」林浩問王磊。
「機會。」王磊說得很直接,「如果我們現在做一個私服,用《龍騰》的版本,稍作優化,打上『接盤』的旗號,一個月內就能接住幾十萬玩家。點卡、裝備、會員費……一個月流水幾百萬不是夢。」
「但那是私服。」阿坤說,「違法的。」
「是違法的,但大家都在做。」王磊說,「你不做,別人做。這幾百萬玩家,總要有地方去。與其讓那些垃圾私服圈錢跑路,不如我們來做,至少我們用心做,不坑人。」
「那還是違法。」阿坤堅持。
王磊看向林浩,等他的決定。
林浩沒有立即回答。他站起身,走到窗前。外面,烈日下的縣城一片寂靜,只有知了在拼命地叫。街道上幾乎沒人,這麼熱的天,都在家裡躲著。
私服。違法,但暴利。如果他只是一個想賺快錢的商人,這確實是最佳時機。但他不是。他要做的是浩宇科技,是要改變中國網際網路格局的公司。私服是污點,一旦沾上,洗不掉。
但機會就在眼前。幾百萬玩家,巨大的流量,如果不用私服,能用什麼方式接住?
「小藝。」他在心裡默念。
沒有回應。手機已經沒電一個星期了。那0.0%的電量,像一道鎖,鎖住了未來的知識。他現在只能靠自己。
他走回座位,看著王磊和阿坤。
「我們不能做私服。」他說。
王磊的眉頭皺起來:「為什麼?這是最好的機會!」
「因為我們要做的是正規軍,不是土匪。」林浩說,「私服違法,風險大,做不大,也做不長。今天你圈了錢,明天可能就被抓。就算不被抓,這個污點會跟著浩宇一輩子。以後我們想做正規模遊戲,做平台,做生態,別人會說:哦,那家啊,以前做私服起家的。」
「那我們看著錢不賺?」王磊的聲音提高了,「你知道現在工作室帳上有多少錢嗎?三百二十七塊!寬帶費下個月要交,電費要交,吃飯要錢!沒有錢,我們連下個月都撐不過去!」
「錢要賺,但不能這麼賺。」林浩說,「我們要賺長期的錢,賺乾淨的錢。」
「那你說怎麼賺?」王磊盯著他,「幾百萬玩家在那裡,你不做私服,怎麼接住?」
林浩沉默了幾秒。然後他說:「我們不做私服,我們做遊戲。」
「做遊戲?」阿坤抬起頭。
「對,做我們自己的遊戲。」林浩說,「2D即時戰鬥網遊,但不用《傳奇》的代碼,不用任何侵權的素材。我們自己做引擎,自己做玩法,自己做運營。」
王磊笑了,是那種氣笑的:「老大,你知道做一個《傳奇》級別的網遊要多少人、多少錢、多長時間嗎?盛大幾百號人,做了兩年!我們就三個人,三個月都做不出來!等我們做出來,玩家早跑光了!」
「不用做《傳奇》那麼複雜。」林浩說,「我們做一個簡化版,但體驗更好的遊戲。核心是戰鬥和成長,去掉繁瑣的任務、複雜的地圖,聚焦在『爽』上。」
「那也來不及啊!」
「來得及。」林浩說,語氣很肯定,「因為我們有《龍騰》跑路爭取到的時間。玩家現在對私服失去信任,他們會觀望,會猶豫。這個窗口期,至少有一個月。我們用一個月的衝刺,做出一個可玩的demo,然後開放測試,用口碑吸引玩家。」
「一個月……」王磊搖頭,「不可能。光是客戶端開發,沒有半年下不來。」
「如果不用從頭造輪子呢?」林浩說,「如果我們有一個現成的、高度優化的2D遊戲引擎呢?」
王磊和阿坤都愣住了。
「你有引擎?」阿坤問。
「沒有,但我們可以有。」林浩走到白板前——那是他前幾天買的,掛在牆上。他拿起馬克筆,開始畫。
「2002年的2D遊戲引擎,不管是官方的還是私服的,都基於一個很原始的架構:客戶端負責顯示,服務端負責邏輯,通信用簡單的TCP封包。這個架構有幾個致命問題:延遲高、同步難、外掛多、擴展性差。」
他在白板上畫了兩個方框,一個標「客戶端」,一個標「服務端」,中間用線連著。
「《傳奇》的架構更原始,很多邏輯在客戶端,所以外掛橫行。私服在它的基礎上修修補補,但核心架構沒變。」
「那我們要怎麼做?」阿坤問。
「我們要做一個全新的架構。」林浩說,筆尖在白板上快速移動,「基於狀態同步,而不是指令同步。服務端維護完整的遊戲狀態,客戶端只是視圖。通信用UDP,加可靠傳輸層。邏輯幀和渲染幀分離,客戶端預測,服務端校正。」
他畫出一個複雜的架構圖,有多個模塊,多條連線。王磊和阿坤看著,眼睛漸漸睜大。
「這……這是哪來的思路?」王磊問,「我從來沒見人這麼設計過。」
「因為這是未來的思路。」林浩說,「2002年沒人這麼想,但2010年之後,這會是標準。我們要做的,就是提前八年,把它做出來。」
阿坤走到白板前,仔細看那些模塊:「這個『客戶端預測』……具體怎麼實現?」
「服務端每隔一個邏輯幀(比如100毫秒)把完整狀態同步給客戶端。客戶端在兩個同步點之間,根據用戶輸入預測下一個狀態,並立即渲染。如果預測錯了,等下一個同步到來時糾正。玩家幾乎感受不到延遲。」
「但這樣服務端壓力會很大。」王磊說,「要維護完整狀態,還要頻繁同步。」
「所以需要優化。」林浩說,「狀態壓縮、差異同步、空間分區。阿坤,這是你的強項。」
阿坤盯著白板,手指在空中虛點,嘴裡喃喃自語,在心算什麼。過了一會兒,他說:「理論上可行。但實現複雜度很高。」
「高才有門檻。」林浩說,「如果簡單,別人早做了。我們做了,別人就追不上。」
王磊沉默了很久。他看著白板上的架構圖,眼神複雜。有懷疑,有震驚,也有一絲興奮。
「就算架構先進,美術呢?資源呢?策劃呢?」他問,「遊戲不是只有代碼。我們需要原畫、模型、動作、音效、劇情……這些我們都沒有。」
「美術可以外包,找大學生,便宜。資源可以自己畫,簡單的像素風格,2002年夠用。策劃我來做,玩法設計我有思路。」林浩說,「最重要的是核心戰鬥體驗。我們要做的,不是另一個《傳奇》,而是一個『更好的《傳奇》』。」
「更好在哪?」
「第一,戰鬥更爽。」林浩說,「取消《傳奇》那種你一刀我一刀的站樁對砍。加入走位、技能銜接、打斷、連擊。雖然是2D,但要有動作遊戲的感覺。」
「第二,成長更清晰。去掉那些亂七八糟的屬性,聚焦在攻擊、防禦、生命、速度幾個核心屬性。裝備系統簡化,但每件裝備都有明確的特效和成長路徑。」
「第三,社交更便捷。內置語音聊天(雖然2002年網速不支持實時語音,但可以預設語音包),一鍵組隊,公會系統深度整合。」
「第四,反外掛。從架構上就杜絕大部分外掛可能。客戶端沒有關鍵邏輯,外掛無從下手。」
王磊聽著,眼神里的懷疑漸漸褪去,取而代之的是一種躍躍欲試。
「聽起來……很誘人。」他說,「但時間還是太緊。一個月,從零開始,做一個可玩的demo。這得玩命。」
「那就玩命。」林浩說,「這是浩宇的第一個大考。考過了,我們就有資本,有口碑,有未來。考不過……」
他沒說下去,但意思很明顯。考不過,浩宇可能就到此為止了。
房間陷入沉默。只有風扇的聲音,和窗外知了的叫聲。熱浪從窗戶湧進來,但三人都沒動。
阿坤先開口:「我加入。架構里的數學問題,我想解。」
王磊看著他,又看看林浩,最後嘆了口氣,笑了:「媽的,老子在深圳混了三年,也沒見過這麼瘋的事。行,算我一個。不過說好了,要是做成了,得分我大頭。」
「按貢獻分,公平。」林浩說。
「那還等什麼?」王磊站起身,活動了一下手腕,「開干吧。先從哪開始?」
林浩看著白板上的架構圖,深吸一口氣。
「第一步,引擎。」他說,「我們需要一個全新的2D遊戲引擎,代號『浩宇1.0』。阿坤負責數學庫和物理引擎,王磊負責網絡模塊和底層框架,我負責整體架構和工具鏈。目標:兩周內,完成引擎核心。再兩周,完成第一個遊戲demo。」
「兩周……」阿坤輕聲重複。
「能做到嗎?」林浩看著他。
阿坤抬起頭,眼睛裡有一種林浩熟悉的光芒——那是解題者的興奮,是面對挑戰的渴望。
「能。」他說。
「好。」林浩拍板,「那從現在開始,浩宇項目001暫停,全部資源轉向項目002:浩宇1.0遊戲引擎。我們要在《龍騰》跑路留下的窗口期關閉之前,拿出我們的作品。」
三人各自坐回電腦前。但氣氛已經完全不同了。剛才的沉悶、焦慮,變成了緊繃的、蓄勢待發的狀態。
林浩新建了一個文檔。標題:「浩宇1.0引擎設計文檔」。
他開始寫。鍵盤聲比剛才更快,更重。
阿坤在草稿紙上推導狀態同步的數學公式,筆尖沙沙響。
王磊在配置開發環境,安裝編譯器、調試器、版本控制。
窗外的太陽慢慢西斜,但熱度不減。汗水從三人的額頭流下,滴在鍵盤上,滴在紙上。
沒有人說話,只有鍵盤聲、寫字聲、風扇聲。
晚上七點,母親又打電話來。
「浩子,還不回家?」
「媽,這幾天我住公司,項目緊。你跟爸說一聲。」
「住公司?那怎麼行!睡哪?吃啥?」
「有床,有泡麵。別擔心。」
母親還想說什麼,但林浩說:「媽,相信我。我們在做大事。」
電話那頭沉默了一會兒,然後母親說:「那……你注意身體。別熬太晚。」
「知道了。」
掛了電話,林浩繼續寫。他寫引擎的模塊劃分,寫通信協議的定義,寫資源管理的設計。
晚上十點,王磊出去買了三份炒粉,十塊錢。三人狼吞虎咽吃完,繼續。
凌晨一點,阿坤推導出了狀態同步的數學模型,興奮地拿給林浩看。林浩看了,點頭:「對,就是這個。但還要加一個容錯機制,防止網絡抖動導致的預測錯誤。」
「好,我再想想。」
凌晨三點,王磊搭好了服務端框架,能跑起來了。雖然只是個空殼,但能連接,能通信。
凌晨五點,天快亮了。林浩完成了設計文檔的第一版,列印出來,三份。
「今天到此為止。」他說,聲音沙啞,「睡四個小時,九點繼續。」
三人倒在行軍床、地鋪、椅子上,幾乎瞬間睡著。
窗外的天亮了。晨光照進房間,照在三張年輕的、疲憊的臉上。
他們睡了四個小時。九點整,鬧鐘響。三人爬起來,用冷水洗臉,泡麵當早飯,然後繼續。
第二天,第三天,第四天……
工作室的燈再也沒有在凌晨兩點前關過。泡麵盒子堆成了小山。草稿紙鋪滿了地板。白板上寫滿了公式、架構、TODO列表。
林浩瘦了五斤。阿坤的黑眼圈重得像熊貓。王磊的鬍子長得像野人。
但他們眼裡的光,越來越亮。
第七天,引擎的核心數學庫完成了。阿坤寫了三千行代碼,實現了向量、矩陣、四元數、插值、碰撞檢測。
第十天,網絡模塊完成了。王磊實現了基於UDP的可靠傳輸,加入了流量控制、擁塞避免、前向糾錯。
第十二天,林浩完成了資源管理器和渲染器。雖然簡單,但能加載圖片、播放動畫、渲染精靈。
第十四天,晚上十點。
三人站在一台電腦前。屏幕上,一個簡陋的窗口,背景是純黑色。中間,一個像素小人,紅色的。可以用方向鍵控制移動。另一個像素小人,藍色的,是NPC,會自動追擊紅色小人。
紅色小人移動,藍色小人追擊。碰撞時,紅色小人血量減少。很簡陋,很原始。
但這是完全基於浩宇1.0引擎實現的。從數學庫到物理引擎,從網絡模塊到渲染器,每一行代碼都是他們自己寫的。
「運行穩定,幀率60,網絡延遲平均80毫秒。」王磊說。
「碰撞檢測準確,預測糾正平滑。」阿坤說。
林浩看著屏幕,看了很久。然後他伸出手,按下了退出鍵。
「第一階段,完成。」他說,聲音很平靜,但手在微微顫抖。
王磊和阿坤看著他,等著。
「休息一天。」林浩說,「明天開始,第二階段:遊戲demo。我們要在兩周內,做出一個可玩的、有趣的、能留住玩家的遊戲。」
「什麼遊戲?」阿坤問。
「暫定名:《浩宇傳奇》。」林浩說,「但記住,我們不是做私服。我們做的是全新的遊戲,只是借了《傳奇》的皮,因為玩家熟悉。內核,是我們的。」
「玩法呢?」
「簡化版MMORPG。一個主城,三個野外地圖,五個副本。職業簡化成戰士、法師、射手。等級上限30級。核心玩法:打怪、升級、打寶、PK。但戰鬥要爽,成長要快,社交要方便。」
「兩周……能做到嗎?」
「必須做到。」林浩說,「《龍騰》跑路已經兩周了,玩家已經開始尋找新家。我們再不做出來,窗口期就過了。」
三人對視。疲憊,但堅定。
「干。」王磊說。
「嗯。」阿坤點頭。
林浩笑了。這是他這些天第一次笑。
「那就干。」
窗外的夜很深了。星星很亮。
工作室的燈,又亮了一夜。
浩宇1.0引擎,剛剛誕生。
而浩宇科技的第一個遊戲,正在孕育。
時間緊迫,機會稍縱即逝。
但他們相信,他們能做到。
因為他們別無選擇,因為他們必須做到。
那天是七月十五號,中午,天熱得像下了火。工作室的窗戶全開著,但沒風,只有熱浪一陣陣湧進來。三台電腦的風扇在嗡嗡響,屏幕上是代碼編輯器、終端窗口、網絡拓撲圖。阿坤在推演增量算法的數學公式,草稿紙鋪滿了半張桌子。林浩在寫客戶端架構,鍵盤敲得飛快。王磊在調試服務端,嘴裡叼著根沒點的煙——工作室禁菸,他只能聞聞煙味解饞。
然後王磊的手機響了。是很老式的諾基亞,鈴聲是單調的「嘀嘀嘀」。他看了一眼,是個深圳的號碼。
「餵?」
電話那頭的聲音很大,林浩隔著兩米都能聽見:「磊哥!出大事了!」
「慢慢說,啥事?」
「《龍騰傳奇》!跑路了!」
王磊的臉色變了。他站起來,走到窗邊,壓低聲音:「什麼時候的事?」
「就今天早上!伺服器全關了,官網打不開,客服QQ全黑!圈子裡都炸了!聽說卷了小一千萬!」
「玩家呢?」
「全傻了!幾百萬玩家,充的錢全打水漂了!現在都在找下家,但沒一個私服能接住這麼多人的!」
王磊又問了幾個問題,掛了電話。他站在窗前,背對著房間,站了很久。然後轉過身,臉色凝重。
「出事了。」他說。
林浩和阿坤都停下來看著他。
「深圳那邊,《龍騰傳奇》私服,跑路了。」王磊走回座位,坐下,聲音很沉,「那是個大私服,開了半年,號稱『最穩定、最良心』,玩家有兩三百萬。今天早上,伺服器全關,官網下線,老闆失聯。捲走的錢,少說七八百萬。」
阿坤皺眉:「私服……不是違法的嗎?」
「是違法,但架不住人多。」王磊說,「《傳奇》官服卡,收費貴,私服免費,爆率高,玩的人多。這兩年私服遍地開花,但像《龍騰》這麼大的,不多。它一倒,幾百萬玩家沒地方去,全成了無主流量。」
林浩沒有說話。他靠在椅背上,手指在桌面上輕輕敲著。腦子裡在快速計算。
2002年,《傳奇》是中國網遊的代名詞。官方伺服器經常卡頓,外掛泛濫,點卡收費不便宜。私服於是興起——架設私人伺服器,修改爆率、經驗值,吸引玩家。很多私服是短期圈錢,開幾個月就跑路。但《龍騰》做了半年,積累了口碑,突然跑路,確實會留下巨大的市場空白。
幾百萬玩家,在2002年,是天文數字。盛大官方的《傳奇》同時在線也就五十萬。這幾百萬流失的玩家,會像飢餓的魚群,尋找下一個池塘。
「你怎麼看?」林浩問王磊。
「機會。」王磊說得很直接,「如果我們現在做一個私服,用《龍騰》的版本,稍作優化,打上『接盤』的旗號,一個月內就能接住幾十萬玩家。點卡、裝備、會員費……一個月流水幾百萬不是夢。」
「但那是私服。」阿坤說,「違法的。」
「是違法的,但大家都在做。」王磊說,「你不做,別人做。這幾百萬玩家,總要有地方去。與其讓那些垃圾私服圈錢跑路,不如我們來做,至少我們用心做,不坑人。」
「那還是違法。」阿坤堅持。
王磊看向林浩,等他的決定。
林浩沒有立即回答。他站起身,走到窗前。外面,烈日下的縣城一片寂靜,只有知了在拼命地叫。街道上幾乎沒人,這麼熱的天,都在家裡躲著。
私服。違法,但暴利。如果他只是一個想賺快錢的商人,這確實是最佳時機。但他不是。他要做的是浩宇科技,是要改變中國網際網路格局的公司。私服是污點,一旦沾上,洗不掉。
但機會就在眼前。幾百萬玩家,巨大的流量,如果不用私服,能用什麼方式接住?
「小藝。」他在心裡默念。
沒有回應。手機已經沒電一個星期了。那0.0%的電量,像一道鎖,鎖住了未來的知識。他現在只能靠自己。
他走回座位,看著王磊和阿坤。
「我們不能做私服。」他說。
王磊的眉頭皺起來:「為什麼?這是最好的機會!」
「因為我們要做的是正規軍,不是土匪。」林浩說,「私服違法,風險大,做不大,也做不長。今天你圈了錢,明天可能就被抓。就算不被抓,這個污點會跟著浩宇一輩子。以後我們想做正規模遊戲,做平台,做生態,別人會說:哦,那家啊,以前做私服起家的。」
「那我們看著錢不賺?」王磊的聲音提高了,「你知道現在工作室帳上有多少錢嗎?三百二十七塊!寬帶費下個月要交,電費要交,吃飯要錢!沒有錢,我們連下個月都撐不過去!」
「錢要賺,但不能這麼賺。」林浩說,「我們要賺長期的錢,賺乾淨的錢。」
「那你說怎麼賺?」王磊盯著他,「幾百萬玩家在那裡,你不做私服,怎麼接住?」
林浩沉默了幾秒。然後他說:「我們不做私服,我們做遊戲。」
「做遊戲?」阿坤抬起頭。
「對,做我們自己的遊戲。」林浩說,「2D即時戰鬥網遊,但不用《傳奇》的代碼,不用任何侵權的素材。我們自己做引擎,自己做玩法,自己做運營。」
王磊笑了,是那種氣笑的:「老大,你知道做一個《傳奇》級別的網遊要多少人、多少錢、多長時間嗎?盛大幾百號人,做了兩年!我們就三個人,三個月都做不出來!等我們做出來,玩家早跑光了!」
「不用做《傳奇》那麼複雜。」林浩說,「我們做一個簡化版,但體驗更好的遊戲。核心是戰鬥和成長,去掉繁瑣的任務、複雜的地圖,聚焦在『爽』上。」
「那也來不及啊!」
「來得及。」林浩說,語氣很肯定,「因為我們有《龍騰》跑路爭取到的時間。玩家現在對私服失去信任,他們會觀望,會猶豫。這個窗口期,至少有一個月。我們用一個月的衝刺,做出一個可玩的demo,然後開放測試,用口碑吸引玩家。」
「一個月……」王磊搖頭,「不可能。光是客戶端開發,沒有半年下不來。」
「如果不用從頭造輪子呢?」林浩說,「如果我們有一個現成的、高度優化的2D遊戲引擎呢?」
王磊和阿坤都愣住了。
「你有引擎?」阿坤問。
「沒有,但我們可以有。」林浩走到白板前——那是他前幾天買的,掛在牆上。他拿起馬克筆,開始畫。
「2002年的2D遊戲引擎,不管是官方的還是私服的,都基於一個很原始的架構:客戶端負責顯示,服務端負責邏輯,通信用簡單的TCP封包。這個架構有幾個致命問題:延遲高、同步難、外掛多、擴展性差。」
他在白板上畫了兩個方框,一個標「客戶端」,一個標「服務端」,中間用線連著。
「《傳奇》的架構更原始,很多邏輯在客戶端,所以外掛橫行。私服在它的基礎上修修補補,但核心架構沒變。」
「那我們要怎麼做?」阿坤問。
「我們要做一個全新的架構。」林浩說,筆尖在白板上快速移動,「基於狀態同步,而不是指令同步。服務端維護完整的遊戲狀態,客戶端只是視圖。通信用UDP,加可靠傳輸層。邏輯幀和渲染幀分離,客戶端預測,服務端校正。」
他畫出一個複雜的架構圖,有多個模塊,多條連線。王磊和阿坤看著,眼睛漸漸睜大。
「這……這是哪來的思路?」王磊問,「我從來沒見人這麼設計過。」
「因為這是未來的思路。」林浩說,「2002年沒人這麼想,但2010年之後,這會是標準。我們要做的,就是提前八年,把它做出來。」
阿坤走到白板前,仔細看那些模塊:「這個『客戶端預測』……具體怎麼實現?」
「服務端每隔一個邏輯幀(比如100毫秒)把完整狀態同步給客戶端。客戶端在兩個同步點之間,根據用戶輸入預測下一個狀態,並立即渲染。如果預測錯了,等下一個同步到來時糾正。玩家幾乎感受不到延遲。」
「但這樣服務端壓力會很大。」王磊說,「要維護完整狀態,還要頻繁同步。」
「所以需要優化。」林浩說,「狀態壓縮、差異同步、空間分區。阿坤,這是你的強項。」
阿坤盯著白板,手指在空中虛點,嘴裡喃喃自語,在心算什麼。過了一會兒,他說:「理論上可行。但實現複雜度很高。」
「高才有門檻。」林浩說,「如果簡單,別人早做了。我們做了,別人就追不上。」
王磊沉默了很久。他看著白板上的架構圖,眼神複雜。有懷疑,有震驚,也有一絲興奮。
「就算架構先進,美術呢?資源呢?策劃呢?」他問,「遊戲不是只有代碼。我們需要原畫、模型、動作、音效、劇情……這些我們都沒有。」
「美術可以外包,找大學生,便宜。資源可以自己畫,簡單的像素風格,2002年夠用。策劃我來做,玩法設計我有思路。」林浩說,「最重要的是核心戰鬥體驗。我們要做的,不是另一個《傳奇》,而是一個『更好的《傳奇》』。」
「更好在哪?」
「第一,戰鬥更爽。」林浩說,「取消《傳奇》那種你一刀我一刀的站樁對砍。加入走位、技能銜接、打斷、連擊。雖然是2D,但要有動作遊戲的感覺。」
「第二,成長更清晰。去掉那些亂七八糟的屬性,聚焦在攻擊、防禦、生命、速度幾個核心屬性。裝備系統簡化,但每件裝備都有明確的特效和成長路徑。」
「第三,社交更便捷。內置語音聊天(雖然2002年網速不支持實時語音,但可以預設語音包),一鍵組隊,公會系統深度整合。」
「第四,反外掛。從架構上就杜絕大部分外掛可能。客戶端沒有關鍵邏輯,外掛無從下手。」
王磊聽著,眼神里的懷疑漸漸褪去,取而代之的是一種躍躍欲試。
「聽起來……很誘人。」他說,「但時間還是太緊。一個月,從零開始,做一個可玩的demo。這得玩命。」
「那就玩命。」林浩說,「這是浩宇的第一個大考。考過了,我們就有資本,有口碑,有未來。考不過……」
他沒說下去,但意思很明顯。考不過,浩宇可能就到此為止了。
房間陷入沉默。只有風扇的聲音,和窗外知了的叫聲。熱浪從窗戶湧進來,但三人都沒動。
阿坤先開口:「我加入。架構里的數學問題,我想解。」
王磊看著他,又看看林浩,最後嘆了口氣,笑了:「媽的,老子在深圳混了三年,也沒見過這麼瘋的事。行,算我一個。不過說好了,要是做成了,得分我大頭。」
「按貢獻分,公平。」林浩說。
「那還等什麼?」王磊站起身,活動了一下手腕,「開干吧。先從哪開始?」
林浩看著白板上的架構圖,深吸一口氣。
「第一步,引擎。」他說,「我們需要一個全新的2D遊戲引擎,代號『浩宇1.0』。阿坤負責數學庫和物理引擎,王磊負責網絡模塊和底層框架,我負責整體架構和工具鏈。目標:兩周內,完成引擎核心。再兩周,完成第一個遊戲demo。」
「兩周……」阿坤輕聲重複。
「能做到嗎?」林浩看著他。
阿坤抬起頭,眼睛裡有一種林浩熟悉的光芒——那是解題者的興奮,是面對挑戰的渴望。
「能。」他說。
「好。」林浩拍板,「那從現在開始,浩宇項目001暫停,全部資源轉向項目002:浩宇1.0遊戲引擎。我們要在《龍騰》跑路留下的窗口期關閉之前,拿出我們的作品。」
三人各自坐回電腦前。但氣氛已經完全不同了。剛才的沉悶、焦慮,變成了緊繃的、蓄勢待發的狀態。
林浩新建了一個文檔。標題:「浩宇1.0引擎設計文檔」。
他開始寫。鍵盤聲比剛才更快,更重。
阿坤在草稿紙上推導狀態同步的數學公式,筆尖沙沙響。
王磊在配置開發環境,安裝編譯器、調試器、版本控制。
窗外的太陽慢慢西斜,但熱度不減。汗水從三人的額頭流下,滴在鍵盤上,滴在紙上。
沒有人說話,只有鍵盤聲、寫字聲、風扇聲。
晚上七點,母親又打電話來。
「浩子,還不回家?」
「媽,這幾天我住公司,項目緊。你跟爸說一聲。」
「住公司?那怎麼行!睡哪?吃啥?」
「有床,有泡麵。別擔心。」
母親還想說什麼,但林浩說:「媽,相信我。我們在做大事。」
電話那頭沉默了一會兒,然後母親說:「那……你注意身體。別熬太晚。」
「知道了。」
掛了電話,林浩繼續寫。他寫引擎的模塊劃分,寫通信協議的定義,寫資源管理的設計。
晚上十點,王磊出去買了三份炒粉,十塊錢。三人狼吞虎咽吃完,繼續。
凌晨一點,阿坤推導出了狀態同步的數學模型,興奮地拿給林浩看。林浩看了,點頭:「對,就是這個。但還要加一個容錯機制,防止網絡抖動導致的預測錯誤。」
「好,我再想想。」
凌晨三點,王磊搭好了服務端框架,能跑起來了。雖然只是個空殼,但能連接,能通信。
凌晨五點,天快亮了。林浩完成了設計文檔的第一版,列印出來,三份。
「今天到此為止。」他說,聲音沙啞,「睡四個小時,九點繼續。」
三人倒在行軍床、地鋪、椅子上,幾乎瞬間睡著。
窗外的天亮了。晨光照進房間,照在三張年輕的、疲憊的臉上。
他們睡了四個小時。九點整,鬧鐘響。三人爬起來,用冷水洗臉,泡麵當早飯,然後繼續。
第二天,第三天,第四天……
工作室的燈再也沒有在凌晨兩點前關過。泡麵盒子堆成了小山。草稿紙鋪滿了地板。白板上寫滿了公式、架構、TODO列表。
林浩瘦了五斤。阿坤的黑眼圈重得像熊貓。王磊的鬍子長得像野人。
但他們眼裡的光,越來越亮。
第七天,引擎的核心數學庫完成了。阿坤寫了三千行代碼,實現了向量、矩陣、四元數、插值、碰撞檢測。
第十天,網絡模塊完成了。王磊實現了基於UDP的可靠傳輸,加入了流量控制、擁塞避免、前向糾錯。
第十二天,林浩完成了資源管理器和渲染器。雖然簡單,但能加載圖片、播放動畫、渲染精靈。
第十四天,晚上十點。
三人站在一台電腦前。屏幕上,一個簡陋的窗口,背景是純黑色。中間,一個像素小人,紅色的。可以用方向鍵控制移動。另一個像素小人,藍色的,是NPC,會自動追擊紅色小人。
紅色小人移動,藍色小人追擊。碰撞時,紅色小人血量減少。很簡陋,很原始。
但這是完全基於浩宇1.0引擎實現的。從數學庫到物理引擎,從網絡模塊到渲染器,每一行代碼都是他們自己寫的。
「運行穩定,幀率60,網絡延遲平均80毫秒。」王磊說。
「碰撞檢測準確,預測糾正平滑。」阿坤說。
林浩看著屏幕,看了很久。然後他伸出手,按下了退出鍵。
「第一階段,完成。」他說,聲音很平靜,但手在微微顫抖。
王磊和阿坤看著他,等著。
「休息一天。」林浩說,「明天開始,第二階段:遊戲demo。我們要在兩周內,做出一個可玩的、有趣的、能留住玩家的遊戲。」
「什麼遊戲?」阿坤問。
「暫定名:《浩宇傳奇》。」林浩說,「但記住,我們不是做私服。我們做的是全新的遊戲,只是借了《傳奇》的皮,因為玩家熟悉。內核,是我們的。」
「玩法呢?」
「簡化版MMORPG。一個主城,三個野外地圖,五個副本。職業簡化成戰士、法師、射手。等級上限30級。核心玩法:打怪、升級、打寶、PK。但戰鬥要爽,成長要快,社交要方便。」
「兩周……能做到嗎?」
「必須做到。」林浩說,「《龍騰》跑路已經兩周了,玩家已經開始尋找新家。我們再不做出來,窗口期就過了。」
三人對視。疲憊,但堅定。
「干。」王磊說。
「嗯。」阿坤點頭。
林浩笑了。這是他這些天第一次笑。
「那就干。」
窗外的夜很深了。星星很亮。
工作室的燈,又亮了一夜。
浩宇1.0引擎,剛剛誕生。
而浩宇科技的第一個遊戲,正在孕育。
時間緊迫,機會稍縱即逝。
但他們相信,他們能做到。
因為他們別無選擇,因為他們必須做到。