當你將遊戲的更新版本發佈到 Roblox 時,玩家不會立即從舊版本的遊戲中被移除。相反,你可以通過重新啟動所有過時的伺服器來將玩家遷移到更新版本。
如果你不重新啟動伺服器,玩家會在運行舊版本的伺服器最終空置並關閉時過渡到遊戲的新版本。這個選項不會造成干擾,但你的玩家基礎可能會在較長時間內玩不同版本的遊戲;如果你的基礎玩家數據格式發生變化,你應該重新啟動伺服器。
對於時間敏感的更新,你可能更喜歡提前部署,將內容隱藏在 配置 後面,然後更改配置值以發佈你的新內容。
重新啟動伺服器
要重新啟動伺服器以進行更新:
- 前往 Creations 並選擇你想要重新啟動伺服器的遊戲。
- 在左側導航中,導航到 Configurations > Server management。
- 選擇你想要重新啟動的地點。
- 點擊 Restart Servers。
- 在 Confirm Server Restart 對話框中:
- 選擇以下一個或兩個重新啟動選項:
- 僅重新啟動舊版本的伺服器,以避免重新啟動運行最新發佈地點版本的伺服器。
- 延遲伺服器重新啟動,以延遲伺服器的關閉,並允許玩家在 1 到 60 分鐘之間的設定時間內自行離開遊戲,而不是被暫時斷開連接。這也被稱為伺服器流失。
- 點擊 Restart。
在你重新啟動伺服器後,Roblox:
- 停止所有指定為關閉的伺服器的配對。通過點擊 Play 按鈕加入遊戲的玩家將不會被配對到這些伺服器,但他們仍然可以通過接受邀請、傳送或從他們的個人資料中加入其他用戶來加入這些伺服器。
- 等待配置的延遲時間,如果你選擇了 延遲伺服器重新啟動 選項。
- 自動將玩家傳送到遊戲的更新版本。所有在同一舊伺服器上的玩家都會被送到運行新版本的同一替代伺服器。
伺服器上的通知
當你啟動延遲伺服器重新啟動時,DataModel.ServerRestartScheduled 事件將在受影響的伺服器上觸發,並帶有以下參數:
- restartTime — 一個 DateTime。伺服器預定關閉的最早時間。
- source — 對於你的發佈更新,這將始終是 Enum.CloseReason.DeveloperUpdate。
- attributes — 一個可選的 JSON 對象,你可以用來提供有關重新啟動的自定義信息,例如更新原因、緊急性等。
在你的伺服器腳本中,你可以訂閱此事件以向玩家提供即將到來的重新啟動的信息。你可能會選擇在你的 UI 中提供倒計時計時器,提示玩家保存他們的進度,或在最方便的時候將他們傳送到更新的伺服器。
當 Roblox 需要因基礎設施維護原因重新啟動伺服器時,伺服器也會收到通知。相同的 DataModel.ServerRestartScheduled 事件會觸發,source 為 Enum.CloseReason.RobloxMaintenance,attributes 為一個空字典。