YouTube 影片筆記
遊戲存檔只記關鍵資料,石葉自製系統拆解序列化原理
原片標題:存檔爲什麽是遊戲中最大的謊言?它是如何瞬間保存整个世界的
原片說明
玩了幾十年遊戲,存檔這件事我從來沒想過它到底怎麼運作的,按下去就對了。結果石葉這支影片開頭就說,黑神話悟空 139G,存檔只有 2.66MB,這麼小的檔案卻能裝下整個世界。更扯的是,他為了搞懂這件事,自己動手做了一套存檔系統,還順手做出一款遊戲。如果你也好奇那個「瞬間儲存全世界」到底怎麼辦到的,這支會把幻覺拆給你看。

存檔根本不是把世界裝進去
石葉說他以前也以為存檔是把整個遊戲世界鉅細靡遺地記下來,直到自己動手做才發現完全不是。絕大多數遊戲只存關鍵資料:玩家位置、生命值、裝備、揹包道具。因為玩家就是靠這些判斷進度,只要這些被儲存,就會產生「整個世界都被存下來」的錯覺。早期硬體限制更殘酷,軟盤磁帶只有幾十到幾百 KB,存檔得做得極度緊湊,只記錄最重要的東西。

密碼存檔的年代,玩家就是人肉硬碟
1983 年雅達利《生存島》因為卡帶不能寫入,製作組設計了一套密碼系統,把存檔資料轉成 12 個數字,玩家得自己用筆抄下來,下一章再手動輸入回去。石葉形容這根本是把玩家當外接人肉硬碟。後來《銀河戰士》歐美版也因為硬體限制用密碼存檔,但世界太複雜,12 位不夠用,擴張到 24 位、64 種字元,其中 8 bit 加密、8 bit 校驗,只剩 128 bit 記遊戲資訊,每個 bit 幾乎對應一個遊戲內的東西。

記憶體位址不能直接存,序列化才是關鍵
現代遊戲資料結構太複雜,物件之間形成指標和引用的關係網,任何一條線斷了就可能報錯卡死。石葉用倉庫房間號比喻:記憶體位址只在這次執行有效,關掉遊戲倉庫就清空,下次物件會被分到不同房間。所以存檔不能直接記「劍在 302 號房」,而是記錄關鍵屬性,例如鐵劍、耐久 37、座標、劍尖朝東,再轉成適合寫入硬碟的格式,這個過程叫序列化。讀檔時反序列化,重新生成一把一樣的劍。

開關跟金幣的存檔邏輯竟然不一樣
石葉原本以為金幣的存檔邏輯跟開關差不多,都是記錄有沒有互動過,結果實際跑起來出錯。他後來才想通,金幣這種一次性收集品只有「非生即死」兩種狀態,所以改用一本生死簿,記錄所有已被互動過的道具,金幣生成時先查生死簿上有沒有自己的名字,有就直接自刎。但這套只適用他設計的金幣,像《明日方舟:終末地》的醚質會跑、有位置資訊,遊戲卻刻意不存位置,讀檔後回到初始點,等於重置挑戰,這是製作者有意為之。

丟檔英雄:把存檔規則變成遊戲機制
為了讓觀眾更直觀理解,石葉用 AI 做了一款小遊戲《丟檔英雄》。表面是地牢探索肉鴿,但存檔規則玩家手動選擇要把哪些資料撿進存檔。每三回合主角會被強制銷毀,死前能存一次檔,硬碟空間有限,走太多步就記不住後面的資料。沒存到的資料讀檔後會恢復預設值,所以生命值反而變成 debuff,玩家可以故意不存它來補滿血。這設計把前面講的原理直接變成玩法。
值得下載嗎
如果你對遊戲背後的技術有興趣,這支值得存下來,石葉把序列化、指標、存檔規則設計講得很具體,還附帶一款能直接玩的小遊戲。但如果你只想看遊戲介紹或娛樂內容,這支資訊密度偏高,可以考慮跳著看。