![]()
2020 年,一位保加利亞開發者突發奇想,能不能在網頁上復刻紅警 2?
于是他用 5 年時間,用最極致的人肉逆向,一行行手寫代碼,對照著《紅警 2》去模擬、還原每一個運行邏輯 。
最終寫出了網頁紅警,讓每個想懷舊的 80、90 后,不用折騰和配置環境,只要打開瀏覽器就能回到小時候。
這件事,差評君還給大家寫過。
然而就在一個月前,我們身邊有人也做了類似的事。
他把西山居早期的三款作品《新劍俠情緣》、《月影傳說》、《劍俠情緣 2》,全部復刻到網頁版,移動端也做了適配,點開即玩。
![]()
![]()
這些游戲大家都不陌生。
差評君現在還記得小學放學回家就打開電腦,操控著獨孤劍在臨安城里亂逛,跟酒樓里的醉郎中聊幾句居然能觸發隱藏武功。然后又在《月影傳說》里操控楊影楓一路撿草藥,撿著撿著追一個黑衣人到了蝙蝠洞,結果遇到一群強盜被圍毆怎么也打不過去。
時隔 20 多年打開這個復刻版,差評君發現味道很純正:NPC 對話還是那么啰嗦,按 V 打坐恢復真氣也還在,地圖角落里那些藏在石頭后面的寶箱也沒少。
![]()
不過讓人覺得震撼的是:
復刻這三款游戲的作者,沒有手寫一行代碼。
他完全依靠 AI,用不到一個月時間,不僅復刻了三款完整的武俠 RPG,甚至順手搭了一個通用游戲引擎,調試器、編輯器一應俱全,方便別人參考復刻其他游戲。
![]()
這到底是怎么做到的?差評君找到了這個項目的作者,陳老師 。
陳老師從小學三四年級就開始自學編程,有著近 20 年的代碼經驗,早早就在 GitHub 上開源過眾多項目 。
按理說,這樣一位資深極客,應該對手寫代碼有著極深的信仰。
但陳老師和我說,他現在連一個等號都不愿意敲了。
因為他試過一套固定流程:先讓當前最強大模型寫出詳細的設計文檔,再嚴格按文檔分模塊執行,每個模塊獨立驗證,跑通了再拼到一起。這樣產出的工程架構和代碼質量,大部分時候確實比自己從零手寫的更高。
其實早在 2020 年,陳老師就動過復刻這些童年神作的念頭,但在盤算過純手工逆向二進制文件、再重寫整套游戲系統的工程量后,放棄了。
直到最近,他認為 AI 的能力終于跨越了那個臨界點 。
因此,這次復刻不光是一次童年懷舊,更是一次對AI編程的極限測試。
![]()
陳老師做的第一件事,就是把游戲客戶端的原始資源文件直接丟給了 AI,讓 AI 去解析。
這些游戲文件是二進制的,為了分發和安裝,所有信息都被打包壓縮成人類讀不懂的格式。而 AI 拿到文件后,開始瘋狂調用各種查看工具,列出文件結構、讀十六進制,寫 Python 代碼嘗試解析。一條路走不通,馬上就換一種邏輯重試。
在過去,程序員是要拿著十六進制編輯器,靠經驗和直覺一點點分析,再寫腳本反復嘗試的。
陳老師估算AI在這個環節的效率,是人類的 10 到 100 倍 。
我尋思也合理,AI 擅長暴力窮舉,它不需要睡覺、也不會煩躁、更不會在第三個小時打開抖音刷會差評君。
![]()
這還只是開始,真正的考驗是如何重建整套游戲系統。
在用 VScode Copilot 復刻時,陳老師主要用兩個模型:Claude Opus 負責深度思考,當架構師,把游戲拆成模塊、寫出技術文檔;Claude Sonnet 速度快,當執行者,根據文檔把代碼寫出來。
讓人頭皮發麻的是,AI已經不再只是埋頭執行,它還能具備了自主糾錯能力。
有一次做尋路系統,陳老師覺得這個模塊太吃性能,TypeScript 可能扛不住,就讓 Sonnet 試試用 Rust 重寫。Sonnet 寫完之后自己跑了一輪性能對比,發現 Rust 和 TypeScript 之間來回翻譯傳遞數據的開銷太大,總體算下來反而更慢了。
于是,它主動將這個測試結論反饋給陳老師,并建議回退到 TypeScript 方案 。
![]()
就這么一個負責想、一個負責干,項目推進得比陳老師自己預期的還快。
從 1 月 25 日開工到 2 月底收尾,刨去春節休息,滿打滿算僅用了 20 天左右 。期間,陳老師與 AI 的對話次數達到四五千次 。
他通常會同時拉起 5 到 6 個 AI 對話窗口,并行處理不同的模塊 。白天在公司上班時,也是遠程桌面讓家里的 AI 在后臺瘋狂打工,晚上回家直接驗收成果 。
![]()
看到這一定有人質疑:20 萬行代碼全靠AI自動生成,真不是屎山代碼?
確實,差評君也用 AI 寫過 App,結果每加一個功能就多一個 bug,甚至修一個 bug,還會冒出來兩個新的。
陳老師說,零編程經驗的人用 AI 寫代碼最大誤區,就是讓 AI 一口氣寫個完整 APP,缺少架構設計。一開始還行,后面越加功能越亂,因為 AI 最擅長模仿之前寫法,一旦前期邏輯混亂,后期就越來越亂。
所以陳老師做法是分模塊開發,每個模塊單獨設計、單獨測試,跑通了再拼。遇到 bug 也是把運行日志發給 AI,定位到具體模塊進行修復。在每次完成大改動后,他還會新開一個窗口,讓另一個 AI 從零開始掃描剛改過的代碼。
總之,經歷了不下 10 輪的優化與重構,這近 20 萬行代碼最終成功落地。
![]()
所以這 20 萬行代碼到底做了什么?
打開游戲你就知道了:角色在地圖上走動時能會繞過障礙物找到最短路線。天氣會從晴天突然轉雨、雨滴還會掛在屏幕緩緩落下,這效果在原版里壓根沒有,是復刻版新加的。武功系統也做了 22 種飛行軌跡和 10 種狀態效果,螺旋的、追蹤的、扇形擴散的,能組合出幾百種法術。
![]()
由于原版游戲是西山居用自創的腳本語法把整個劇本串起來的,為了讓游戲在瀏覽器里跑起來,陳老師還把上百種劇情指令全部重寫了一遍,并且加入了現代游戲行業通用的 Lua 語言支持,以后想給游戲加新劇情、改對話分支,不用去琢磨西山居獨創語法,用 Lua 腳本就能成。
不僅如此,他還做了一個游戲編輯器。
武功、NPC、地圖、物品、對話樹,13 個模塊全能在網頁上直接編輯,改完刷新就能在游戲里看到效果。以后只要把引擎接入 AI,用戶就能一句話生成游戲劇情和 MOD 了。
![]()
這三款游戲在 B 站上本來就有一批 MOD 創作者,以前都是純手工制作,費時費力。如果這個功能做出來,每個人都能做出自己的劍俠情緣。
![]()
寫到這,那個老生常談的問題又來了:程序員真要被替代了嗎?
陳老師的答案是目前不會,但程序員這個職業的定義,已經在改寫了。
過去要獨立開發游戲,你必須要把 70% 精力投入到敲代碼、做建模、修 Bug、優化性能上,30% 留給游戲玩法 。
但現在,AI 已經能夠包攬這些代碼活,你需要用 30% 的精力去做架構決策,剩下 70% 傾注到玩法設計中 。
比如物品交互邏輯怎么定?數值成長曲線怎么畫?NPC 行為樹怎么排?這些屬于產品和設計層面的決策,是沒有標準答案的 。AI 可以給你提供一百套方案,但最終想做出一款怎樣的游戲,依然需要人類來拍板 。
換句話說,陳老師這 20 年的編程經驗并沒有作廢,而是轉化為了復刻游戲過程中的架構決策。
像差評君這種沒有編程經驗的人,遇到 bug 不知道怎么定位,游戲系統怎么拆也沒概念,有 AI 也照樣干瞪眼。
![]()
但。。。
這次聊天也引出了一個更深層次的推論:
程序員工作重心的分配已經從“7 比 3”變成了現在的“3 比 7”,那么隨著 AI 模型的極速迭代,這個比例會不會很快變成“1 比 9”,甚至“0 比 10”?
這種需要有經驗的人來主導代碼的階段,還會持續多久?
甚至明天之后,連“游戲該怎么設計”這種創意工作,AI 會不會也能比大部分人想得更快、更周全。
![]()
在這個時間尺度被極度壓縮的領域里,沒人敢給出確切定論 。
畢竟一年多之前 DeepSeek 才剛發布,AI 還只是幫你補幾行代碼,寫點最簡單程序,甚至再往前推一年,大家討論的還是 AI 客服。
如今 20 天、20 萬行代碼、三款游戲,就是一個老程序員和 AI 合作的結果。
從沒有人會想到程序員有一天居然不用手敲代碼,行業內還出現了“非遺匠心手寫代碼,古法編程”的調侃,明示手寫代碼已是古法。
![]()
這就是 AI 這枚硬幣的兩面。
一面是你最熟練的那部分手藝,正在變成AI的默認功能。
AI 已從聊天框里的一問一答,變成了能自己閱讀文檔、記住上下文、調用工具、主動干活還能檢查錯誤的工具。
這種變化正在從編程領域蔓延到所有腦力勞動,設計從手搓素材變成了生成和調整 AI 生成的方案,視頻從手動剪輯變成了創意策劃+AI 執行。
各行各業的工作重心正以月為單位被重新定義,人類經驗、技能的保質期也在跟著頂級模型的版本號走。
![]()
而另一面,是一扇你從未打開過的門。
從想法到成品之間的距離被極速壓縮了。
一個從未學過剪輯的人,可以把腦子里的畫面直接變成一支短片。一個人腦海中恢弘的構想,也不再需要等待數十萬資金和一個完整的團隊去落地。
執行力是在貶值,但知道“該做什么”的人,比以前會更不可替代。
沒人知道這枚硬幣最終會落向哪一面。但至少現在,它給了每個人重新發牌的機會。
撰文:刺猬
編輯:莽山烙鐵頭 面線
美編:素描
圖片、資料來源:
https://miu2d.com/
![]()
![]()
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.