CIVILIZATION VII

Od deweloperów: usprawnione generowanie map

Szac. czas czytania7 minutes, 9 seconds

Witajcie, fani Civ! Tu Ken Pruiksma – starszy inżynier ds. grafiki w studiu Firaxis Games. Dziś zdradzę Wam trochę zakulisowych nowości dotyczących generowania map.

Zaraz po premierze Civilization VII technika generowania map w grze kładła nacisk na zbalansowaną rozgrywkę przy jednoczesnym przestrzeganiu nowych reguł dotyczących takich elementów jak głębokie oceany i odległe krainy. Technika ta – która ma swoje korzenie w poprzednich odsłonach serii Civ – pozwalała tworzyć mapy w sposób sprawiedliwy, ale też przewidywalny, co mogło obniżać satysfakcję podczas fazy eksploracji (a przecież pierwsze „X” w nazwie gatunku „4X” oznacza eXploration, czyli eksplorację). Wyrażaliście opinię, że mapy często są bardzo powtarzalne, i przyznaliśmy Wam rację. 

Społeczność graczy mówiła też jasno i wyraźnie, że proste linie brzegowe między dwiema głównymi częściami mapy utrudniały czerpanie przyjemności z gry. Podczas grania w Civ mamy do czynienia z alternatywną historią Ziemi. Zatem gdy mapy nie oddają w sposób wiarygodny ziemskiej topografii, gra może nie spełniać oczekiwań graczy (poza pewnymi wyjątkami, takimi jak idealnie zbalansowane mecze wieloosobowe z lustrzanymi wersjami mapy).

Dlatego w aktualizacji 1.2.5 zdecydowaliśmy się na poważne zmiany. Chcieliśmy, aby generowanie map było bardziej naturalne i mniej powtarzalne, przy jednoczesnym zachowaniu balansu tam, gdzie ma to znaczenie. W związku z tym przygotowaliśmy dwa nowe typy map do wyboru: Kontynenty i wyspy (dwa duże kontynenty z wyspami) oraz Pangea i wyspy (jeden duży kontynent z wyspami). Oba typy map wykorzystują zupełnie nową technikę: generowanie map na podstawie diagramów Woronoja.

Before/After Comparison

Mapy na podstawie diagramów Woronoja

Jestem inżynierem ds. grafiki, co oznacza, że większość czasu spędzam na tworzeniu pięknych pikseli, choć zawsze miałem słabość do generowania proceduralnego i algorytmów, które napędzają grafiki. Dlatego kiedy nadarzyła się okazja, aby pomóc zespołowi ds. rozgrywki przy generowaniu map, nie mogłem się oprzeć.

Wpadłem na pomysł, aby dynamicznie generować obszary lądowe przy użyciu diagramów Woronoja i określonych reguł. Szybki test potwierdził, że jest to obiecująca metoda.

Bez zagłębiania się w szczegóły techniczne: technika Woronoja całkowicie zmienia nasze podejście do generowania map. Dotychczas mapy były tworzone przy użyciu szumu fraktalnego, co świetnie sprawdza się, gdy można zastosować tę technikę jednolicie na całej mapie. Metoda ta może jednak okazać się mało skuteczna w przypadku pewnych rodzajów rozgrywki. Diagramy Woronoja stanowią z kolei strukturę, na której można budować reguły. Dzięki temu mapy mogą pozostać organiczne, spełniając jednocześnie wymogi rozgrywki w Civ VII.

Omówię teraz działanie tej techniki.

  1. Rozmieszczamy losowo kilka punktów na mapie. Im więcej punktów rozmieścimy, tym wyższa będzie rozdzielczość mapy. Zaczniemy od niskiej rozdzielczości.
  2. Rysujemy linie wokół każdego z punktów, dzieląc mapę na „komórki”. W ten sposób otrzymujemy coś na kształt popękanego szkła.
  3. Wybieramy kilka komórek początkowych. Będą to zalążki płyt tektonicznych na mapie gry, przypominających płyty tektoniczne tworzące naszą Ziemię.
  4. Każda płyta powiększa się, obejmując kolejne komórki zgodnie z pewnymi możliwymi do skonfigurowania regułami – aż do zapełnienia całej mapy. Wszystkie płyty mają kierunek obrotu i ruchu. W ten sposób powstaje „skorupa” mapy, którą później wykorzystamy do kształtowania wzrostu kontynentów.
  5. Teraz możemy dodać znacznie więcej punktów, aby otrzymać wersję w wyższej rozdzielczości! Ponownie rysujemy linie w celu uzyskania efektu rozbitego szkła na płytach tektonicznych.
  6. Wybieramy kilka nowych punktów początkowych odpowiadających głównym lądom i ponownie je rozszerzamy, stosując własny zestaw konfigurowalnych reguł. Za pomocą tych reguł można np. kształtować wzrost lądów wzdłuż granic płyt tektonicznych (zwłaszcza gdy te zderzają się ze sobą), omijać bieguny i preferować określone szerokości geograficzne. Możemy tu również zastosować ograniczenia dopasowane do rozgrywki – na przykład takie, aby ojczyzna i odległe krainy były od siebie oddzielone głębokim oceanem.
  7. Następnie, zgodnie z ustawieniami mapy, możemy rozszerzać wyspy, symulować erozję wybrzeża, dodawać góry i wulkany oraz wprowadzać inne szczegóły. Wiele z tych kroków obejmuje ten sam zestaw reguł ogólnych, na podstawie których wcześniej rozmieszczaliśmy poszczególne elementy topograficzne.
  8. Po zakończeniu nakładamy siatkę heksagonalną, a w kolejnym kroku przekazujemy mapę do warstwy rozgrywki w celu określenia typów pól, generowanych dochodów, zasobów, lokalizacji początkowych itd.
