top of page

decomp.dev AI 排行榜關閉揭露一場空洞的數字遊戲

45 分鐘前
讀畢需時 13 分鐘

decomp.dev 在運作兩年後凍結其公開索引及排行榜,表示 AI 已把可量度的進展變成具破壞性的競爭。decomp.dev AI 排行榜關閉並不代表該網站或其歷史紀錄被抹除,而是移除了那個曾協助逆向工程師尋找專案、追蹤進度及慶祝艱鉅成果的共享記分板。

創辦人 Luke 「encounter」Street 表示,AI 本身並非唯一問題。在人類引導及程式碼審查下使用時,它可以大幅加快遊戲反編譯。衝突始於這種速度令敵意分叉、審查不足的程式碼,以及倉卒推出的 PC 移植版,比嚴謹研究更容易獲得關注。

這項分別的重要性不止於復古遊戲。開放專案經常以公開指標激勵貢獻者,但這些指標假設每個進展單位大致代表可比較的投入。AI 打破了這個假設。一旦完成百分比可以透過截然不同的方法上升,排行榜便不再衡量共同成就,反而開始圍繞不可靠的數字塑造行為。

decomp.dev AI 排行榜關閉實際改變了甚麼

decomp.dev 正在停用其公開探索及排名功能,並非刪除已收集的所有專案紀錄。

Street 於 2024 年推出 decomp.dev,旨在集中展示配對反編譯的進度。配對反編譯是指重寫程式,令新原始碼在正確條件下編譯時,產生與原始二進制檔完全相同的機器碼。

這項工作有別於要求反編譯器輸出大致可讀的程式碼。開發者會研究組合語言、推斷資料結構、還原控制流程、辨識編譯器行為,並反覆調整原始碼。一個專案可能花上數天,只為配對一個棘手的函數,因為原始碼層面的一個細微差異已足以改變編譯器輸出。

該網站令這個緩慢過程變得易於理解。訪客可瀏覽眾多專案的完成百分比、近期活動及歷史變更。百分比的一小部分可能代表認真的調查工作,因此看見數字上升,會為貢獻者帶來有用的認可。

Street 在 10 月 15 日的停止服務公告中表示,中央索引及新增專案支援將會停用。現有專案頁面及歷史資料將繼續提供,並持續追蹤已知專案。因此,這項決定凍結公開競爭,同時保留了大部分檔案紀錄。

早期報道有時忽略了這項細節。decomp.dev 並非一夜之間完全消失;其創辦人撤回的是把獨立專案變成一場可見競賽的部分。

根據公告,這個索引吸引了真正希望學習及貢獻的人,同時亦吸引了把百分比視為目標、卻脫離其背後研究的人。Street 認為,公開索引及排行榜造成的傷害多於益處。

這項行動之前,已有投訴指有人分叉既有儲存庫,並以 AI「完成」另一團隊已展開的工作。開源授權條款可以容許分叉,但法律許可並不能解決署名、社群同意及負責任管理等問題。

在原團隊有時間評估生成程式碼之前,分叉專案亦可能已獲得關注。這造成艱難的誘因:維護者要麼加快自己的工作,要麼花時間審核他人的輸出,要麼眼看粗糙的衍生專案搶走公眾敘事。

這篇關閉報道描述了另一個緊張來源:投機者根據社群研究,爭相發布勉強可運作的移植版。一個可玩的標題畫面或精緻預告片,傳播速度可以遠快於一份仔細說明準確度缺口的解釋。

凍結排行榜移除了這場競賽的一個放大器。它無法阻止 AI 輔助反編譯、儲存庫分叉或競爭性移植版,只是停止讓 decomp.dev 為這些工作賦予一個共享的公開位置。

為何 decomp.dev 關閉記分板,而非禁止 AI

全面禁止 AI,會把負責任的輔助與未經審查的生成視為同一做法,同時迫使一名業餘開發者監管一條不穩定的界線。

Street 明確承認,當具備知識的人引導並審查結果時,AI 能協助反編譯。模型可以建議名稱、草擬翻譯、解釋陌生指令,或產生供人類測試的候選程式碼。這些用途可以減少重複工作,卻不會取代技術判斷。

