AI 許願池敲碗一下
🎮遊戲創作🤖AI 角色與 chatbot✍️內容創作與變現🏪小生意自動化🎨圖像影音生成工作效率與求職

我的遊戲存檔讀回來,角色全部不講話了!

你做的文字冒險/視覺小說,存檔讀回來以後對話整個壞掉、角色像集體失憶。這不是你存檔存錯——你缺的詞叫「暫存變數不進存檔」。這頁告訴你哪種變數會被引擎悄悄丟掉,還有正確的重建做法。

· 鴿寶
#RenPy#視覺小說#存檔系統#遊戲開發#transient

先說結論:這不是你存檔存錯,是有一種變數天生就不進存檔,而你剛好把命根子放在裡面了。

我來還原一下你踩坑的現場。

遊戲做好了,玩起來一切正常,你超爽。然後你存檔、關遊戲、隔天讀檔回來——

角色。全部。不講話了。

對話整個壞掉,那些角色像是集體失憶,忘了自己是誰。你心裡一驚:「幹,我遊戲壞了?」

你去翻程式碼,設定明明都好好的躺在那。你重存了三次,一模一樣。你開始懷疑人生。

別急著懷疑人生。問題不在「存檔」這個動作,在你放東西的那個變數,它的名字

你缺的詞 = transient variables(暫存變數)/ after_load


為什麼存了卻讀不回來?(人話版)

Ren’Py(做視覺小說最多人用的引擎)有一條規則,我賭你不知道:

任何名字以底線 _ 開頭的變數,Ren’Py 一律當成「內部暫存」,不寫進存檔。

這是它故意的。它心裡想:「底線開頭的嘛,一定是引擎自己用的臨時垃圾,存它幹嘛。」然後就把它跳過了。

看到問題了嗎?如果你(或幫你寫 code 的 AI)手很賤,把重要的遊戲狀態放進這種變數——比如一張「角色名字 → 角色本人」的對照表——那存檔的時候,Ren’Py 看都不看它一眼。

讀檔回來,那張表是空的。靠它運作的所有對話,當然集體暴斃。

這就像你把重要文件鎖進一個「每天下班自動清空」的抽屜。隔天你翻遍全世界找不到,還以為公司遭小偷。不是啊兄弟,是那個抽屜本來就會自己清空,你放錯地方了。


正確做法:要嘛別放,要嘛讀檔時自己重蓋一次

兩條路:

懶人路(推薦):別把命根子放進 _ 開頭的變數。把底線拿掉、換個名字,它就會乖乖被存進存檔了。就這麼簡單。

進階路(有時躲不掉):如果那個東西「本來就存不進去」——比如它是遊戲開始時當場生出來的物件(這種東西沒辦法直接寫進檔案)——那你就在讀檔的時候,重新生一次

Ren’Py 佛心地給了你一個專門的時機點叫 after_load。每次讀檔一完成,它就自動幫你跑一次。你把「重建」的動作塞進去:

label after_load:
    python:
        _init_char_speakers()   # 讀檔後,把角色對照表重新蓋回來
        _dialogue_cache.clear() # 順手把舊快取清掉
    return

判斷原則一句話:能直接存的(數字、文字、清單)→ 別用底線變數,讓它正常存檔。存不進去的(當場生的物件)→ 用 after_load 讀檔時重建。

⚖️ 誠實說清楚:這條「底線 = 不存檔」是 Ren’Py 特有的怪癖,不是每個引擎都這樣,別拿去嗆別的引擎。但「有些狀態被悄悄跳過、讀檔才爆」這個坑的形狀,在各種存檔系統裡都會冒出來。核心教訓只有一句:存檔不會「自動全部幫你存好」,你得知道哪些東西根本沒被存。


你會搜錯的關鍵字 vs 該搜的正確詞彙

你崩潰時會打的(搜不到) 該搜的正確詞彙
「Ren’Py 存檔讀回來是空的」 transient variables / _ prefix not saved
「讀檔後對話壞掉」 after_load label / state rebuild
「遊戲狀態莫名消失」 save serialization / what gets persisted

把右邊那欄丟進 Google、或直接貼給你的 AI,世界瞬間清晰。這就是我們在幹的事——把你崩潰時打出來的髒話,翻譯成能找到答案的詞。

🎁 直接貼給你的 ChatGPT / Claude

這一段免費。複製、貼上、送出——先讓你的 AI 動起來。

我在用 Ren'Py 做視覺小說。我發現有些遊戲狀態(例如一個把角色名字對應到 Character 物件的 dict)在存檔讀回來以後就變空的,害對話全部壞掉。

請告訴我:
1. Ren'Py 裡哪些變數「不會」被存進存檔?(我聽說跟變數命名有關)
2. 如果我必須用到這種變數,怎麼在讀檔時把它重建回來?請給我一個 after_load label 的範例。
3. 哪些東西適合放這種「不存檔」的變數、哪些絕對不行?

想更進一步?

上面免費的三層已經能讓你動起來。如果你想要「照著做不迷路」甚至「我們幫你跑好」——往下看。

  1. 免費 這個坑是什麼、誰會踩
  2. 免費 人話解釋:錯在哪、正確的詞彙
  3. 免費 一段可直接貼給 AI 的 prompt

本文首發於 AI 許願池(https://kaowan.pages.dev/articles/save-file-loads-empty/),發佈日 2026年7月5日。 轉載請註明出處——原創者不怕考古,只有小偷怕。🕳️