PL:BuildingMaps
Ostatnia edycja: 16:42, 30 August 2006 (CEST)
Oto wszystko, co musisz wiedzieć o mapach:
- Mapa to tylko trochę literek w formie trójkąta.
- Są dwie metody robienia z nich plike.
A teraz do detali:
Oto wszystko co potrzebujesz wiedzieć o mapach:
- Każda z nich to tylko grupa liter ułożonych w prostokąt
- Istnieją dwa sposoby, żeby zapisać je w pliku
Contents
Format mapy Wesnoth
Formatu tego używamy aby opisać mapy.
- Plik mapy może zawierać dowolną liczbę wierszy, z których każdy ma tyle samo znaków.
- Każdy znak musi albo być przypisany określonemu terenowi (patrz Litery Terenu w WML (en)), albo cyfrze.
- Kiedy plik jest wykorzystywany przez grę, każda litera będzie zastapiona określanym przez nią terenem.
- Każda niezerowa cyfra (np. 1, 2, 3,...) będzie zastąpiona przez Keep, na którym będzie umieszczony lider odpowiedniej strony.
Ponieważ znaki w plikaach tekstowych są prostokątne, zaś pola w grze sześciokątne, część z pół musi być przesunięta. Pola w kolumnach even, w grze są przesunięte o pół heksa w dół. Aby więc otrzymać drogę z połączonych pól typu dirt, musisz stworzyć taki plik:
rrgggggg ggrrgggg ggggrrgg ggggggrr
- Plik z danymi składa się z dowolnej liczby wierszy o tej samej ilości znaków.
- Znak musi być albo literą reprezentującą określony teren, wymienioną w kluczu (patrz Spis liter terenu (en)), albo cyfrą.
- Podczas przetwarzania pliku, każdy znak zostanie zastąpiony terenem do którego się odnosi.
- Każda cyfra rózna od zera zostanie zastąpiona przez twierdzę z umieszczonym na niej przywódcą frakcji.
Ponieważ polem w pliku jest kwadrat a w grze heks podczas przetwarzania niektóre pola muszą zostać przesunięte. Pola w kolumnach parzystych są przesuwane o 1/2 w dół w efekcie dając quasiheksagonalną siatkę. Naprzykład aby stworzyć drogę z połaczonych ze sobą heksów ziemi dane mapy powinny wyglądać następująco :
rrgggggg ggrrgggg ggggrrgg ggggggrr
(Tylko wersja 1.3 i nowsze) (en) Format mapy w wersji 1.3 uległ zmianie, poniższy opis dotyczy tylko tej wersji i zapewne późniejszych.
Dane mapy są wykorzystywane do reprezenacji plansz w Wesnoth. Kodowanie ma określony format:
- Plik z danymi mapy składa się z dowolnej ilości wierszy z taką samą liczbą łańcuchów.
- Każdy łańcuch musi być jednym z wymienionych w kluczu określającym teren (patrz Spis liter terenu (en)).
- Łańcuchy mogą być wyrównywane spacjami lub tabulaturą i muszą być oddzielone przecinkiem, za wyjątkiem ostatniego, który przecinka mieć nie może.
- Podczas przetwarzania pliku każdy łańcuch zostanie zastąpiony terenem, do którego się odnosi.
- Puste linie są dozwolone zarówno przed, po jak i pomiędzy wierszami znaków, choć to ostatnie jest odradzane.
- Tereny mogą być poprzedzone liczbą, po której następuje jedna spacja. Określa ona początkową pozycję przywódcy frakcji n ( 1<n<9 większa ilość może działać ale opcja ta jest nieprzetestowana i prawdopodobnie nieobsługiwana przez inne elementy programu ). Pole to nie stanie się automatycznie twierdzą (zmiana w stosunku do poprzedniej wersji).
Doradza się wyrównywanie za pomocą spacji tak by każda kolumna była tej samej szerokości; gra robi to automatycznie zapisując plik mapy.
Ponieważ polem w pliku jest prostokąt a w grze heks, podczas przetwarzania niektóre pola muszą zostać przesunięte. Pola w kolumnach parzystych są przesuwane o 1/2 w dół w efekcie dając quasiheksagonalną siatkę. Naprzykład, aby stworzyć drogę z połaczonych ze sobą heksów ziemi dane mapy powinny wyglądać następująco:
Re, Re, Gg, Gg, Gg, Gg, Gg, Gg Gg, Gg, Re, Re, Gg, Gg, Gg, Gg Gg, Gg, Gg, Gg, Re, Re, Gg, Gg Gg, Gg, Gg, Gg, Gg, Gg, Re, Re
Tworzenie mapy
To nie Matrix, a zatem nie musisz bawić się bezpośrednio z plikiem tekstowym. Do większości wersji gry dołączony jest edytor map. Jeżeli kompilujesz z źródła, pamiętaj aby dodać --enable--editor po komendzie configure, albo edytor nie zostanie skompilowany. Używanie edytora nie powinno sprawić Ci najmniejszego kłopotu, biorąc pod uwagę opinie początkujących mapmakerów. Jednak jeśli napotkasz jakieś problemy, o pomoc spytaj na forum (en).
Gdy mapa jest już gotowa, możesz uznać, że drobne poprawki łatwiej nanieśc poprzez edytor tekstu.
Tworzenie dobrze zbalansowanej i interesującej mapy to jednak o wiele poważniejsza sprawa.
To nie jest Matrix, nie musisz oglądać zakodowanych map. Kod źródłowy i większoś oficjalnych dystrybucji zawiera edytor z graficznym interfejsem. Kompilując źródła pamiętaj o opcji --enable-editor przy konfiguracji, w przeciwnym wypadku nie zostanie on dołączony. Jego obsługa, sądząc po opiniach początkujących twórców, jest raczej prosta, ale gdybyś miał jakieś problemy ze znalezieniem lub pracą poproś o pomoc na forum.
Po utworzeniu mapy może ci jednak być łatwiej wprowadzać drobne zmiany bezpośrednio w danych tekstowych.
Tworzenie dobrych, zbalansowanych, ciekawych map jest zadaniem trudnym i jesli ktoś chciałby się podzielić wskazówkami odnośnie tej sztuki, bardzo prosimy.
Wykorzystywanie danych mapy
Plik z mapą może być wykorzystany na kilka sposobów:
- Może być użyty jako argument dla map_data (patrz WML Scenariusza (en)).
- Pliki zawierające jedynie dane mapy, mogą być łatwo edytowane z Edytorem Map Wesnoth (en).
- Pliki w folderze userdata/editor/maps/, o ile zawierają jedynie dane mapy, mogą być używane w trybie Multiplayer.
Dane mapy wykorzystywane są na dwa sposoby
- Jako argument dla klucza map_data (patrz WML (Scenariusz) (en)).
- Jako plik składający się wyłącznie z tych danych, bez trudności odczytywany przez Edytor Map.
- Pliki w katalogu userdata/editor/maps/ zawierajace tylko dane mapy mogą być wykorzystywane w grze wieloosobowej jako mapy użytkownika.
Klucz map_data
Każdy scenariusz kampanii zaczyna się od tagu [scenario], zaś scenariusz MP od tagu [multiplayer]. Obydwa używają klucza map_data. Jego wartość, to dane mapy zamknięte w cudzysłowiu. Oto przykład:
map_data="111111111111111111"
Pierwszym sposobem na wykorzystanie danych jest użycie klucza map_data. Scenarusze kampanii zaczynają się tagiem [scenario] a te do gry wieloosobowej tagiem [multiplayer], każdy z nich akceptuje klucz map_data, którego wartością są dane mapy ujęte w cudzysłów. Przykład:
map_data="111111111111111111"
Samodzielny plik mapy
Inna metoda użycia mapy, to zapisanie jej w pliku tekstowym, który zawiera jedynie dane mapy. Zaleta tej metody jest oczywista: jeśli zapiszesz mapę w ten sposób w katalogu userdata/editor/maps/, gra sama automatycznie umieści ją na liście map MP. Poza tym taki plik może być argumentem dla klucza map_data. Przykład:
map_data="{@editor/map_filename}"
W takim wypadku mapą do scenariusza będzie mapa filename w katalogu edytora.
Drugim sposobem jest zapisanie mapy w pliku tekstowym zawierającym tylko dane mapy. Ma to jedną zaletę, jeśli umieścisz ten plik w katalogu userdata/editor/maps/ będzie on automatycznie dostępny w trybie dla wielu graczy. Metoda ta działa też dla bardziej złożonych scenariuszy, jeśli plik takiego scenariusza zawiera wiersz podobny do poniższego:
map_data="{@editor/map_filename}"
to wszystkie dane zostaną wstawione pomiędzy znaki cudzysłowu.
Scenariusz czy Samodzielna Mapa?
Twórcy kampanii potrzebują scenariuszy, więc kampanie zawsze będą używać map_data, z argumentem albo danych mapy, albo wskaźnika do pliku.
W odróżnieniu do nich, twórcy map MP mają wybór. Jeśli chcesz umieścić obiekt albo jednostkę na mapie, musisz stworzyć scenariusz zaczynający się od tagu [multiplayer] zawierającego klucz map_data. Tracisz co prawda prostotę czystego pliku z mapą, ale uzyskujesz poważne narzędzie. Możesz nie tylko dodawać jednostki i obiekty, ale również narzucać sojusze, ustalać doświadczenie, modyfikatory, opis mapy i wszelkie zdarzenia.