在歷經十年的斷斷續續工作並受益於近期大型語言模型的發展後,我正式發布了 1998 年《網路創世紀》演示版伺服器的完整逆向工程成果,將約 5,000 個函數轉譯為可移植的 C99 程式碼。
這篇文章記錄了開發者 Draxinar 歷時十年的逆向工程成果,他成功將 1998 年《網路創世紀》(Ultima Online, UO)隨資料片附贈的展示版伺服器(UoDemo.exe)完整還原。這項工程不僅將五千多個函式從二進位碼轉譯為可移植的 C99 程式碼,更揭開了當年正式營運伺服器的底層邏輯,包含被廢棄的生態系統與資源機制,為這款經典 MMORPG 的技術考古寫下重要篇章。
在 Hacker News 的討論中,這項逆向工程激發了資深玩家與開發者對 UO 黃金時代的集體回憶。許多留言者認為 UO 在遊戲設計上的深度至今仍難以超越,特別是其湧現式(emergent)的遊戲機制、複雜的經濟系統與建築探索功能。與現代 3D MMO 相比,社群普遍感受到後來的遊戲雖然在視覺與任務引導上有所進步,卻在沙盒互動與社會性實驗上大幅縮水。有開發者提到,正是 UO 的伺服器模擬器社群引領他們進入網路程式設計的領域,這種非官方的技術傳承對後來的軟體工程師影響深遠。
針對技術實作細節,社群對作者利用大型語言模型(LLM)輔助逆向工程的手段感到驚艷。有正在進行類似 C++ 專案的開發者表示,LLM 在處理複雜的類別繼承與反編譯程式碼整理上,確實展現了突破性的效率,讓原本看似永無止境的任務變得可行。這種「協議考古學」被視為軟體歷史保存與除錯藝術的結合,不僅是為了懷舊,更是對早期軟體架構的一種致敬。
此外,討論也延伸到當前 MMO 市場的匱乏。留言者指出,除了《魔獸世界》或《舊版 RuneScape》等少數長青作品外,市場上缺乏具備 UO 那種高自由度與隨機互動感的作品。部分玩家至今仍活躍於如 UO Second Age 等私人伺服器,或利用現代化的客戶端(如 TazUO)進行 Python 腳本開發,顯示出這款二十多年前的作品在技術與玩法上依然保有強韌的生命力,並持續吸引著追求深度模擬體驗的硬派玩家。
在討論串中,社群成員分享了數個值得關注的資源。對於想重溫 1998 年「第二年齡」(T2A)版本的玩家,UOSecondAge 提供了穩定的遊戲環境。在技術開發方面,TazUO 是一個支援 Python 腳本的現代客戶端,比起早期的 Razor 或 SteamUO 提供了更強大的自動化能力。若偏好單機體驗,Memento 則被推薦為適合獨自探索的伺服器版本。此外,作者在原文中也特別點名希望社群能協助尋找 1997 至 2003 年間的伺服器存檔文件(如 dynamic0.mul),以進一步完善這項歷史還原計畫。
相關文章
其他收藏 · 0