當前位置: 華文問答 > 遊戲

為什麽許多遊戲在存檔時會提示「不要關閉電源」?

2021-07-05遊戲

你猜「不要把燈泡放進口中」這句警告是怎麽來的?

OK,說正經的。

1、減少意外,免責

玩家所擅長的領域千差萬別,不是每一個人都知道「寫入磁盤時掉電可能會對數據乃至磁盤本身產生重大危害」——偏偏玩遊戲的過程中存檔又是一個非常頻繁的操作。器材壞了事小,心血沒了事大啊。

爽不爽?

加上提示以後,如果真的因為關機遺失了存檔,也可以很大程度上規避責任,避免和玩家扯皮。

2、遺失存檔的技術細節

其實作代遊戲,如果處理方式合適的話,遺失存檔的概率可以做到非常低。存檔的邏輯可以用偽代碼這樣表示:

功能:存檔() 步驟1. 將當前需要保存的數據全部整理出來,轉換為一串純數據data 步驟2. 開啟存檔檔 步驟3. 寫入存檔數據data 步驟4. 關閉檔

這一連串功能中,如果執行步驟4時關閉電源,大概率會遺失存檔。

步驟2~3時關閉電源,有可能遺失存檔,概率大小取決於存檔大小,以及主機寫檔的速度。

所以如果這塊程式碼寫的合適,存檔容量不特別大,遺失存檔的概率並不高。因關閉電源而遺失存檔可以看成是巧合。

但是,不排除某些遊戲這部份程式碼可能不太講究,有三種可能:

  1. 某些遊戲存檔很大,寫入時間比較長。
  2. 某些遊戲在寫新檔案之前,為了減少占用先把舊存檔刪除。我估計比較古老的遊戲機會有這個問題。
  3. 把上面的步驟1寫到了步驟2、3之間,無謂增加了寫入時間,增大了出錯的概率。

按理來說,現代遊戲機的架構與電腦類似,硬碟容量、記憶體容量是比較寬裕的,遺失存檔的問題已經很不明顯了。

最後,還有一個次要原因:存取存檔的過程中玩家往往什麽事兒也不能做,那就讓閑著沒事兒的玩家看看這句苦口婆心的忠告唄——就跟現在的遊戲往往會在loading界面放一些遊戲tip或劇情背景讓玩家不那麽無聊一樣。