当您将游戏的更新版本发布到 Roblox 时,玩家不会立即从旧版本的游戏中移除。相反,您可以通过重启所有过时的服务器将玩家迁移到更新的版本。
如果您不重启服务器,玩家会随着运行旧版本的服务器最终空闲并关闭而过渡到游戏的新版本。这种方式不会造成干扰,但您的玩家群体可能会在较长时间内玩不同版本的游戏;如果您的基础玩家数据格式发生变化,您可能应该重启服务器。
对于时间敏感的更新,您可能更喜欢提前部署,将内容隐藏在 配置 后,然后更改配置值以发布您的新内容。
重启服务器
要为发布更新重启服务器,请执行以下操作:
- 转到 创作,并选择您想要重启服务器的游戏。
- 转到 配置 ⟩ 服务器管理。
- 选择您想要重启的地点。
- 点击 重启服务器。
- 在 确认服务器重启 对话框中:
- 选择以下重启选项之一或两个:
- 仅重启过时版本的服务器,以避免重启运行最新发布位置版本的服务器。
- 延迟服务器重启,以延迟服务器的关闭,并允许玩家在 1 到 60 分钟之间自我离开游戏,而不是被暂时断开。这也被称为服务器滞留。
- 点击 重启。
重启服务器后,Roblox 将:
- 停止所有指定关闭的服务器的匹配。通过点击 播放 按钮加入您游戏的玩家将不会与这些服务器匹配,但他们仍然可以通过接受邀请、传送或从他们的个人资料加入另一位用户来加入这些服务器。
- 如果您选择了 延迟服务器重启 选项,则等待配置的延迟时间。
- 自动将玩家传送到游戏的更新版本。所有在同一旧服务器上的玩家都会被发送到同一运行新版本的替代服务器。
服务器上的通知
当您启动延迟服务器重启时,受影响的服务器将触发 DataModel.ServerRestartScheduled 事件,带有以下参数:
- restartTime — 一个 DateTime。服务器预定关闭的最早时间。
- source — 对于您的发布更新,这将始终为 Enum.CloseReason.DeveloperUpdate。
- attributes — 一个可选的 JSON 对象,您可以用来提供有关重启的自定义信息,例如更新原因、紧急性等。
在您的服务器脚本中,您可以订阅此事件,以便为玩家提供有关即将重启的信息。您可能选择在用户界面中提供倒计时,提示玩家保存进度,或者在最合适的时间将他们传送到更新后的服务器。