問題在於,「AI 輔助」涵蓋非常廣闊的範圍。一個專案可能在數小時的人手分析後,利用模型解釋編譯器最佳化;另一個專案則可能在不了解其行為的情況下,接受大量生成修補程式。兩者都可能帶有相同標籤。

儲存庫證據亦並不完整。專案可能在文件、提交中繼資料或貢獻者備註中披露模型使用情況,亦可能完全省略。人手編寫的程式碼可以很差,而生成程式碼亦可以經過仔細審查。一個簡單的「是/否」標籤無法證明品質。

這令審核依賴對意圖、能力及可接受輔助程度的主觀判斷。Street 認為,決定哪些專案值得曝光,不應成為一名業餘開發者的責任。任何排除政策都會招致 AI 支持者及批評者的爭議。

禁令亦會錯過系統更深層的弱點。排行榜衡量的是配對進度,而非可維護性、署名、文件、測試或長期支援。即使能完美偵測 AI 生成程式碼,也無法令一個百分比代表上述所有品質。

Street 反而移除了競爭介面。這比監管每個儲存庫更有限,但它針對的是 decomp.dev 自己創造的誘因。沒有公開排名後,參與者在工作尚未準備就緒前,較少能因推高數字而獲得平台層面的回報。

這個選擇類似常見的內容審核模式。當平台無法可靠分類每一個有疑問的提交項目時,可以降低鼓勵這類提交的指標之顯著性。這種做法犧牲發現新專案的好處,以保護社群規範。

它亦承認了開放協作的一個殘酷事實。開放性提供了讓新手學習、驗證結果及建立於早期工作之上的材料;同樣的開放性,亦讓投機性分叉可以吸收多年累積的知識,並把其維護者逼向一個更容易推銷的終點。

AI 壓縮了第二條路徑。它能把儲存庫歷史、部分已配對的函數、文件及議題討論化為快速生成的背景脈絡。生成出的程式碼仍需驗證,但要產生看似完成的成果已變得更容易。

這並不代表每個分叉都是敵意行為。當維護者消失,或專案拒絕有用改動時,分叉仍是重要保障。獨立實作亦可以測試不同技術路線。

受爭議的行為更為具體:利用另一團隊未完成的工作來聲稱完成、吸引關注或推出移植版,卻幾乎沒有回饋原始工作。AI 降低了嘗試這種操作所需的時間與專業門檻。

因此,decomp.dev 的決定避免把爭議框定為人類對抗機器。其核心衝突是嚴謹研究對抗完成度表演。AI 之所以重要,是因為它令這種表演更快、更便宜,也更容易規模化。

AI 遊戲反編譯的影響不止於更快的程式碼

當完成百分比不再反映共同的研究流程,AI 就改變了進展的意義。

原有的 decomp.dev 模式把耐心遊戲化。貢獻者可以看著困難專案以微小幅度推進,知道每次改善都通過編譯及配對檢查。記分板把看不見的技術勞動轉化為共享訊號。

這個機制在進展仍然稀缺時有效。稀缺令每次遞增都具意義。貢獻者必須充分理解目標程式、編譯器、架構及周邊專案,才能產生符合嚴格配對要求的程式碼。

AI 未必取消這些要求。機器碼要麼與目標相符,要麼不相符。然而,模型能迅速生成及修訂大量候選方案,尤其當人類提供工具輸出並縮小任務範圍時。

Street 表示,這種引導式方法可以「以顯著方式」加快反編譯。重要改變並非正確性突然變得可有可無,而是達至正確結果的途徑,可以涉及少得多的直接人手重建。

這令百分比變得含糊。它仍能描述有多少程式碼已配對,但對貢獻者如何達到這一步的說明已較少。讀者可能從中推斷出理解深度、文件品質或審查程度,但數字從未保證過這些。

當「反編譯」成為「PC 移植版」的簡稱時,這種含糊會加劇。反編譯專案主要是重建及研究遊戲程式碼;原始碼移植則把重建程式碼改編至另一平台運行;靜態重新編譯會預先轉換機器碼,往往能在不逐函數產生同類可讀原始碼的情況下,達致可玩成果。

