你猜「不要把燈泡放進口中」這句警告是怎麽來的?
OK,說正經的。
1、減少意外,免責
玩家所擅長的領域千差萬別,不是每一個人都知道「寫入磁盤時掉電可能會對數據乃至磁盤本身產生重大危害」——偏偏玩遊戲的過程中存檔又是一個非常頻繁的操作。器材壞了事小,心血沒了事大啊。
加上提示以後,如果真的因為關機遺失了存檔,也可以很大程度上規避責任,避免和玩家扯皮。
2、遺失存檔的技術細節
其實作代遊戲,如果處理方式合適的話,遺失存檔的概率可以做到非常低。存檔的邏輯可以用偽代碼這樣表示:
功能:存檔()
步驟1. 將當前需要保存的數據全部整理出來,轉換為一串純數據data
步驟2. 開啟存檔檔
步驟3. 寫入存檔數據data
步驟4. 關閉檔
這一連串功能中,如果執行步驟4時關閉電源,大概率會遺失存檔。
步驟2~3時關閉電源,有可能遺失存檔,概率大小取決於存檔大小,以及主機寫檔的速度。
所以如果這塊程式碼寫的合適,存檔容量不特別大,遺失存檔的概率並不高。因關閉電源而遺失存檔可以看成是巧合。
但是,不排除某些遊戲這部份程式碼可能不太講究,有三種可能:
- 某些遊戲存檔很大,寫入時間比較長。
- 某些遊戲在寫新檔案之前,為了減少占用先把舊存檔刪除。我估計比較古老的遊戲機會有這個問題。
- 把上面的步驟1寫到了步驟2、3之間,無謂增加了寫入時間,增大了出錯的概率。
按理來說,現代遊戲機的架構與電腦類似,硬碟容量、記憶體容量是比較寬裕的,遺失存檔的問題已經很不明顯了。
最後,還有一個次要原因:存取存檔的過程中玩家往往什麽事兒也不能做,那就讓閑著沒事兒的玩家看看這句苦口婆心的忠告唄——就跟現在的遊戲往往會在loading界面放一些遊戲tip或劇情背景讓玩家不那麽無聊一樣。