“代碼判官”高天原。
這個(gè)名字像一塊巨石,沉甸甸地壓在我們剛剛?cè)计鸬捏艋鹕希鹈缢查g矮了半截。工作室里剛剛還熱火朝天的氣氛,剎那間變得冰冷而凝滯。
馬東的臉色最是難看,他摘下眼鏡,用力地揉著眉心,嘴里反復(fù)念叨著:“完了,這下是真完了。高天原……他最恨的就是我們這種‘取巧’的創(chuàng)意。他信奉的是代碼的絕對(duì)嚴(yán)謹(jǐn)和性能的極致優(yōu)化。我們的‘盤古’引擎,在他眼里,可能就是一堆華而不實(shí)的‘情感邏輯’,是異端?!?/p>
蘇小小的臉上也失去了血色,她緊緊抓著自己的畫筆,小聲說:“而且……他和李文博還有師徒情分。這……這不是既當(dāng)運(yùn)動(dòng)員,又當(dāng)裁判員嗎?比賽還有什么公平性可言?”
絕望的情緒,像病毒一樣在小小的空間里蔓延。
我沒有說話,只是看著趙干。他是這個(gè)團(tuán)隊(duì)的主心骨,如果他也倒了,那我們就真的不用玩了。
趙干的目光在我和高天原的照片之間來回移動(dòng),他的眉頭緊鎖,似乎在進(jìn)行一場天人交戰(zhàn)。工作室里只剩下我們四個(gè)人沉重的呼吸聲。
過了足足一分鐘,他忽然笑了。
不是苦笑,也不是自嘲,而是一種帶著狠勁的、酣暢淋漓的笑。
“怕什么!”他猛地一拍桌子,把我們?nèi)硕紘樍艘惶案咛煸窃u(píng)委,不是皇帝!‘星火杯’也不是他家開的!他越是傳奇,越是要臉面。如果我們的作品真的能碾壓李文博的那個(gè)贗品,他難道還能當(dāng)著全國觀眾和所有同行的面,睜著眼睛說瞎話嗎?”
他環(huán)視我們,眼神重新變得灼熱:“他有師徒之誼,我們有什么?我們有真正的技術(shù),有被偷走的夢想,我們有的是一腔無處發(fā)泄的怒火!他李文博是來鍍金的,我們是來拼命的!拼命的,難道還怕一個(gè)鍍金的?”
這番話,像一記重錘,敲碎了我們心中的冰層。
是啊,我們已經(jīng)一無所有了,光腳的,還怕穿鞋的?
“學(xué)長說得對(duì)!”我站了出來,聲音不大,但異常堅(jiān)定,“技術(shù)是不會(huì)騙人的?!P古2.0’和那個(gè)1.0版本,在底層架構(gòu)上有著云泥之別。只要有機(jī)會(huì)讓高天原看到我們的代碼,看到我們的演示,他要是還能昧著良心給李文博站臺(tái),那他就不是‘代碼判官’,他就是個(gè)笑話。我們要做的,就是把這個(gè)機(jī)會(huì),死死地抓在手里!”
我的話給了馬東信心,他重新戴上眼鏡,眼神恢復(fù)了程序員特有的專注:“好!那就干!我倒要看看,是他的‘師徒情分’硬,還是我們的代碼硬!”
蘇小小也用力地點(diǎn)點(diǎn)頭,馬尾辮一甩,重新拿起了數(shù)位板:“畫!我今天就算熬通宵,也要把《執(zhí)筆者》的世界觀概念圖給畫出來!我要讓評(píng)委第一眼,就愛上我們的世界!”
壓在我們頭頂?shù)木奘?,被我們合力推開了。它沒有壓垮我們,反而激發(fā)了我們所有人的斗志。
接下來的七十二小時(shí),是一場我們賭上一切的極限沖刺。
整個(gè)螢火工作室,變成了一臺(tái)高速運(yùn)轉(zhuǎn)的精密機(jī)器。趙干負(fù)責(zé)統(tǒng)籌全局,他不僅要撰寫那份決定我們生死的策劃案,還要負(fù)責(zé)后勤,餓了給我們點(diǎn)外賣,困了給我們煮咖啡,他就像是這臺(tái)機(jī)器永不枯竭的動(dòng)力源。
蘇小小徹底沉浸在了她的藝術(shù)世界里。她為《執(zhí)筆者》選擇了一種極具風(fēng)格化的水墨+宣紙質(zhì)感的畫風(fēng)。她筆下的世界,不是傳統(tǒng)游戲那種油膩的寫實(shí),而是一種充滿東方禪意的留白與寫意。山巒是潑墨而成,人物的衣袂像書法般飄逸。她幾乎沒合過眼,兩天兩夜,硬是憑著一股仙氣,創(chuàng)造出了一個(gè)令人過目難忘的,宛如“活”的繪卷一般的世界。
馬東則是我們攻堅(jiān)克難的先鋒。他一頭扎進(jìn)了我給他的“盤古”引擎接口文檔里。那份文檔足有上百頁,充滿了復(fù)雜的算法和邏輯。對(duì)他來說,“盤古”就像一頭來自異世界的、充滿了力量的神秘巨獸。他需要做的,是在三天之內(nèi),為這頭巨獸打造出一副能與《執(zhí)筆者》這個(gè)游戲軀殼完美契合的鞍韉。
第一天,他幾乎沒能讓引擎跑起來,各種報(bào)錯(cuò)信息像是嘲笑他的無能。我看到他急得滿頭大汗,不停地揪著自己本就不多的頭發(fā)。我沒有直接上手幫他改代碼,而是坐到他身邊,給他講了“盤古”核心的“動(dòng)機(jī)驅(qū)動(dòng)模型”的設(shè)計(jì)哲學(xué)。
“你不要把它當(dāng)成一個(gè)工具,你要把它當(dāng)成一個(gè)‘人’?!蔽腋嬖V他,“你不是在調(diào)用一個(gè)函數(shù),你是在向他‘請(qǐng)求’一個(gè)行為。你要理解他的‘性格’和‘動(dòng)機(jī)’,順著他的邏輯去溝通?!?/p>
馬東似有所悟,他把自己關(guān)在角落里,對(duì)著那段核心代碼看了整整三個(gè)小時(shí)。然后,他開始以一種全新的思路編寫接入層。那天深夜,當(dāng)他終于成功讓游戲里的第一個(gè)水墨小人,在“盤古”的驅(qū)動(dòng)下,做出一個(gè)符合“迷?!毙木车摹⒃谠嘏腔驳膭?dòng)作時(shí),他激動(dòng)得差點(diǎn)把鍵盤給砸了。
而我,則承擔(dān)著技術(shù)核心和最終解釋權(quán)的角色。我將“盤古2.0”的核心代碼進(jìn)行了封裝,剝離了所有可能暴露我個(gè)人身份信息的部分,并為它專門編寫了一套供“星火杯”評(píng)委審閱的技術(shù)白皮書。在這份白皮書里,我詳細(xì)闡述了“情感邏輯”和“動(dòng)態(tài)敘事生成”的實(shí)現(xiàn)原理,但我巧妙地隱藏了關(guān)于“熵增”漏洞和“自我格式化”機(jī)制的最關(guān)鍵信息。
這是另一個(gè)信息差。我要讓評(píng)委們看到“盤古”的強(qiáng)大,但又不能讓他們完全看透。我要讓他們知道,我們手里掌握著一套他們聞所未聞的革命性技術(shù),從而對(duì)我們的團(tuán)隊(duì)產(chǎn)生強(qiáng)烈的好奇。
時(shí)間在鍵盤的敲擊聲和咖啡的香氣中飛速流逝。就在報(bào)名截止前一天晚上,我們終于完成了游戲演示版本的第一個(gè)可運(yùn)行版本。
趙干將我們所有人叫到他的電腦前。屏幕上,蘇小小創(chuàng)造的水墨世界徐徐展開,一個(gè)身穿書生袍的“執(zhí)筆者”小人,站在一本巨大的古書前。
趙干控制著小人,走上前,將書中描述“枯藤”的“枯”字,改成了“青”字。
奇跡發(fā)生了。
屏幕上,原本纏繞在老樹上的枯藤,瞬間煥發(fā)生機(jī),抽出了嫩綠的新芽。整個(gè)畫面的色調(diào),也從蕭瑟的秋日,轉(zhuǎn)向了明媚的春天。甚至連背景音樂,都從哀婉的古琴,變成了清脆的鳥鳴。
“成功了!”蘇小小激動(dòng)地叫了出來。
“別急,這只是最基礎(chǔ)的環(huán)境互動(dòng)?!蔽沂疽馑麄兝^續(xù)看。
趙干接著將故事里“猛虎下山”的“虎”字,改成了“貓”字。
下一秒,一只威風(fēng)凜凜的水墨猛虎,形象瞬間發(fā)生變化,變成了一只慵懶地打著哈欠的橘貓。原本緊張的“村民躲避猛虎”的情節(jié),立刻演變成了“全村人圍觀擼貓”的溫馨日常。NPC們的對(duì)話,也從驚恐的尖叫,變成了“好可愛啊”、“快拿小魚干來”的喜愛之詞。
“我的天……”馬東喃喃道,“情節(jié)……情節(jié)真的自己‘活’了過來!”
我們成功了!在如此短的時(shí)間內(nèi),我們創(chuàng)造出了一個(gè)足以打敗所有人想象的原型!
然而,就在我們沉浸在成功的喜悅中時(shí),趙干潑了一盆冷水。
“還有一個(gè)問題,一個(gè)很致命的問題?!彼钢聊徽f,“你們看,剛才橘貓出現(xiàn)的時(shí)候,畫面有零點(diǎn)五秒的卡頓。盤古引擎的運(yùn)算量太大了,我們這幾臺(tái)破電腦,根本撐不住一個(gè)完整的、流暢的演示。到了‘星火杯’現(xiàn)場,評(píng)委們可不會(huì)容忍任何的卡頓和掉幀?!?/p>
馬東點(diǎn)頭道:“干哥說得對(duì)。盤古AI的實(shí)時(shí)演算,特別是涉及到大規(guī)模情節(jié)變更的時(shí)候,對(duì)算力的要求是指數(shù)級(jí)增長的。我們需要一臺(tái)高性能的云服務(wù)器,在云端運(yùn)行AI核心,本地只負(fù)責(zé)接收指令和渲染畫面?!?/p>
“那就租!”蘇小小說。
“錢呢?”趙干一句話,讓我們?cè)俅蜗萑氤聊?/p>
他打開工作室的對(duì)公賬戶,上面那個(gè)刺眼的“31250.78元”的余額,是我們的全部家當(dāng)。
“我查過了,”趙干的聲音有些干澀,“要支撐我們這個(gè)演示版本在‘星火杯’初賽那一周的流暢運(yùn)行,至少需要租用頂級(jí)的云計(jì)算服務(wù)。費(fèi)用,大概是……五萬?!?/p>
五萬。
一個(gè)我們根本無法承受的數(shù)字。
剛剛?cè)计鸬南M坪跤忠滑F(xiàn)實(shí)澆滅。我們就像一群造出了核動(dòng)力引擎的工程師,卻發(fā)現(xiàn)連啟動(dòng)引擎的電費(fèi)都交不起。
“我來想辦法?!蔽议_口了,打破了這令人窒息的沉默。
所有人的目光都集中在我身上。
我拿出手機(jī),打開了一個(gè)我很久沒登錄過的賬號(hào)。那是一個(gè)全球頂尖的程序員社區(qū),也是一個(gè)高端的“代碼懸賞”平臺(tái)。各大公司會(huì)把一些他們內(nèi)部無法解決的、最棘手的技術(shù)難題,以高額賞金的形式發(fā)布在上面。
我迅速地瀏覽著懸賞列表,尋找著那些金額高、但又能在短時(shí)間內(nèi)解決的問題。
很快,我的目光鎖定了一個(gè)標(biāo)題——“‘深海’加密算法動(dòng)態(tài)密鑰生成模塊的致命漏洞,懸賞10萬人民幣?!?/p>
發(fā)布者是國內(nèi)一家著名的安全公司。這個(gè)漏洞已經(jīng)掛在上面快一個(gè)月了,有上百個(gè)頂尖黑客和程序員嘗試過,但都失敗了。
“陳陽,你瘋了?”馬東看到了我的屏幕,驚呼道,“‘深?!惴??那東西是出了名的變態(tài)!一個(gè)月都沒人解決,你一個(gè)晚上能搞定?”
“試試看。”我沒有多說,將我的筆記本電腦搬到一個(gè)安靜的角落,戴上了耳機(jī)。
接下來的幾個(gè)小時(shí),我的世界里只剩下了代碼。
“深?!彼惴ǖ膹?fù)雜程度,確實(shí)超出了我的想象。它就像一個(gè)由無數(shù)個(gè)旋轉(zhuǎn)的、彼此嵌套的魔方組成的迷宮。但當(dāng)我沉浸進(jìn)去之后,我發(fā)現(xiàn),它的底層邏輯,和我為“盤古”設(shè)計(jì)的某些加密模塊,有異曲同工之處。
我的手指在鍵盤上飛舞,大腦以前所未有的速度運(yùn)轉(zhuǎn)著。一行行代碼在我眼前流過,不再是冰冷的字符,而是一個(gè)個(gè)跳動(dòng)的、充滿了邏輯之美的音符。我仿佛不是在尋找漏洞,而是在與另一個(gè)匿名的、頂尖的程序員,進(jìn)行一場跨越時(shí)空的無聲對(duì)話。
終于,在凌晨三點(diǎn),我找到了那個(gè)隱藏在億萬種可能性中的、唯一的邏輯奇點(diǎn)。那是一個(gè)天才般的設(shè)計(jì),卻也留下了一個(gè)天才般的、致命的破綻。
我沒有直接修復(fù)它,而是編寫了一個(gè)小小的“演示程序”,用最直觀的方式,復(fù)現(xiàn)了這個(gè)漏洞的觸發(fā)過程,并附上了我的修復(fù)方案和原理說明。
然后,我點(diǎn)擊了“提交”。
做完這一切,我感覺身體像是被掏空了一樣,靠在椅子上,連一根手指都不想動(dòng)。
趙干他們?nèi)艘恢睕]睡,默默地守在我身后。
“怎么樣?”趙干小聲問。
“等結(jié)果吧?!蔽议]著眼睛說。
時(shí)間一分一秒地過去,每一秒都像一個(gè)世紀(jì)那么漫長。
突然,我的手機(jī)響起了一聲清脆的提示音。
我睜開眼,是一封郵件。
發(fā)件人,是那家安全公司。
“尊敬的開發(fā)者,我們已確認(rèn)您提交的方案完美解決了‘深?!惴ǖ穆┒?。您的才華令我們驚嘆!10萬元賞金已匯入您的賬戶,請(qǐng)查收。另外,我們誠摯地邀請(qǐng)您加入我們公司,職位和待遇,都由您來定。”
我把手機(jī)遞給趙干。
當(dāng)他們?nèi)齻€(gè)人看到郵件內(nèi)容時(shí),整個(gè)工作室先是死一般的寂靜,隨即爆發(fā)出一陣驚天動(dòng)地的歡呼!
蘇小小激動(dòng)得又蹦又跳,馬東則像看怪物一樣看著我,而趙干,這個(gè)三十歲的男人,眼眶竟然有些紅了。他用力地拍著我的肩膀,什么話也說不出來,只是一個(gè)勁地重復(fù)著:“好小子……好小子!”
危機(jī),解除了。
第二天上午,我們用這筆“救命錢”租下了一周的云服務(wù)器。馬東立刻將“盤古”的核心部署到了云端。當(dāng)我們?cè)诒镜卦俅芜\(yùn)行演示版本時(shí),所有的操作都變得如絲般順滑,再也沒有一絲卡頓。
下午四點(diǎn)五十分,距離報(bào)名截止還有十分鐘。
我們四個(gè)人,圍在趙干的電腦前,屏幕上是“星火杯”的報(bào)名頁面。策劃案、美術(shù)設(shè)定集、技術(shù)白皮書、游戲演示版本的視頻演示……所有的文件,都已上傳完畢。
“都檢查一遍,還有沒有問題?”趙干的聲音有些顫抖。
我們仔仔細(xì)細(xì)地又看了一遍,確認(rèn)無誤。
“我點(diǎn)了?”趙干的手,懸在“提交”按鈕上。
“點(diǎn)吧!”我們異口同聲。
他深吸一口氣,按下了鼠標(biāo)。
頁面跳轉(zhuǎn),“報(bào)名成功”四個(gè)大字彈了出來。
那一刻,我們四個(gè)人,沒有歡呼,只是相視一笑。疲憊,但滿足。
我們知道,這僅僅是開始。一場惡戰(zhàn),正在前方等著我們。
提交報(bào)名后的一周,是漫長而煎熬的等待。初賽的評(píng)選是線上審核,全國上千個(gè)團(tuán)隊(duì),最終只有三十二個(gè)能進(jìn)入下一輪的線下展示。
我們每天都在瘋狂地優(yōu)化演示版本,同時(shí)一遍遍地刷新著官網(wǎng),等待結(jié)果公布。
終于,在一周后的傍晚,官網(wǎng)的頁面更新了。
“‘星火杯’初賽入圍名單公布!”
我的心,瞬間提到了嗓子眼。
趙干顫抖著手,點(diǎn)開了那個(gè)鏈接。一份長長的名單,彈了出來。
我們屏住呼吸,從上往下,一個(gè)一個(gè)地找。
很快,我們?cè)谝粋€(gè)靠前的位置,看到了一個(gè)熟悉的名字——“天極啟示戰(zhàn)隊(duì)”,參賽作品:《源代碼:AI核心技術(shù)演示》。
李文博,他果然來了。
我們的心沉了下去,繼續(xù)往下找。
G…H…J…我們下意識(shí)地在找“Y”開頭的“螢火工作室”。
可是,直到名單的最后一行,我們也沒有看到自己的名字。
沒有……我們落選了?
怎么會(huì)?
工作室里,死一般的寂靜。蘇小小的眼睛瞬間就紅了,馬東一拳砸在了桌子上,趙干的臉,則是一片煞白。
所有的努力,所有的期待,所有的豪情壯志……難道,就這么無聲無息地結(jié)束了?
就在我們陷入絕望的深淵時(shí),蘇小小突然指著屏幕的角落,發(fā)出一聲帶著哭腔的尖叫:“那……那是什么?”
我們順著她的手指看去。
在入圍名單的最下方,有一個(gè)很不起眼的、用小號(hào)字體標(biāo)注的特殊區(qū)域。
標(biāo)題是:“評(píng)委會(huì)特別推薦入圍名額”。
下面,只有一個(gè)名字。
“螢火工作室”,參賽作品:《執(zhí)筆者》。
而在它的后面,還有一個(gè)括號(hào),里面寫著一行小字。
(推薦人:高天原)