這些路徑可以重疊,但不能互換。一個完成的配對反編譯可以存在而沒有易用的移植版;靜態重新編譯則可產生可玩的建置版本,卻無需逐函數重建可讀原始碼。

Street 認為,反編譯社群歷來重視研究。開發者希望了解遊戲如何運作、還原設計決策、記錄舊系統,並揭示原始工作室從未公開的技術細節。

移植版仍是有價值的成果。它們可以改善相容性、支援現代顯示器、啟用修改內容,以及令舊遊戲在現有硬件上繼續可用。衝突出現在可見的移植版成為觀眾唯一重視的成果之時。

以靜態重新編譯為主的專案現正提供另一種模式。目錄 recomps.wtf區分反編譯與靜態重新編譯,並要求專案披露 AI 參與情況。其頁面說明 AI 是否協助命名函數、草擬翻譯工具或檢查工作。

這種以披露為先的模式無法解決品質控制問題,但保留了單一排行榜所掩蓋的資訊。讀者可以按方法、狀態、支援平台、發布版本及文件來判斷專案,而非依賴一個通用百分比。

因此,更廣泛的 AI 遊戲反編譯影響在於制度層面。當自動化改變工作成本後,社群需要新的方式呈現工作。一項為人手投入而設計的指標,即使在技術上仍然準確,也可能在社會意義上變得誤導。

復古遊戲以外的軟件團隊亦面對相同問題。修改行數、已關閉議題、已生成測試及已完成工單都很容易計算。AI 可以推高每一項數字,卻未必帶來相稱的理解或可靠性。

答案並不是隱藏所有生產力數據,而是將產出指標與審查、測試深度、來源追溯、維護及實際運作表現的證據配對。能保留這些證據的團隊,可以建立一個可搜尋的工程檔案庫,而非依賴原始活動計數。

decomp.dev 的經驗顯示,當一項指標的社會意義變化速度快過展示它的介面時,會發生甚麼事。數字仍在變動,但社群已不再認同這種變動應代表甚麼。

真正的競賽,是嚴謹研究與先移植、先曝光之爭

粗略的移植作品可在數小時內贏得注意力,而令可靠移植成為可能的研究,可能需時多年,且大多維持不為人知。

遊戲反編譯曾有一個相對清晰的流程。研究人員重建程式碼、記錄行為,並逐步產生相符的原始碼基礎。移植開發者之後便可調整這個基礎,以支援現代系統。

靜態重新編譯令可遊玩的成果能更早出現,因而削弱了這個流程。AI 更進一步削弱它,協助經驗較少的開發者快速產生黏合程式碼、平台層、建置腳本及修補程式。

這種速度帶來真正價值。更多玩家可以重溫發行商已不再支援的遊戲。開發者可更早測試想法,而好奇的新手亦毋須在起步前掌握每一個細節便可參與。

不過,首個可遊玩版本並不等於可靠的發佈版本。移植作品必須處理輸入、音效、時序、渲染、存檔、平台差異及不尋常的遊戲狀態。若測試只着重能否進入遊戲,或錄製宣傳片,問題可能一直隱藏。

7 月一篇關於移植戰場的報道,記錄了 Donkey Kong 64 周邊的這種張力。經驗豐富的社群開發者批評一個競爭的、重度依賴 AI 的專案,並另行啟動一項重新編譯工作,以多年累積的遊戲知識作後盾。

分歧並不單純關乎模型有否接觸程式碼。批評者認為,理解不足的改動會變得更難維護,亦可能引發嚴重錯誤。他們關注的核心,是初次發佈後專案的歸屬與承擔。

生成的程式碼可像任何其他貢獻般測試、審查及維護。當接受它的人無法解釋其行為時,風險便會上升。未來修正問題時,便要同時理解原始遊戲,以及一個從未記錄其假設的生成實作。

曝光度獎勵的是另一套技能。一個頻密公布消息、完成百分比快速上升、影片吸引的專案,可以在專家完成審核前主導討論。到失敗浮現時,受眾可能早已把該專案與完成遊戲聯繫起來。

