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

XBOX的「快速恢復(Quick Resume)」是怎麽實作的?Windows系統PC有可能實作嗎?

2023-11-24遊戲

PC如果是xbox框架內遊戲完全可以實作。如果用過windows hyper-v虛擬機器的玩家都知道有個掛起虛擬機器的功能,就是把虛擬機器記憶體寫入硬碟,然後關閉虛擬機器,類似window休眠功能。Xbox出於防破解需要,從one時代開始遊戲都執行在專門為圖形最佳化的hyper-v虛擬機器中。隨著SSD的普及,讀寫速度已經來到每秒GB的量級,series的SSD可以達到2.4GB/s左右的原始讀寫速度,這樣掛起虛擬機器理論上5GB左右的記憶體只需要2秒即可完全寫入SSD,恢復一個遊戲速度則更快。

對於series和one遊戲,遊戲記憶體最高限制是5GB,但是一般都不會達到最大值,有些休閑遊戲或360時代的遊戲可能只需要幾百MB,所以根據遊戲的大小可掛起的遊戲數量從3個到12個不等。理論上SSD空間容量夠大可以掛起任意多個,但是SSD作為儲存空間還要用於安裝遊戲和其他套用,所以不是無限的。這裏以series s系列舉例,微軟劃分出一個17GB的Temp Content分區,主要就是用來存放Quick Resume臨時檔和索引。

除了遊戲記憶體最高5GB的限制,還有視訊記憶體部份。由於是統一記憶體架構,視訊記憶體是系統動態分配的,對於series x系列在高質素模式下視訊記憶體占用可能會接近10GB,但是這部份視訊記憶體不會存放到掛起檔中,透過xbox快速架構,直接由GPU在記憶體部份恢復後直接從SSD遊戲安裝資源中讀取並快速解壓到視訊記憶體中,解壓速度最快可以達到4.8GB/s,這部份速度非常快,1-2s左右時間即可完成。對於大型遊戲來說,視訊記憶體占用非常高,在快速恢復後顯示畫面的一瞬間,玩家可能會看到螢幕畫面短暫的停頓,這部份就是重新載入遊戲圖形資源到視訊記憶體的時間。對於視訊記憶體使用較小的遊戲來說,這部份時間可以忽略不計,如2D遊戲基本察覺不到。

當玩家切換到新遊戲時,系統會顯示啟動遊戲的歡迎螢幕,同時將當前執行遊戲的記憶體置換到Temp Content分區的FastResume.xvd檔中,該過程根據遊戲記憶體占用情況會持續1-3秒左右。然後系統從FastResumeMetadata.xvd索引中尋找是否有新啟動遊戲的掛起記錄,如果有則執行快速恢復,時間1-2秒。這兩部份時間加和就是玩家從切換遊戲到遊戲畫面出現,遊戲歡迎螢幕的停留時間共計1-5秒左右。

目前QuickResume非常適合單機玩家,因為不存在和伺服器交換數據,出錯概率很小,但是對於網絡遊戲玩家有可能由於與伺服器同步造成問題,體驗有待完善。根據國外使用者玩家的反饋,微軟有可能會將是否啟動QuickResume的控制權交還給玩家自行控制。

QuickResume功能由於存在對硬件SSD的寫入消耗,也引起少數玩家的爭議。以series s 512GB版本為例,按照sn530的500次擦寫壽命估算,可以進行5-10萬次的快速恢復,不過這個數量已經可以完全滿足series的生命周期。