MMORPG, niektóre MOBA, takie jak League of Legends, a nawet StarCraft 2 zazwyczaj zmuszają cię do wybrania serwera. Zazwyczaj są to USA, UE i SEA, w MMORPG wiele na lokalizację. Widzę, że było to konieczne kilka lat temu, ale teraz wraz z pojawieniem się AWS i podobnych ofert, które pozwalają płynnie skalować „moc serwera”, dlaczego wciąż istnieją osobne serwery?
Mój tok myślenia jest taki (na przykładzie Star Wars: The Old Republic): - Zawsze jesteś na jednej planecie, odizolowanej „instancji” od innych planet. - Jeśli na jednej planecie jest zbyt wielu ludzi, SW: TOR tworzy nową instancję świata i umieszcza w niej graczy. - Jeśli opuścisz instancję world / switch, pojawi się ekran ładowania
Dlaczego więc gra nie może stworzyć instancji dla tej planety? Ta instancja (i tylko ta) ma twoje bieżące dane w swojej bazie danych i zarządza x odtwarzaczami. Jak tylko gracze x-50 znajdą się w tej instancji, zostanie uruchomiony nowy serwer i pojawią się nowe osoby w tej instancji. 50 miejsc jest zarezerwowanych na przejście do twojej grupy itp.
Może istnieć instancja dla wszystkich trzech głównych regionów, aby utrzymać niskie opóźnienie, ale pozwoliłoby ci nadal grać z innymi graczami z np. SEA, jeśli możesz żyć z opóźnieniem 140 ms (co nadal nie jest niczym).
Za każdym razem, gdy zmieniasz instancję lub podróżujesz do innego świata, twój obecny serwer przekazuje wszystkie dane do następnego serwera, upewniając się, że nie potrzebujesz jednej dużej scentralizowanej bazy danych. Nadal możesz mieć taki, który okresowo pobiera aktualizacje do celów analizy.
Gdy się wylogujesz lub serwer utraci połączenie, dane mogą być następnie przesłane do ogromnej bazy danych zoptymalizowanej do przechowywania danych. Serwery instancji można następnie zoptymalizować pod kątem wysokiej przepustowości.
Czy jest jakiś konkretny powód, dla którego to nie zadziała? Czy brakuje mi innych problemów?