這正是排行榜並不中立的原因。它將注意力導向它所計算的事物。當它按完成度排名,貢獻者便會感受到完成的壓力。當受眾把完成等同於即將推出 PC 移植版,維護者便承受製作可見遊戲畫面的壓力。

Street 將這種演變形容為空洞的數字遊戲。這個說法指出的是誘因失靈,而不只是對 AI 生成程式碼的美學反感。參與者會優化分數,因為分數控制注意力。

這個模式亦令署名問題更複雜。一個新分支之所以能顯示快速進展,可能只是因為早期團隊已整理檔案格式、命名函式、記錄建置工具,並解決編譯器問題。該分支表面上的加速,可能掩蓋了其下繼承而來的勞動。

開源授權確立法律許可,但健康的社群依賴授權未能完整編碼的規範。這些規範包括署名、溝通、尊重維護者,以及努力將改進回饋上游。

一個技術上獲允許的分支,若把共享工作呈現成個人競賽,仍可能損害合作。相反,一個管理良好的分支可保存被放棄的研究,或探索原有維護者不願採取的方向。

這種區分需要脈絡。而這正是排行榜無法表達的東西。它把專案放進比較框架,卻沒有充分展示其來源、審查標準、專案關係或預期成果。

移除索引並不會恢復舊有流程。AI 輔助專案與快速移植作品仍會持續出現。其他目錄也會競逐成為玩家尋找它們的地方。

decomp.dev 關閉 AI 排行榜所做的事更為克制:它拒絕讓一項備受尊重的社群服務,將彼此不相容的工作形式轉化為單一競賽。

停運並不能證明 AI Slop 的一切

關閉行動支持對誘因的批評,但並不能證明所有 AI 輔助反編譯均不準確或不受歡迎。

「AI slop」是一個情緒張力強烈、卻沒有穩定技術定義的標籤。它可以指未經審查的生成程式碼、低投入的呈現方式、誤導性說法、過量發佈,或純粹是批評者不喜歡的作品。

Street 也承認這個審核問題。Slop 有不同形式,且難以一致定義。專案所用的工具,不可以取代對其程式碼、測試、文件及維護實務的檢視。

現有證據也主要屬質性資料。公開投訴指出敵意分支、粗糙移植作品及博取注意的行為,卻沒有提供完整的失敗率比較,以對照人手編寫與 AI 輔助專案。

這個缺口很重要。審慎分析不應把一名社群領袖的決定,演繹為 AI 無法協助逆向工程的證明。Street 自己的聲明正是透過承認專家指導下能帶來有意義的加速,而否定了這個結論。

更快的進度也不會自動令成果變得空洞。使用自動化工具消除重複比對工作的人,可以花更多時間研究架構、驗證行為及記錄發現。

自動化一直是反編譯的一部分。差異比對工具、反組譯器、反編譯器、編譯器探索工具及腳本,早已減少人手工作。新的憂慮在於,生成式系統如何改變規模、可及性,以及產出與理解之間的關係。

亦存在合理的相反觀點。玩家通常更在意移植作品是否能運作,而非開發者如何製作。若 AI 輔助版本運行準確、遵守專案授權、向早期工作署名,並持續獲得支援,許多使用者不會認為有充分理由拒絕它。

部分開發者同樣認為,經驗豐富的審查者可使用 AI 而不放棄控制權。模型可以提出程式碼,但測試與人類判斷決定它是否進入專案。在這種工作流程下,AI 成為另一種可能出錯的工具。

因此,反對重度依賴 AI 專案的最有力論點,不能建基於純粹性。它必須指出可觀察的失敗,例如當機、不準確行為、安全問題、缺乏署名、無法維護的程式碼,或對完成度作出虛假聲稱。

公告後的社群討論,亦顯示人們對反編譯目的存在分歧。有些參與者重視研究與保存;另一些人則坦言使用專案追蹤器,以估算可遊玩的 PC 移植版何時可能推出。

decomp.dev 移除其索引,並不會令任何一方受眾消失。這次停運反而揭示了兩者之間的溝通問題。同一個進度條支援了兩種不同期望。

