Artykuł opublikowany w materiałach konferencyjnych Krajowej Konferencji Wytwarzania Gier Komputerowych WGK, Gdańsk 6-8 września 2013. I miejsce w kategorii BEST PAPER. METODA GENERACJI DWUWYMIAROWYCH MAP ZRÓŻNICOWANEGO TERENU NA PRZYKŁADZIE GRY STRATEGICZNEJ GIZARMA Streszczenie Plansze używane w komputerowych grach strategicznych często przybierają formę map środowiska geograficznego o różnym stopniu uogólnienia. Celem metody prezentowanej w artykule jest odwzorowanie w dwuwymiarowym widoku kartograficznym urozmaiconych form krajobrazu przypominających spotykane w rzeczywistości. Proponowane rozwiązanie polega na zastosowaniu iteracyjnego algorytmu podziału płaszczyzny na nieregularne pola, oraz zdefiniowaniu tonalnymi obrazami rastrowymi natężenia poszczególnych składników środowiska. Metoda została zastosowana do generacji plansz dla gry strategicznej Gizarma. Potwierdziło to skuteczność metody i pozwala na dalszy rozwój w oparciu o wyniki eksperymentów i informacje zwrotne od użytkowników. 1. WSTĘP Dwuwymiarowe mapy o zróżnicowanym znaczeniu i celu występują w licznych grach komputerowych. Podobnie jak mapy geograficzne, są płaskim odwzorowaniem wielowymiarowego świata (w tym przypadku - świata gry) za pomocą informacji podanych w formie symboli graficznych. W części gier strategicznych mapa stanowi jednocześnie interfejs obsługi. Zawiera wtedy zwykle układ niepodzielnych pól - regionów, do których przypisane są jednostki i atrybuty. Zastosowanie w celu wytworzenia takiego układu teselacji regularnej foremnej, złożonej najczęściej z kwadratów, rombów lub sześciokątów foremnych, umożliwia łatwe wytwarzanie map, ale nadaje im uproszczony wygląd
2 i powoduje wyróżnienie niektórych kierunków poruszania się po mapie 1. Przykładami regularnego kafelkowania są mapy do gier z serii Civilization [1], Panzer General [2]. Wytworzenie układu nieregularnych pól jest trudniejsze, ale pozwala uzyskać mapy lepiej oddające naturalne rozmieszczenie składników środowiska. Nieregularny układ regionów zastosowano na przykład w mapach do serii gier Europa Universalis [3]. W artykule przedstawiono metodę stworzoną na potrzeby gry Gizarma, pozwalającą na generację dwuwymiarowych map z zastosowaniem nieregularnej teselacji płaszczyzny oraz definicji parametrów środowiska. Uzyskane mapy spełniają wymagane funkcje w grze, a jednocześnie przypominają wyglądem tradycyjne mapy geograficzne. Generacja nie przebiega w czasie rzeczywistym; efektem działania metody jest zapis kompletnej dwuwymiarowej mapy. W związku z tym artykuł nie porusza charakterystycznych dla trójwymiarowych modeli terenu problemów wizualizacji mapy i optymalizacji jej renderowania, rozwiązywanych przez algorytmy takie jak ROAM [4], Quadtree [5], VDPM [6], Clipmaps [7] i inne. Metoda działa dwuetapowo. Najpierw obszar mapy dzielony jest na nieregularne regiony. Następnie, na podstawie wsadowych tonalnych bitmap definiujących parametry klimatyczne (takie jak temperatura, wysokość nad poziomem morza, opady itp.), generowany jest rozkład zróżnicowanych terenów (np. lasów liściastych, lasów iglastych, łąk, pagórków, równin, pustyni, oaz), inspirowany diagramem Whittakera [8]. Rozwiązania oparte o symulację klimatu pojawiają się na przykład w grach Dwarf Fortress [9], Minecraft [10], czy w metodzie Polygon Map Generation [11], jednak w tych przypadkach parametry klimatu losowane są przez generatory. W metodzie opisanej w artykule rozkład parametrów klimatu dostarczany jest przez twórcę mapy, co pozwala w dużym stopniu kontrolować uzyskiwany efekt. 2. KONCEPCJA MAPY DO GRY GIZARMA Metoda autorstwa Michała Rokickiego została opracowana podczas prac nad projektem Gizarma [12]. Celem projektu jest stworzenie gry strategicznej typu 4X [13] online dla wielu graczy, osadzonej w świecie przypominającym europejskie średniowiecze. Ważnym aspektem jest odzwierciedlenie procesów przetwórczych i społecznych występujących w epoce. Z tego względu symbole użyte do wizualizacji informacji są stylizowane na podobieństwo do średniowiecznych map. 2.1 Mapa - wymagania Mapy wykorzystywane w grze Gizarma muszą spełniać następujące wymagania: Możliwość eksploracji (gracz widzi naraz tylko fragment mapy). Format zapisu umożliwiający wyświetlanie części mapy bez wczytywania całości. 1) Przykładowo, przy zastosowaniu siatki prostokątnej przejście o jedną kratkę na północ powoduje przesunięcie o 1, natomiast przejście na północny wschód o 2
Metoda generacji dwuwymiarowych map zróżnicowanego terenu na przykładzie... 3 Modyfikowalność w trakcie gry: zmiana widocznych symboli graficznych w wyniku wycięcia lasu, budowania ulepszeń terenu, miast, dróg i innych obiektów, wizualizacja stref wpływów graczy oraz ruchów jednostek. Struktura złożona z atomowych regionów. Duża liczba terenów z różnych stref klimatycznych, rozmieszczonych w realistyczny sposób. Wygląd przypominający tradycyjne mapy geograficzne. 2.2 Układ regionów Region jest niepodzielnym fragmentem mapy opisanym przez określone parametry. Układ regionów na potrzeby mapy do komputerowej gry strategicznej może być utworzony za pomocą teselacji regularnej lub nieregularnej. Wymagania wobec map używanych w Gizarmie, szczególnie podobieństwo do map geograficznych, są lepiej spełnione z zastosowaniem teselacji nieregularnej. Przy ręcznym tworzeniu teselacji nieregularnej dla planszy złożonej z wielu tysięcy regionów podobnej wielkości, koszt wytworzenia planszy stałby się bardzo wysoki. Z tego powodu opracowany został algorytm automatyzujący nieregularną teselację płaszczyzny, opisany w rozdziale 3. 2.3 Teselacja powierzchni mapy założenia Norma PN-EN-ISO19123 [14] definiuje teselację jako "podział przestrzeni na zbiór sąsiadujących ze sobą podprzestrzeni o tym samym wymiarze co dzielona przestrzeń". W opisywanej sytuacji fragment przestrzeni dwuwymiarowej dzielony jest na zbiór jednospójnych obszarów, zwanych dalej regionami. Regiony powinny spełniać następujące warunki: Powinny mieć nieregularny kształt. Nie mogą być przecięte przez wyznaczone krzywe (np. rzekę albo linię brzegową). Mogą znajdować się tylko wewnątrz zdefiniowanego obszaru. Ich pola powierzchni muszą być porównywalnej wielkości. Liczba sąsiadów każdego regionu nie może być zbyt duża. Każdy region powinien zawierać koło o określonym promieniu, umożliwiającym czytelne graficzne oznaczenie przypisanych mu atrybutów. 3. METODA GENERACJI MAPY Proces wytworzenia mapy składa się z dwóch etapów: 1. Teselacja - obszar mapy dzielony jest na regiony; automatycznie na podstawie obrazu wsadowego przez algorytm opisany w dalszej części artykułu (Rys. 1).
4 Rys. 1. Generacja regionów 2. Kompilacja - generacja mapy na podstawie następujących obrazów wsadowych: A) mapa regionów utworzona w poprzednim kroku generacji, B) mapa określająca występowanie lądów, mórz i rzek, C) tonalne obrazy rastrowe definiujące warunki klimatyczne, D) tonalne obrazy rastrowe natężenia występowania zasobów specjalnych, E) zasoby graficzne: tekstury podłoża, zestaw sprajtów z symbolami obiektów terenowych (jak drzewa, pagórki, surowce naturalne), obraz z uzupełnieniami graficznymi do tła mapy (Rys. 2). Rys. 2. Przykładowy zestaw obrazów wsadowych i rezultat kompilacji 3.1. Teselacja obszaru mapy Algorytm początkowo losowo rozmieszcza na planszy zalążki przyszłych regionów, następnie uruchamia ich stopniowy wzrost (Rys. 3). Plansza jest reprezentowana jako tablica dwuwymiarowa o rozmiarze równym rozmiarowi obrazu wsadowego w pikselach. Komórki planszy mogą przyjmować 3 stany: dostępne, zablokowane, niedostępne. Regiony podczas wzrostu zajmują tylko komórki
Metoda generacji dwuwymiarowych map zróżnicowanego terenu na przykładzie... 5 dostępne. Stan komórek ustawiany jest na podstawie przygotowanego obrazu wsadowego. W obszarze, gdzie według zamysłu twórcy nie ma być regionów (obramowanie mapy) komórki mają stan niedostępny. Komórki tworzące zaplanowane linie nieprzekraczalne dla regionów (np. rzeki, linia brzegowa) otrzymują stan zablokowany (w postprocesie stan ten zmieniany jest na dostępny). Wszystkie pozostałe komórki mają stan dostępny. Dodatkowo losowany jest rozkład parametru zwanego dalej cukrem2. Wysoka wartość cukru w danej komórce planszy sprawia, że jest ona chętniej zajmowana przez regiony. Podczas wzrostu regiony mogą zajmować nowe niezajęte terytoria lub odbierać teren innym regionom. O kierunku rozwoju regionów decyduje heurystyka. Rys. 3. Wzrost regionów 3.1.1. Heurystyka Dany jest region N oraz komórka k, która nie należy do N, ale z nim sąsiaduje. Aw, Ao, Ad, AC, B są stałymi Nw stosunek liczby komórek zajętych przez region N w promieniu R od k do liczby wszystkich komórek w promieniu R. No stosunek liczby komórek zajętych przez regiony inne niż N w promieniu R od k do liczby wszystkich komórek w promieniu R. d odległość punktu k od zalążka regionu C(k) wartość cukru w punkcie K UNUSED(k) jeżeli punkt k nie jest zajęty przez żaden region wynosi 1, w przeciwnym przypadku 0 H (N, k )= Aw N w + Ao N o + Ad d +C ( k ) AC +UNUSED ( k ) B (3.1) Przyjmuje się R = 5, stałe dobrane empirycznie przy generacji podziału wynoszą: Aw =1, Ao= 1, Ad = 0.05, AC =0.8, B=0.8 2) (3.2) Nazwa cukier wynika z inspiracji wzrostem kolonii mikroorganizmów walczących o pożywienie.
6 3.1.2. Algorytm Zdefiniowany jest współczynnik Aagresja określający, jak często rywalizujące regiony będą odbierać sobie komórki. Aby możliwa była rywalizacja, wszystkie komórki zajęte przez regiony muszą podczas działania algorytmu mieć stan dostępny. Przy generacji podziału przyjmuje się Aagresja = 0,80. 1. Losowany jest rozkład początkowy zalążków regionów. Odległość między dwoma dowolnymi zalążkami musi być większa od wartości krytycznej. 2. Losowany jest rozkład cukru na planszy 3. Dla każdego regionu N: i. Spośród wszystkich komórek brzegowych N znajdź komórkę k o najwyższej ocenie. ii. Jeżeli komórka k jest dostępna, zajmij ją iii. Jeżeli komórka k należy do N' zajmij komórkę jeżeli: H (N ', k )< H ( N, k ) Aagresja 4. 5. (3.3) Sprawdź, czy obszar poszczególnych regionów pozostał jednospójny. Jeżeli jakiś region się podzielił, znajdź część tego regionu, nie zawierającą punktu początkowego regionu, następnie zwolnij wszystkie komórki tej części. Idź do 3 aż do osiągnięcia warunku stopu. 3.1.3 Warunek stopu Iteracyjny algorytm podziału na regiony nie zawsze jest zbieżny. Często zdarzają się oscylacje. Są to zjawiska lokalne, zazwyczaj dotyczą pojedynczych pikseli. Jako warunek stopu przyjmuje się odpowiednio małą liczbę zmian właściciela komórek w ciągu ustalonej liczby ostatnich iteracji, dodatkowo przyjmuje się maksymalną liczbę iteracji. W implementacji algorytmu przyjmuje się, że w ciągu ostatnich 50 iteracji liczba zmian nie może przekroczyć 50*0,001*N, gdzie N oznacza liczbę regionów. 3.1.4 Postproces W pierwszym przebiegu algorytm dokonujący podziału działa tylko na komórkach dostępnych. Komórki zablokowane nie zostają zajęte, więc regiony odpowiadające terenom morskim nie sąsiadują z regionami lądowymi (oddzielone są linią brzegową). Nie sąsiadują ze sobą także regiony rozdzielone rzeką. Aby to poprawić, uruchamiany jest postproces o następujących krokach: 1. Wszystkie komórki o statusie zablokowany zmieniają status na dostępny. 2. Ponownie uruchamiany jest algorytm podziału, ale tym razem regiony mogą zajmować wyłącznie komórki niezajęte wcześniej przez inne regiony. 3. Warunek stopu postprocesu jest osiągnięty, gdy wszystkie dostępne komórki zostają zajęte przez regiony.
Metoda generacji dwuwymiarowych map zróżnicowanego terenu na przykładzie... 7 3.1.5 Wynik podziału Podział generowany na potrzeby map w Gizarmie tworzył średnio 99% regionów poprawnych, spełniających wymagania wymienione w podrozdziale 2.3. Uzyskane regiony mają urozmaicone kształty, przypominające struktury spotykane w przyrodzie. Algorytm dokonujący teselacji nie jest jednak niezawodny. Około 1% wygenerowanych regionów nie spełnia wymagań. Najczęstsze wady, to zbyt duży lub zbyt mały rozmiar regionu, albo kształt nie pozwalający na wpisanie weń koła o ustalonym promieniu. Jakość podziału jest w znacznym stopniu zależna od warunków początkowych, zdefiniowanych we wsadowym obrazie, szczególnie od stopnia skomplikowania krzywych nieprzekraczalnych dla regionów. Regiony nie spełniające wymagań poprawiane są ręcznie za pomocą edytora grafiki rastrowej. 3.2. Kompilacja mapy Kompilacja mapy przebiega w następujących etapach: 1. Parsowanie podziału na regiony oraz określenie ich sąsiedztwa na podstawie odpowiedniego obrazu wsadowego. 2. Podział regionów na morskie i lądowe. 3. Symulacja klimatu i generacja terenu na jego podstawie. Parametry klimatu określone są przez wsadowe obrazy tonalne. 4. Losowanie występowania terenów specjalnych. 5. Generacja rozkładu sprajtów użytych podczas renderowania mapy. 6. Renderowanie tekstur tła mapy. 7. Zapis przygotowanej mapy. Istotne jest stworzenie realistycznego rozkładu terenu obejmującego kilka stref klimatycznych (punkt 3). Zadanie nie jest trywialne ze względu na wielość zróżnicowanych rodzajów terenu, mogących wystąpić na planszy (obecnie stosowanych jest 65 rodzajów terenu), oraz ilość regionów wynoszącą do kilkudziesięciu tysięcy. W proponowanym podejściu, zamiast definiować teren w pojedynczych regionach, twórca mapy definiuje rozłożenie parametrów klimatycznych i geograficznych na obszarze całej mapy za pomocą obrazów wsadowych. Kompilator na ich podstawie generuje symulację klimatu i przypisuje poszczególnym regionom określony rodzaj terenu. 3.2.1. Określenie celu Pożądany rozkład powinien spełniać następujące wymagania: 1. Rozkład terenu ma być realistyczny. Przykładowo: niepożądanym zjawiskiem byłby region tundry otoczony regionami pustynnymi. 2. Wygenerowany teren powinien tworzyć nietrywialne struktury przy różnych zbliżeniach. Powinien być samopodobny, tak jak ma to miejsce w naturze [15] [16]. Oczywiście, ze względu na dyskretny charakter wygenerowanego rozkładu, w bardzo dużym zbliżeniu będzie on trywialny. 3. Twórca mapy musi mieć kontrolę nad rozkładem.
8 3.2.2. Heurystyka W rzeczywistym świecie duży wpływ na charakter terenu mają warunki geograficzne i klimatyczne, takie jak wysokość nad poziomem morza, średnia temperatura, średnie opady roczne [7] [17]. Wprowadzono heurystykę, która pozwala oszacować, jaki teren przy zadanych warunkach klimatycznych w danym regionie jest najbardziej prawdopodobny: 2 H (T,C 1, C 2,...,C N )= w (T,i ) e gdzie: 0.5 ( m(t,i ) C i ) s(t,i ) (3.4) Ci wartość danego parametru klimatycznego w danym regionie w(t,i) waga parametru i dla terenu T m(t,i) wartość oczekiwana parametru i dla terenu T s(t,i) odchylenie standardowe parametru i dla terenu T Heurystyka jest sumą ważoną funkcji Gaussa o różnych parametrach rozkładu, w którym pominięto czynnik normalizujący. Dla każdego regionu heurystyka liczona jest dla wszystkich możliwych terenów. Ostatecznie wybierany jest teren, dla którego heurystyka miała największą wartość. 3.2.3. Analiza rezultatu Przy realistycznie dobranych współczynnikach rozkładu dla heurystyki oraz rozkładach klimatycznych określonych obrazami wsadowymi (wysokość nad poziomem morza, temperatura, wilgotność, żyzność gleby, stopień zalesienia), uzyskany rozkład terenu spełnia wymagania z podrozdziału 3.2.1. Poniżej omówienie wszystkich postulatów: 1. Na wygenerowanej mapie rozkład terenu przypomina spotykany w rzeczywistości. Tworzą się strefy klimatyczne, w których dominują pewne rodzaje terenu i roślinności. Pomiędzy nimi znajdują się strefy przejściowe. 2. Zastosowanie zestawu map klimatycznych z wpływem wszystkich parametrów klimatu na ostateczny rozkład terenów pozwoliło uzyskać złożone struktury, zmienne przy różnych zbliżeniach (Rys. 4). Rys. 4. Widoczność różnych struktur terenu na mapie "Cottoniana" w stopniowym powiększaniu
Metoda generacji dwuwymiarowych map zróżnicowanego terenu na przykładzie... 3. 9 Przy dużym oddaleniu najbardziej widoczny jest wpływ łagodnego rozkładu temperatury. Zalesienie zmienia się bardzo gwałtownie, więc wpływ tego parametru jest widoczny przy dużym zbliżeniu. Wagi rozkładu można dobrać tak, żeby pewne parametry miały decydujący wpływ na wygenerowany teren. Na przykład przy kompilacji map do Gizarmy waga odpowiadająca wysokości jest o rząd wielkości większa niż innych parametrów. Duże różnice w doborze wag tworzą hierarchię ważności parametrów. Twórca mapy jest w stanie przewidzieć wpływ zmian parametrów na ostateczny efekt. 4. PRAKTYCZNE ZASTOSOWANIE METODY Metodę zastosowano do wytworzenia czterech różnych map dla gry Gizarma. Do teselacji powierzchni za pomocą algorytmu, opisanego w rozdziale 3.1.2, używany jest program "Bakterie". Tablica 4.1 przedstawia przykładowe wyniki podziału na regiony w kolejności map od najmniejszej do największej, uzyskane na komputerze z procesorem Intel Core 2 Quad Q9400 @2,66 GHz i 8GB RAM, system Microsoft Windows Server 2008 Small Business, 64-bitowy. Ilość iteracji algorytmu w każdej próbie wynosiła 6000. Na potrzeby testu wykonano po 5 prób dla każdej mapy. Tablica 4.1 Generacja regionów Dwie wyspy wielkość w pikselach przeciętna ilość regionów uzyskanych w wyniku działania programu Bakterie przeciętny czas generacji regionów 1024 x 1024 XKCD Cottoniana Europa 3582 x 3269 4215 x 5001 6000 x 5720 245 2905 5891 8750 2min 12s 40min 24s 85min 15s 136min 38s W praktyce generację regionów dla danej mapy wykonuje się jeden raz podczas procesu tworzenia mapy. Czas generacji rzędu kilku godzin jest całkowicie akceptowalny. Uwzględnione w tabeli mapy "Cottoniana" i "Europa" mają wielkość, pozwalającą na jednoczesną grę na każdej z nich kilkunastu osób, co jest w pełni wystarczające do prowadzenia złożonych rozgrywek. Po testowaniu kolejnych map za pomocą rozgrywania na nich gier i oceniania rezultatów przez grupę 17 testerów następował rozwój metody i narzędzi używanych w jej implementacji. Testerzy rekrutowali się dobrowolnie spośród osób zróżnicowanych wiekiem i profesją, interesujących się grami strategicznymi. Nie pozostają w relacjach zależności od twórcy metody. Uwagi dotyczące map i mechaniki gry przekazują za pomocą Gizarmowego Forum [18]. W Kompilatorze Map sukcesywnie wprowadzano modyfikacje, by uzyskać definiowane w kolejnych etapach projektu cele stawiane przed mapami. W mapie "Dwie wyspy" użyto map parametrycznych definiujących wysokość, zalesienie, temperaturę,
10 wilgotność i żyzność. Powstały 22 wynikowe rodzaje terenu. Po zmianach w kompilatorze, przy użyciu analogicznych map klimatu dla mapy "XKCD"3, uzyskano 39 rodzajów terenu. Mapa ta została zastosowana w testach gry. Na podstawie opinii testerów oraz obserwacji przebiegu i rezultatów rozgrywki wprowadzono do kompilatora zmiany, wykorzystane przy generacji mapy "Europa", odzwierciedlającej warunki przyrodnicze Europy za pomocą 58 rodzajów terenu (Rys. 5). Według testerów występowanie zasobów takich jak wieloryby, złoża kamieni szlachetnych, złoża soli równomiernie na całej powierzchni mapy szkodziło realizmowi terenu (np. wieloryby w jeziorach). Z tego względu wprowadzono mapy zasobów, definiujące prawdopodobieństwo wystąpienia zasobów specjalnych na określonych obszarach. Nowej wersji użyto do generacji mapy "Cottoniana" 4. W wyniku kompilacji uzyskano 65 rodzajów terenu. Rys. 5. "Europa" - parametryczne mapy klimatu i efekt kompilacji. 5. PODSUMOWANIE Przedstawiona metoda generacji terenu jest z powodzeniem wykorzystywana przez programy narzędziowe służące do edycji i generacji map dla gry Gizarma. Metoda skraca czas wytwarzania dużych map z realistycznym rozkładem terenu. Generacja dokonuje się na podstawie obrazów wsadowych, nie wymaga stworzenia dedykowanego edytora. 3) 4) pierwowzór - mapa społeczności internetowych XKCD [19] pierwowzór - Cottoniana[20], modyfikacje: Lidia Miler
Metoda generacji dwuwymiarowych map zróżnicowanego terenu na przykładzie... 11 Edytorem może być dowolny program do grafiki rastrowej. Możliwa jest łatwa aktualizacja map w ramach dostosowania ich do zmienionego formatu zapisu, wzbogaconego zestawu terenów, itp. Zazwyczaj wystarcza skompilowanie mapy uaktualnioną wersją kompilatora i ewentualnie wprowadzenie niewielkich poprawek w konfiguracji. Pozwala to na przyśpieszenie rozwoju projektu. Algorytm teselacji zaprezentowany w artykule zapewnia znaczne zróżnicowanie kształtu uzyskanych nieregularnych regionów. Ich brzegi nie przekraczają granic narzuconych przez twórcę mapy, takich jak linia brzegowa i rzeki. W innej metodzie uzyskania nieregularnego rozkładu regionów, Polygonal Map Generation [10], podział płaszczyzny tworzony jest na podstawie diagramu Woronoja[5]. Prostoliniowe granice uzyskanych regionów przekształcane są w oparciu o siatkę czworokątów w linie łamane, naśladujące struktury terenu. Nie umożliwia to automatycznego dopasowania kształtu regionów do zaprojektowanych krzywych. Wielokątna struktura regionów pozostaje widoczna. Metoda zaprezentowana w artykule jest wciąż rozwijana. W celu zmniejszenia liczby uzyskiwanych w etapie teselacji regionów niepoprawnych planuje się uzależnienie heurystyki od aktualnej wielkości regionu. Pozwoliłoby to na ograniczenie nadmiernego wzrostu największych regionów kosztem mniejszych, prowadząc do powstania bardziej zrównoważonego podziału płaszczyzny. Rozważana jest również zmiana punktu, od którego liczona jest odległość komórek regionu; z komórki początkowej na komórkę najbliższą aktualnemu środkowi ciężkości regionu. Umożliwiłoby to migrację regionów z części obszaru mapy, w których wylosowano największe zagęszczenie komórek początkowych (zalążków regionów), mogąc w efekcie zmniejszyć różnice rozmiarów uzyskanych regionów. Dodanie czynnika losowego na etapie określania terenu i zasobów specjalnych umożliwiłoby uzyskanie z jednego zestawu obrazów wsadowych wielu wynikowych map o podobnym rozkładzie terenów, ale różniących się od siebie szczegółami. W przyszłości mogłoby to pozwolić na wykorzystanie w grze wielu wariantów tej samej mapy. Podczas zaczynania nowej rozgrywki na danej mapie następowałoby losowanie wariantu rozkładu terenów z przygotowanej wcześniej puli. Pozwoliłoby to utrzymać uwagę gracza, który ukończył wcześniejszą rozgrywkę na tej samej mapie, oraz nie dawałoby mu dużej przewagi nad innymi graczami. Zagadnieniem do rozwiązania pozostaje zwiększenie możliwości precyzyjnego wpływu twórcy mapy na kluczowe dla rozgrywki lokacje, na przykład pozycje startowe graczy. BIBLIOGRAFIA [1] Ferrel K., Ferrel E.: The official guide to Sid Meier's Civilization, Compute Books, 1992. [2] Dille E., Emrich A.: Panzer General: The Official Strategy Guide, Prima Pub., 1994. [3] Pulsipher L.: Game Design: How to Create Video and Tabletop Games, Start to Finish, s.224, McFarland, 2012. [4] Duchaineau M., Wolinsky M., Sigeti D.E., Miller M.C., Aldrich Ch., Mineev-Weinstein M.B.: ROAMing Terrain: Real-time Optimally Adapting Meshes, VIS '97 Proceedings of the 8th
12 conference on Visualization '97, s. 81-88, IEEE Computer Society Press Los Alamitos 1997, http://www.llnl.gov/graphics/roam. [5] De Berg M., van Kreveld M., Overmars M., Schwarzkopf O.: Computational Geometry: Algorithms and Applications, s. 147-160, 291-304, Springer, 2000. [6] Hoppe H.: View-dependent refinement of progressive meshes, w: ACM Computer Graphics Proceedings, Annual Conference Series, s. 189-198, ACM SIGGRAPH, 1997. [7] Losasso F., Hoppe H.: Geometry clipmaps: terrain rendering using nested regular grids, w: ACM Transactions on Graphics (TOG) - Proceedings of ACM SIGGRAPH 2004, s. 769-776, ACM New York, 2004. [8] Marietta College Main Biomes Page, http://www.marietta.edu/~biol/biomes/biome_main.htm (dostęp 27. 07. 2013) [9] Harris J.: Interview: The making of Dwarf Fortress, http://www.gamasutra.com/view/feature /131954/interview_the_making_of_dwarf_.php (dost. 27.07.2013). [10] Biome - Minecraft Wiki, http://www.minecraftwiki.net/wiki/biome (dostęp 27.07.2013) [11] Patel A.: Polygonal Map Generation for Games, http://www-cs-students.stanford.edu/~amitp /game-programming/polygon-map-generation (dostęp 27. 07. 2013). [12] Gizarma - oficjalna strona gry, http://gizarma.pl (dostęp 20.06.2013). [13] Barkai J.: IPHA - An Open Source Framework for Development of Strategy Games Based on Microsoft Technology, GRIN Verlag, 2009. [14] Informacja geograficzna - Schemat geometrii i funkcji pokryć PN-EN ISO 19123, Polski Komitet Normalizacyjny, 2010. [15] Ratajczak W.: Metodologiczne aspekty fraktalnego modelowania rzeczywistości, UAM, 1998. [16] Miałdun J.: Wpływ terenowej wielkości piksela i szumu impulsowego na wymiar fraktalny obrazów roślinności przybrzeżnej jeziora Łuknajno, w: Archiwum Fotogrametrii, Kartografii i Teledetekcji, vol. 21, Wrocław 2010. [17] Kostrowicki A.S.: Geografia biosfery: biogeografia dynamiczna lądów, Wydawnictwo Naukowe PWN, 1999. [18] Gizarmowe Forum, http://forum.gizarma.pl (dostęp 27. 07.2013). [19] xkcd: Online Communities 2, http://xkcd.com/802/ (dostęp 20.06.2013). [20] The Cottoniana or Anglo-Saxon Map, http://cartographic-images.net/cartographic_images /210_The_Cottoniana_or_Anglo-Saxon_Map.html (dostęp 20.06.2013). GENERATION OF TWO-DIMENSIONAL DIVERSE TERRAIN MAPS ON EXAMPLE OF GIZARMA STRATEGY GAME Summary Boards used in computer strategy games often take form of a map of natural environment characterised by varying degrees of generalisation. The aim of the method presented in this paper is to generate a two dimensional cartographic view of diverse forms of landscape resembling those found in reality. In the first stage of generation an iterative algorithm divides the map area into irregular regions. In the second step the probability of each environment component appearing is calcuted. This probability is controlled by tonal images, which can be specified using any raster graphics editor. This method has been used to generate maps for Gizarma, an online strategy game. This confirmed the effectiveness of the approach and allowed for further development based on the experimental results and feedback from users.