Kiedy publikujesz zaktualizowaną wersję gry na Roblox, gracze nie są natychmiast usuwani ze starych wersji gry. Zamiast tego możesz przenieść graczy do zaktualizowanej wersji, restartując wszystkie swoje przestarzałe serwery.
Jeśli nie zrestartujesz serwerów, gracze przechodzą do nowej wersji gry, gdy serwery działające na starych wersjach ostatecznie się opróżnią i wyłączą. Ta opcja jest nieinwazyjna, ale twoja baza graczy może grać w różne wersje gry przez dłuższy czas; jeśli zmienia się format danych graczy, powinieneś prawdopodobnie zrestartować serwery.
W przypadku aktualizacji wrażliwych na czas, możesz woleć wdrożyć wcześniej, ukryć zawartość za pomocą konfiguracji, a następnie zmienić wartość konfiguracji, aby wydać nową zawartość.
Restartowanie serwerów
Aby zrestartować serwery w celu wydania aktualizacji:
- Przejdź do Tworzenia i wybierz grę, dla której chcesz zrestartować serwery.
- W lewym menu nawigacyjnym przejdź do Konfiguracje > Zarządzanie serwerami.
- Wybierz miejsca, które chcesz zrestartować.
- Kliknij Restartuj serwery.
- W oknie dialogowym Potwierdź restart serwera:
- Wybierz jedną lub obie z następujących opcji restartu:
- Restartuj tylko serwery z przestarzałymi wersjami, aby uniknąć restartowania serwerów, które działają na najnowszej opublikowanej wersji miejsca.
- Opóźnij restart serwera, aby opóźnić zamknięcie serwerów i dać graczom ustalony czas od 1 do 60 minut na opuszczenie gry samodzielnie, zamiast być tymczasowo rozłączonym. Jest to również znane jako "bleed-off" serwera.
- Kliknij Restartuj.
Po zrestartowaniu serwerów, Roblox:
- Zatrzymuje wszystkie dopasowania do serwerów przeznaczonych do zamknięcia. Gracze, którzy dołączają do twojej gry, klikając przycisk Graj, nie będą dopasowywani do tych serwerów, ale mogą nadal do nich dołączyć, akceptując zaproszenia, teleportując się lub dołączając do innego użytkownika z ich profilu.
- Czeka na skonfigurowany czas opóźnienia, jeśli wybrałeś opcję Opóźnij restart serwera.
- Automatycznie teleportuje graczy do zaktualizowanej wersji gry. Wszyscy gracze na tym samym starym serwerze są wysyłani do tego samego serwera zastępczego działającego na nowej wersji.
Powiadomienia na serwerach
Kiedy uruchamiasz opóźniony restart serwera, zdarzenie DataModel.ServerRestartScheduled zostanie wywołane na dotkniętych serwerach z następującymi argumentami:
- restartTime — DateTime. Najwcześniejszy czas, w którym serwer jest zaplanowany do zamknięcia.
- source — Zawsze będzie to Enum.CloseReason.DeveloperUpdate dla twoich opublikowanych aktualizacji.
- attributes — Opcjonalny obiekt JSON, którego możesz użyć do dostarczenia niestandardowych informacji o restarcie, takich jak powód aktualizacji, pilność itp.
W swoich skryptach serwerowych możesz subskrybować to zdarzenie, aby dostarczyć graczom informacje o nadchodzącym restarcie. Możesz zdecydować się na dostarczenie timera odliczającego w swoim interfejsie użytkownika, zachęcić graczy do zapisania postępów lub teleportować ich do zaktualizowanych serwerów w najdogodniejszym czasie.
Serwery będą również powiadamiane, gdy Roblox będzie musiał zrestartować serwery z powodów związanych z utrzymaniem infrastruktury. To samo zdarzenie DataModel.ServerRestartScheduled zostanie wywołane, z source jako Enum.CloseReason.RobloxMaintenance i attributes jako pusty słownik.