Generation Process

W rezultacie mapy są znacznie bardziej zróżnicowane i wyglądają znacznie bardziej naturalnie. Na mapach mogą regularnie pojawiać się wzorce, które wcześniej były niemożliwe do uzyskania. Na przykład ojczyzna i odległe krainy mogą być położone na północ i południe względem siebie. Kontynenty mogą graniczyć ze sobą na długich odcinkach lub być połączone małymi przesmykami albo oddzielone morzami. Między kontynentem ojczystym a odległymi krainami może (ale nie musi) znajdować się łańcuch wysp! Wyspy mogą być skupione w jednym miejscu lub rozrzucone po całym obszarze. Mogą nawet się łączyć, tworząc „superwyspę” wielkości kontynentu!

Należy pamiętać, że celowo zmieniliśmy ustawienia tak, aby w około 95% przypadków generować „normalne” mapy (tj. mapy o naturalnym wyglądzie i standardowych zasadach rozgrywki). Oznacza to, że istnieje niewielkie prawdopodobieństwo pojawienia się bardzo dziwnych układów topograficznych. Chcieliśmy zachować ten aspekt losowości w Civ, który powoduje, że czasami trafiamy na dziwaczny początek rozgrywki lub całą dziwną mapę. Dlatego jeśli zdarzy się Wam taka mapa, koniecznie się tym pochwalcie!

Co najważniejsze, dzięki zastosowaniu tej techniki podczas eksploracji początkowej lokalizacji i najbliższych okolic gracz nie jest w stanie przewidzieć kształtu świata. Grając na nowych mapach, ponownie czułem ekscytację podczas eksploracji na początku gry, ponieważ nie miałem pojęcia, co pojawi się na sąsiednich polach!

Generation Process Generation Process

To dopiero początek

Po wydaniu aktualizacji 1.2.5 w grze pojawią się nowe mapy typu „Kontynenty i wyspy” oraz „Pangea i wyspy”, które będą wykorzystywać tę nową technikę. Pierwszy z tych typów będzie nowym ustawieniem domyślnym w meczach dla jednego gracza. Jeśli chcecie grać na starych mapach, będą one nadal dostępne pod oryginalnymi nazwami. Starsze mapy mogą być preferowane w trybie wieloosobowym, gdzie mniejsze zróżnicowanie pomaga zachować balans między graczami. 

To dopiero początek naszych prac nad zmianami map! Opisana wyżej technika powstała z myślą o personalizacji, rozbudowie i modach. W rezultacie, w miarę dalszego rozwijania tego systemu, możecie spodziewać się kolejnych rodzajów map, ulepszeń istniejących typów map oraz bardziej widocznych ustawień. Mapy na podstawie diagramów Woronoja są też oczywiście dostępne również dla moderów! W plikach gry znajdziecie skrypty i ustawienia konfiguracji potrzebne do generowania map (wraz z konkretnymi ustawieniami, które stosowaliśmy w przypadku oficjalnych map). Jesteśmy bardzo ciekawi, jak wykorzystacie te nowe możliwości przy tworzeniu nowych typów map.

Chcielibyśmy też zobaczyć mapy wylosowane przez Was w grze! Koniecznie publikujcie je w mediach społecznościowych lub na oficjalnym kanale Civ na Discordzie. Bardzo się cieszymy z nowych zmian i mamy nadzieję, że Wam się spodobają. Już wkrótce kolejne aktualizacje map. Do tego czasu życzymy przyjemnej eksploracji!