對研究者而言,它代表找回的知識及相符的程式碼。對着重移植的觀察者而言,它看似是倒數至可在新硬件上遊玩該遊戲。AI 讓可遊玩的成果更早、更頻繁出現,因而擴大了這道鴻溝。

法律問題則仍然獨立,並須按個案判斷。逆向工程專案通常避免分發受版權保護的遊戲資產,並要求使用者提供自己的副本。這種設計不會自動保障每一個專案或實作。

替代目錄已在嘗試更明確的規則。專案披露模式標示 AI 輔助作品,並解釋技術方法。這類系統為讀者提供更多脈絡,但成效取決於準確的自行申報及積極審核。

持懷疑態度的結論很直接。decomp.dev 記錄的是一場社群治理失靈,而非軟件品質的受控研究。它的回應值得關注,是因為該網站佔據核心位置,而不是因為它解決了關於 AI 生成程式碼的每一場辯論。

三個訊號將顯示社群能否重建信任

下一階段取決於專案能否以透明的品質、來源及持續維護證據,取代以速度為本的聲望。

第一個訊號,是替代索引會否採用有意義的專案披露。一個實用的列表應區分相符反編譯、原始碼移植及靜態重新編譯。它亦應說明 AI 使用情況、上游關係、測試狀態及發佈成熟度。

單靠標籤並不足夠。「AI 輔助」可以涵蓋一則生成的註解,也可以涵蓋程式碼庫的大部分內容。更好的披露會說明模型產生了甚麼、由誰審查,以及維護者如何驗證結果。

若各目錄逐步採納詳細披露,Street 的決定便會像一次推動更好衡量方式的重整。若它們以少量徽章裝飾,重新建立按完成度排名的競賽,同樣的誘因便會在新網域下重現。

第二個訊號,是知名分支如何與其繼承的專案互動。可留意清晰署名、向上游提交 pull request、共享問題追蹤,以及與原有維護者溝通。

一個回饋修正並記錄差異的分支,可以強化開放專案。一個似乎只為宣稱完成、吸引注意及放棄維護而出現的分支,則會加深對 AI 輔助移植競賽的憂慮。

儲存庫歷史比宣傳影片提供更有用的證據。定期修正、可重現建置、詳盡的問題回應及經審查的貢獻,能顯示團隊是否理解自己發佈了甚麼。

第三個訊號是發佈後品質。當使用者超越開場流程後,重度依賴 AI 的移植作品將面對最嚴峻的測試。存檔、對時序敏感的機制、罕見場景、控制器、圖像硬件及作業系統的準確性,會比推出速度更重要。

隨着使用者回報問題,反編譯、重新編譯與移植之間的技術差異也會變得重要。錯誤可能源自經翻譯的遊戲程式碼、平台層、從模擬器衍生的元件,或由移植版加入的增強功能。

能夠診斷這些層面的專案將贏得信任。當生成程式碼遇上陌生的邊緣情況時,維護者無法解釋自身實作的專案將難以應對。

這些訊號可以強化或削弱關閉行動背後的理據。更好的披露、具建設性的分支及可持續的發佈版本,會顯示社群能夠接納 AI 而不放棄品質。反覆出現的署名爭議及損壞的移植作品,則會印證 Street 的警告:現時誘因正獎勵錯誤的成果。

decomp.dev AI 排行榜停運,歸根究柢是一項關於治理的決定。Street 並沒有停用 AI、關閉所有儲存庫,或宣稱自動化協助沒有任何正當角色。他是在其數字不再代表該服務原本旨在表揚的價值後,撤走了這個記分板。

開發者和使用者如今有一個務實的選擇:他們可以按誰最先完成來評判項目,或細看工作如何產出、測試、署名及維護。在未來數月,還有甚麼證據會比下一個「百分百完成」的宣稱更重要?

 
 

為每個智能代理提供更完整的背景,提升工作表現

讓智能代理連接 remio 已整理好的知識、決策和歷史紀錄。

remio 目前支援 Windows 10+(x64) 及配備 Apple 晶片的 Mac。

你的 AI 工作夥伴
和 remio 一起高效工作

規劃、創作、交付
一站式完成

bottom of page