Witajcie Paxianie,
Jeśli chciałeś wiedzieć, jak to możliwe, że tak wiele osób bawi się w tym samym świecie, jaka jest różnica między fragmentem a serwerem, ilu graczy może znajdować się w tej samej strefie przeczytaj poniższy FAQ.
Wprowadzenie do fragmentów, serwerów i stref Pax Dei
Jak zapewne wiecie, Świat Pax Dei składa się z kilku regionów (Gallia, Anatolia, Gothia…) podzielonych na kilka prowincji (Ancien, Merrie, Kerys…).
Prowincja to bardzo duży obszar geograficzny z kilkoma dolinami przeplatanymi dużymi pasmami górskimi. W określonych prowincjach zwanych prowincjami Heartland mamy wiele dolin, które nazywamy dolinami domowymi i to właśnie w nich możesz zbudować swój dom. I oczywiście masz także ciemne lochy i jaskinie, które znajdują się głównie pod powierzchnią tych prowincji. Ale w jaki sposób te cechy geograficzne są powiązane z rzeczywistymi serwerami fizycznymi i jak wpływają na sposób gry?
Światy/Odłamki
Pierwszym wyborem, przed którym staniesz, tworząc nową postać w Pax Dei, będzie wybór konkretnej instancji Świata, zwanego także powszechnie Odłamkiem (Shardem). Mimo że świat Pax Dei jest rozległy pod względem geograficznym, może pomieścić w sumie tylko określoną liczbę graczy. Dlatego też zarządzamy wieloma kopiami świata, z których każda jest identyczna, ale całkowicie niezależna od pozostałych pod względem faktycznych mieszkańców. Każdą taką kopię nazywamy odłamkiem.
Szacujemy, że zaczniemy od maksymalnej populacji w jednym fragmencie wynoszącej około 7000 graczy. Pojedynczy odłamek jest w całości uruchamiany w jednym fizycznym centrum hostingowym w chmurze. Będziemy uruchamiać odłamki w różnych regionach dostępności na całym świecie, np. w Ameryce Północnej i Europie.
Czynniki, które będą miały głównie wpływ na wybór odłamka, będą zatem następujące:
- Opóźnienie głównego komputera gry
- Dostępność miejsc, ponieważ niektóre odłamki mogą być zajęte
- Odłamki, w których gra już wielu znajomych
Serwery Strefy
Z obliczeniowego punktu widzenia odłamek składa się z dużego zbioru różnych serwerów i usług w chmurze, z których każdy pełni określoną funkcję. Najliczniejsze, to tak zwane serwery strefowe. Dzieje się tak dlatego, że symulacja całego świata jest zbyt wymagająca obliczeniowo, aby mogła być obsłużona przez pojedynczą instancję sprzętu. Dlatego jest podzielona na mniejsze jednostki obliczeniowe, które nazywamy strefami. Serwer jednostrefowy to Dedykowany Serwer Unreal, który obsługuje symulację konkretnej części świata, np. jednej domowej doliny.
W dowolnym momencie jako gracz automatycznie łączysz się z serwerem strefy. Za każdym razem, gdy przekroczysz granicę strefy, połączenie zostanie automatycznie przeniesione do sąsiedniego serwera strefy. Nazywamy to przejściem strefowym. W większości przypadków przejścia te powinny przebiegać płynnie, z wyjątkiem kilku ważnych wyjątków:
- Przejścia między różnymi prowincjami lub do lochów będą zazwyczaj wiązać się z pewnym czasem ładowania, gdy klient ładuje zupełnie nową mapę
- Obecnie nie widać innych graczy ani NPC poza granicami stref
Instancje strefy
Jak wspomniano powyżej, serwer strefowy to dedykowany serwer Unreal obsługujący symulację małej części świata. W końcu serwer strefowy może zostać przeciążony przez zbyt dużą liczbę graczy. Obecnie limit ten wynosi około 150 graczy, ale oczekuje się, że ulegnie on zmianie wraz z lepszym sprzętem i optymalizacjami. Aby uniknąć konieczności zamykania stref w przypadku osiągnięcia maksymalnej liczby graczy, np. w godzinach szczytu, zamiast tego wprowadzamy koncepcję instancji stref. Mechanizm polega na tym, że gdy przekroczymy maksymalną liczbę graczy w strefie, rozdzielamy całą grupę graczy w obrębie danej granicy strefy pomiędzy dwie lub więcej oddzielnych instancji strefy. Każda instancja strefy faktycznie uruchamia oddzielny serwer strefy dla tej samej strefy, ale gracze w danej instancji strefy nie mogą wchodzić w interakcję z graczami w innej instancji.
To oddzielenie dotyczy tylko bezpośrednich interakcji graczy, ale między innymi trwałość budynków działa między instancjami, co oznacza, że budynki są widoczne dla wszystkich. Gdy poziom populacji strefy spadnie, instancje łączą się ze sobą. W przypadku normalnego działania, po osiągnięciu dojrzałości fragmentu, instancja powinna mieć miejsce tylko w wyjątkowych przypadkach, ale na początku może się zdarzać często.
Backend
Oprócz serwerów strefowych reszta backendu zajmuje się koordynacją między serwerami strefowymi, logiką gier transakcyjnych, komunikacją i trwałością. Zdarzają się sytuacje, w których klienci łączą się bezpośrednio z tym backendem poprzez bezpieczne API, np. w celu uwierzytelnienia. Mimo to w większości przypadków serwery strefowe komunikują się z backendem w celu uzyskania określonych usług, takich jak obsługa zapasów, zarządzanie zasobami itp.
Cała ta infrastruktura jest następnie wdrażana, koordynowana i skalowana za pomocą architektury Kubernetes działającej na infrastrukturze chmury.