Gizarma - forum

forum po polsku => Informacje => Modding => Topic started by: troll on November 14, 2012, 06:33:36 PM

Title: Tworzenie map - instrukcja
Post by: troll on November 14, 2012, 06:33:36 PM
Jak to działa
Mapy w Gizarmie tworzy się przy pomocy programów wywołowanych z linii poleceń. Nie ma tu żadnego edytora WYSWIG. Mapę definiuje się poprzez dostarczenie odpowiednich pngów, które określają parametry mapy. Być może brak graficznego edytora może stanowić na początku trudność, ale dzięki temu, że generator jest sterowany grafiką można łatwo obrabiać mapy za pomocą swojego ulubionego edytora grafiki rastrowej (GIMP, Photoshop, Paint.net ...). Można również łatwo modyfikować mapy, w momencie gdy wychodzi kolejna wersja Gizarmy wymagająca map nowego typu.

Tworzenie mapy składa się z 2 etapów:

Tutaj  (http://gizarma.pl/files/opis.jpg)można zobaczyć proces tworzenia mapy na schemacie blokowym. Oczywiście większość grafik jest już dostarczona przeze minie i nie trzeba się nimi przejmować.

Co należy przygotować:

1. Mapę obszaru zajmowanego przez regiony, nieprzekraczalne granice dla regionów (np. rzeki i brzegi lądów)


Kolory:

Przykład (http://gizarma.pl/gan-map-tutorial/sandbox.png)

2. Mapa lądów, mórz i rzek.

Kolory:

przykład (http://gizarma.pl/gan-map-tutorial/land.png)

3. Mapy klimatu:
Mapy klimatu to obrazki. Użyte kolory to odcienie szarości. Każda mapa definiuje dany parametr, kolor czarny reprezentuje niską wartość parametru, biały wysoką

Przykłady:

4. Mapy zasobów specjalnych
Są to obrazki w skali szarości. Każda mapa określa rozkład danego zasobu. Kolor #FFFFFF odpowiada 20% szansie pojawienia się zasobu, #000000 oznacza, że dany zasób napewno się nie pojawi. Oczywiście żeby teren z zasobem specjalnym się pojawił teren bazowy musi się zgadzać. Przykładowo wieloryb nigdy nie pojawi się w górach.

Wymagane mapy dla:

5. Rysowana nakładka
Wszystko co znajdzie się na tym obrazku zostanie naniesione na wygenerowane tło mapy. Z tego powodu tło obrazka musi być przeźroczyste. Na tym obrazku narysowane są granicę lądu i oceanu oraz rzeki.

Tak naprawdę można tu narysować cokolwiek, ponieważ kompilator nie analizuje tego obrazka

przykład (http://gizarma.pl/gan-map-tutorial/drawing.png)

Uwaga: wszystkie obrazki muszą być tego samego rozmiaru i być zapisane w 32 bitowym png z kanałem alfa.

Jak zrobić mapę krok po kroku:

1. Generujemy mapę regionów

Po sciągnięciu i rozpakowaniu programu Bakterie (http://gizarma.pl/gan-map-tutorial/bakterie.zip) kopiujemy do katalogu input mapę [1], nazywamy ją sandbox.png. Następnie uruchamiamy program wpisując z linii poleceń

Code: [Select]
java -jar bakterie.jar
jeżeli w trakcie wykonania programu otrzymujemy MemoryException musimy zwiększyć limit pamięci dla programu poprzez dodanie odpowiedniego parametru. Aby zwiększyć limit np. do 1000M dodajemy:

Code: [Select]
java -jar bakterie.jar -Xmx1000M
Jeżeli wszystko pójdzie dobrze po zakończeniu pracy programu w katalogu output powinien znajdować się plik region.png zawierający podział na regiony. Przykładowy obraz wynikowy (http://gizarma.pl/gan-map-tutorial/region.png).

Uwagi:

2. Kompilujemy mapę

Najpierw należy ściągnąć i rozpakować kompilator map (http://gizarma.pl/gan-map-tutorial/kompilator-map-08.zip). Po rozpakowaniu w katalogu głównym powinien znajdować się plik kompilator-map.jar, katalogi input/map w którym znajduje się konfiguracja oraz output/map gdzie znajdzie się gotowa mapa. W projekcie input/map znajdować się gotowy projekt, żeby sprawdzić, czy wszystko działa poprawnie można uruchomić kompilator. Należy to zrobić z linii poleceń, ważne jest, żeby mieć dostęp do generowanych logów. Robimy to poleceniem ewentualnie dodając -Xmx...

Code: [Select]
java -jar kompilator-map.jar
Żeby stworzyć własną mapę należy podmienić pliki w katalogu input/map/

Podczas kompilacji może się zdarzyć, że rozkład regionów który otrzymaliśmy podczas generacji będzie nieprawidłowy:

Kompilator powinien podpowiedzieć położenie nieprawidłowego regionu w logach. Jeżeli będą z tym problemy postaram się opisać to lepiej.

3. Podgląd wygenerowanej mapy

W katalogu output/map/log znajdują się między innymi następujące pliki:

Nakładka graficzna [5]
Jak narysować brzeg
Są na to dwa sposoby:


Jak narysować rzeki
Do tej pory zawsze składałem je z gotowych elementów (http://gizarma.pl/gan-map-tutorial/rzeki300%25.png). Fragmenty rzek na tym obrazku są powiększone 0 300% (żeby łatwiej je modyfikować).
Title: Re: Tworzenie map - instrukcja
Post by: mike on November 20, 2012, 09:22:31 PM
A jaki jest minimalny rozmiar mapy? Mam słabego kompa, ale pomimo tego chciałbym coś potestować. Myślę nawet o napisaniu prostego generatora map w C#. W przeszłości napisałem sporo różnych prostych aplikacji obrabiających grafikę oraz steganograficznych więc myślę, że nie byłoby problemu napisać jakiś prosty generator.

EDIT: Ciekawie ten program bakterie działa ;)
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 20, 2012, 10:17:50 PM
Można założyć, że minimalny rozmiar to rozmiar mapy taki jak w przykładowym projekcie :). Prawdopodobnie da się jeszcze mniejszą, ale nie sprawdzałem tego.

Troll
Title: Re: Tworzenie map - instrukcja
Post by: mike on November 20, 2012, 10:33:37 PM
Na początek postaram się zrobić taki program, który po kolei odpala procesy i przenosi pliki we właściwe miejsca.
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 20, 2012, 10:48:46 PM
To niekoniecznie wyjdzie. Generator podziału na regiony jest skuteczny w 99%, to znaczy niektóre regiony są wadliwe i trzeba je poprawiać ręcznie (napisałem zresztą o tym w instrukcji). Nie działa to w pełni automatycznie.

Jeżeli chcesz z tym poeksperymentować proponuje zrobić własną mapę, wtedy zobaczysz co można tam poprawić :).

Troll
Title: Re: Tworzenie map - instrukcja
Post by: mike on November 20, 2012, 10:56:19 PM
Okey poeksperymentuje i zobaczę jak to wszystko wygląda. Może niekoniecznie trzeba ręcznie poprawiać, pewnie można byłoby znaleźć jakiś sposób na automatyczne poprawianie.
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 20, 2012, 11:04:01 PM
Jeżeli jesteś w stanie coś takiego wymyślić - to było by bardzo fajnie. Mnie się do tej pory nie udało.

Z drugiej strony jest to dość trudne zadanie, bo takie anomalne regiony powstają najczęściej w okolicach brzegów o skomplikowanej strukturze. Bardzo ciężko jest naprawić taki region nawet ręcznie, nieraz trzeba nagiąć trochę reguły generacji (np. pozwolić, żeby region był częściowo przecięty przez rzekę), lub podjąć decyzje o usunięciu fragmentu lądu (np. małej wysepki). Trudno by było podejmować takie decyzje automatycznie.
Title: Re: Tworzenie map - instrukcja
Post by: mike on November 20, 2012, 11:38:49 PM
Zastanawia mnie jakie warunki musi spełnić region by być uznany za poprawny?
Jaką musi mieć powierzchnie, min/max szerokość i wysokość w px?
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 20, 2012, 11:47:44 PM
  • Region może być za mały
  • Może być za duży
  • Może być za długi / wysoki (powyżej 128px)
  • Może być za cienki
  • Może być mieć zbyt wielu sąsiadów (maksymalnie może mieć 8 )

Kompilator map powinien napisać w logu co jest nie tak z regionami.

Jeszcze jedna sprawa, nie wiem co chcesz robić, ale jeżeli chciałbyś utworzyć nową mapę, to mogę dorzucić materiały graficzne, które na pewno by ci się przydały.
Title: Re: Tworzenie map - instrukcja
Post by: mike on November 21, 2012, 12:19:37 PM
Trochę dziwnie działa ten program bakterie ;) Gdy wrzuciłem jako plik wejściowy cały biały plik PNG nie zadziałał. Zrobiłem cienką czarną ramkę też nie działał. Potem zrobiłem dość grubą też nie udało się wystartować. Dopiero przy bardzo grubej ramce zadziałał.

Mój pomysł na generator wygląda tak:
1) tworze plik PNG z dużą czarną ramką. W środku biały kwadrat. Rezygnuje z niebieskich linii (zauważyłem, że tak stworzona mapa zawsze się kompiluje),
2) uruchamiam program bakterie.jar,
3) w pliku wynikowym region.png usuwam (zamalowuje na biało) regiony graniczące z ramką, żeby mapa nie była kwadratowa,
4) uruchamiam algorytm określający co jest lądem a co morzem.
5) nanoszę rzeki (które przebiegać będą na łączeniach pól),
6) tworze mapy wilgotności, żyzności itd.
7) obrysowuje brzegi,
8) kompilacja.


Napisz co o tym myślisz.
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 21, 2012, 03:22:04 PM
Generator wymaga sporego marginesu, kompilator pewnie też. Mało to eleganckie, ale nie sprawia, że nie da się tego użyć.

Pomysł ciekawy, można wypróbować. Jakie będą problemy:
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 22, 2012, 11:34:42 PM
Dodałem trochę materiałów dotyczących tworzenia nakładki graficznej dla mapy

Troll
Title: Re: Tworzenie map - instrukcja
Post by: liosan on November 29, 2012, 02:20:50 PM
Byłoby miło, gdyby program bakterie rzucając wyjątek dawał tyle informacji, żeby dało się zdebugować problem...

Code: [Select]
Exception in thread "main" java.lang.IllegalArgumentException: Color parameter outside of expected range: Blue
        at java.awt.Color.testColorValueRange(Unknown Source)
        at java.awt.Color.<init>(Unknown Source)
        at java.awt.Color.<init>(Unknown Source)
        at Bakterie.genPng(Bakterie.java:672)
        at Bakterie.licz(Bakterie.java:764)
        at Bakterie.main(Bakterie.java:865)
No i super. Ale gdzie jest ten zły pixel i jaki tam jest kolor, to już nie wiadomo...

EDIT: Znalazłem całą chmarę takich pixelków, naprawiłem... i znowu to samo. Po pół godzinie liczenia... albo napiszę skrypt który to naprawia, albo nie wiem co :)

Liosan
Title: Re: Tworzenie map - instrukcja
Post by: troll on November 29, 2012, 04:29:20 PM
Nie będę ukrywał - bakterie napisane są w sposób mało koszerny delikatnie mówiąc :). W kodzie jest duży bałagan, błędy obsługiwane jak widzisz.

Postaram się w najbliższym czasie dopisać walidacje inputu. Jeżeli nie masz pojęcia co się tam dzieje, to prześlij mi swój input postaram ci się go wieczorem zdebugować (np. na email)

pozdrawiam
Troll
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 03, 2012, 04:25:47 PM
Jednak robię próbę z mapą, bo dzięki temu że bakterie i kompilator działają wsadowo, a nie trzeba przy nich na bieżąco działać w trybie graficznym, to mogę uruchamiać je na mocniejszym komputerze i czekać na wyniki. Teraz w weekend udało mi się tę metodę wypróbować; na plikach testowych wszystko działa dobrze :-)

Mam natomiast pytanie: orientacyjnie jaki limit pamięci trzeba by było przydzielać Javie na uruchomienie "bakterii" z sandboxem o wymiarach 5001 x 4134 pikseli ?

Trochę trudno mi to przewidzieć, a moje eksperymenty na razie kończyły się jak na załączonym screenie.  I na razie nie wiem, czy to problem na linii system-Java (tam jest słabo mi znany system SBS 2008; prawie windows, ale niektóre rzeczy działają inaczej), czy z samym systemem i jego sposobem użycia pamięci (której fizycznie ma 4 razy więcej niż mój komputer), czy też w moim pliku jest jakiś problem powodujący nadmierne zużycie pamięci.
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 03, 2012, 05:31:32 PM
Z tego co widzę, winna jest ostatnia poprawka do bakterii. Przez nią brakuje pamięci.

Do mapy europy dałem 2GB limitu pamięci. Ale wtedy poprawki nie było i wszystko działało.

Wieczorem poprawie to
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 03, 2012, 11:11:24 PM
Wgrałem nową wersje. Bakterie powinny bardziej racjonalnie zarządzać pamięcią. Zobacz, czy zadziała ci teraz.

Troll
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 03, 2012, 11:17:35 PM
Dobra, zaraz zobaczę.

edit:Uruchomione, za jakiś czas sprawdzę rezultat.

edit2: To jednak chyba będzie problem z konfiguracją tego konkretnego komputera. Tak jakby nie przydzielał żądanej pamięci - pewnie potrzebuje ją na coś innego, albo ja coś jednak źle robię. Albo jedno i drugie ;-)
Może mi się uda jutro spróbować na normalniejszej maszynie, to coś więcej się dowiemy. Tak łatwo nie zrezygnuję ;-)

W każdym razie dzięki za tę nową wersję bakterii, to ważne.
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 05, 2012, 02:08:21 PM
Faktycznie uruchomienie bakterii na jeszcze innym komputerze pozwoliło mi znaleźć rozwiązanie :-) Początkowo rezultat był identyczny jak wcześniej, czyli program (mimo polecenia zwiększenia limitu) nie używał więcej pamięci niż 256MB. Ale tym razem nie miało to już prawa być spowodowane brakiem dostępnej pamięci w komputerze, bo manager zasobów pokazywał mnóstwo wolnej pamięci. No to przyczyna musiała być inna - i była. Po zainstalowaniu 64bitowej Javy i ustawieniu trybu -d64 wszystko pięknie zadziałało i kolumna pokazująca pamięć na dany krok wypełniła się wartościami do mniej więcej 1487MB, zamiast monotonnym 238MB :-) Dodatkowo wszystko policzyło się bardzo szybko, więc zdążyłam zrobić jeszcze próbę z 64bitową Javą na tym komputerze, co wcześniej próbowałam i nie działało. Teraz działa :-)

Oczywiście pojawia się błąd z pikselami w złym kolorze, jak u Liosana, ale to już zupełnie co innego. Żebyście wiedzieli, jak mnie ucieszyło pojawienie się tego błędu zamiast poprzedniego. Bo to już znaczy, że jestem na dobrej drodze do pozytywnego rezultatu :-)
Title: Re: Tworzenie map - instrukcja
Post by: liosan on December 05, 2012, 02:17:57 PM
Oczywiście pojawia się błąd z pikselami w złym kolorze, jak u Liosana, ale to już zupełnie co innego. Żebyście wiedzieli, jak mnie ucieszyło pojawienie się tego błędu zamiast poprzedniego. Bo to już znaczy, że jestem na dobrej drodze do pozytywnego rezultatu :-)
To daj znać jak coś z tym wymyślisz... ja aktualnie nie mam dostępu do tamtego kompa, więc prace wstrzymane :)

Liosan
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 05, 2012, 04:54:29 PM
Tymczasowo możecie łatwo znaleźć za pomocą np. gimpa kolor, który nie jest czarny, niebieski albo biały.

Troll
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 05, 2012, 09:59:36 PM
Oczywiście pojawia się błąd z pikselami w złym kolorze, jak u Liosana, ale to już zupełnie co innego. Żebyście wiedzieli, jak mnie ucieszyło pojawienie się tego błędu zamiast poprzedniego. Bo to już znaczy, że jestem na dobrej drodze do pozytywnego rezultatu :-)
To daj znać jak coś z tym wymyślisz... ja aktualnie nie mam dostępu do tamtego kompa, więc prace wstrzymane :)
Tymczasowo możecie łatwo znaleźć za pomocą np. gimpa kolor, który nie jest czarny, niebieski albo biały.

W gimpie 2.8.2 w taki sposób (mam nadzieję, że nie piszę zbyt oczywistych rzeczy - mi się dopiero co udało ich nauczyć):

Otwieramy okno dokowalne "Opcje narzędzia" (Menu: Okna -> Dokowalne okna dialogowe -> Opcje narzędzia) i umieszczamy je na ekranie gdzie komu wygodnie. Na moim screenie jest po lewej stronie, a cały gimp jest w trybie jednookienkowym (Menu: Okna -> Tryb jednego okna).

Z przybornika wybieramy narzędzie "Zaznaczanie według koloru" (na screenie jest wciśnięty jego przycisk).

W oknie "Opcje narzędzia" koniecznie trzeba usunąć zaznaczenie wszystkich takich rzeczy jak "Wygładzanie", "Zmiękczanie krawędzi" i temu podobne. Ja na wszelki wypadek odznaczam wszystko ;-)
W polu "Progowanie" ustawiamy wartość 0,0.
Gdyby tego nie zrobić, zaznaczałyby się nie tylko piksele w danym kolorze, ale też sąsiadujące z nimi piksele o zbliżonym kolorze, czyli właśnie te, których szukamy - nie znaleźlibyśmy ich w takiej sytuacji.

Teraz jak klikniemy w dany kolor, zaznaczą się wszystkie piksele na ekranie w danym kolorze. Czyli klikamy w czarny. Zaznaczony obszar jest obwiedziony migającą przerywaną linią. Dobrze. To teraz dodamy do zaznaczenia następny kolor. Naciskamy Shift (dodawanie do zaznaczenia) i klikamy w biały. Trzymamy Shift i klikamy w niebieski (to może wymagać powiększenia obrazka).
I teraz mamy zaznaczone wszystkie piksele w trzech wybranych kolorach. Poza zaznaczeniem pozostają piksele w innych kolorach. Teraz odwracamy zaznaczenie (Menu: Zaznaczenie -> Odwróć).
Zaznaczone (obwiedzione migającą przerywaną linią) mamy piksele w innych kolorach niż czarny, biały i niebieski. To właśnie są nasze nieprawidłowe piksele. Powiększamy obrazek i je przemalowujemy na właściwy kolor.

---

Jak uniknąć tych pikseli nieprawidłowych już na etapie rysowania? W każdym razie - jak ograniczyć ich liczbę ;-)

No więc przede wszystkim trzeba rysować narzędziem, które nie daje rozmytego konturu. W gimpie jest to ołówek. W opcjach narzędzia (każdego którego używamy) wyłączamy wszystkie zmiękczania, rozmywania, itp. Ustawiamy pędzel, który nie ma rozmycia na krawędziach (np. w gimpie "Hardness100"). Ja pamiętałam o tym przy rysowaniu niebieskiej linii, ale zapomniałam przy rysowaniu białej plamy - i na styku czarnego z białym było u mnie pełno pikseli o stopniowanej szarości ;-/

Rysujemy od razu w docelowej wielkości. Skalowanie jest zawsze ryzykowne. Jeżeli już decydujemy się na skalowanie, to w polu wyboru Interpolacji ustawiamy koniecznie  "Brak". Inaczej powstanie pełno pikseli w niechcianych kolorach.

Od razu z pliku, w którym rysujemy w edytorze, eksportujemy do .png . Nie używamy jakichś formatów pośrednich typu .jpg, bo kompresja zrobiłaby nam dosłownie mozaikę różnokolorowych pikseli.

edit: Jak coś pominęłam, to dopiszcie.
Title: Re: Tworzenie map - instrukcja
Post by: liosan on December 06, 2012, 12:01:23 PM
Super, dzięki, nie wiedziałem jak to się robi :) Ja rysowałem w paint.NET z wyłączonym antyaliasingiem, więc teoretycznie nie powinno być przejściowych kolorów... teoretycznie. Zobaczymy :)

Liosan
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 06, 2012, 02:27:37 PM
Muszę niestety powiedzieć, że mi się na razie nie udało usunąć nieprawidłowych pikseli ;-/ Już nic mi się nie zaznacza, a program zgłasza ciągle na koniec ten błąd z kolorem pikseli.
 
Ale przy takim przeglądzie tego obrazka "kawałek po kawałku" znalazłam jeszcze kilka takich miejsc, gdzie w niebieskim konturze był zamknięty pojedynczy biały piksel (na screenie). Mało prawdopodobne, żeby właśnie w nim wylosowywała się jakaś ameba, a niebieski kontur nie pozwala innym amebom zająć takiego obramowanego pola. Myślę, że taki biały piksel może powodować błąd, bo na tym etapie poprawek pewnie już nie powinno być na planszy żadnego białego piksela, tylko same niebieskie.

Nie mam jeszcze pewności, jak jest interpretowana linia grubsza niż 1 piksel, a takich miejsc też sporo znalazłam.

Spróbuję, chociaż pewnie nie dzisiaj, narysować od nowa ten niebieski kontur zwracając od razu uwagę na jednolitość linii. To powinno być skuteczniejsze od poprawienia tego pliku, który już mam ;-)
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 06, 2012, 03:15:21 PM
Grube kreski i wyizolowane piksele nie są raczej źródłem błędów. Zaczynam podejrzewać, że problem stanowi coś zupełnie innego. Jeżeli w inpucie nie ma odpowiednio dużej czarnej ramki program może się wywalać. Być może rzuca takim błędem, że wydaje się wam, że chodzi o kolor.

Zobaczcie, czy kolor czarny przy brzegach nie jest cieńszy niż 40px. Jeżeli jest, może to jest źródłem błędu, zwiększcie ramkę. Jeżeli nadal coś nie działa przyślijcie mi input, być może to jakiś inny banalny błąd, lub bug w programie. Będe przynajmniej wiedział co poprawić.

Wiem, że obecnie bakterie działają w dość dziki sposób, postaram się w najbliższej przyszłości dodać jakieś sprawdzanie inputu, to powinno poprawić sytuacje.

@Hydro - dzięki za napisanie instrukcji, nie pomyślałem o napisaniu czegoś takiego, a jak widać jest pomocne.

Jeżeli chodzi o pocienianie kresek jeżeli było ci coś takiego potrzebne, to napisałem program, który coś takiego robi. Jeżeli jest taka potrzeba mogę go udostępnić.

pozdrawiam
Troll
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 06, 2012, 04:04:18 PM
Ramkę sprawdziłam i jest szeroka, może problem w tym, że za szeroka?
Teraz próbuję wklejać te kawałki mapy, które mnie najbardziej niepokoiły, do tego przykładowego małego sandboxa (jak gdyby powtórzyć błąd) i uruchamiam na nim bakterie. Wszystko póki co działa i regiony w tych miejscach z pogrubionymi liniami, plamami niebieskich pikseli, wyizolowanymi białymi pikselami, wąskimi przesmykami, gęstymi rzekami - generują się.
To wyślę Ci ten mój plik, na którym pokazuje się błąd z kolorem pikseli. Myślę, że jednak błąd jest w tym pliku, tylko nie umiem go znaleźć.
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 06, 2012, 04:22:20 PM
Za szeroka ramka nie stanowi problemu.

W takim razie czekam na plik, sam jestem ciekaw co tam nie działa :)
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 06, 2012, 11:02:26 PM
Sprawdziłem co tam się dzieje, wychodzi na to, że jest to w 100% moja wina :(. Wszystko przez to, że zanim wypuściłem ten programik trochę go ulepszyłem. Wierzcie lub nie ale kiedyś działał jeszcze bardziej dziko :). W każdym razie ten błąd występował na wszystkich planszach o liczbie regionów przekraczających około 600. Nowy program testowałem na mapie z około 250 regionami.

W każdym razie już wszystko powinno działać, nie zdążyłem w prawdzie zapuścić testu na dużej mapie. Włączę generacje bakterii na noc, najwyżej rano napiszę, że ciągle nie działa.

Jeżeli chodzi o kolory z poza zakresu zdefiniowanych to program traktuje wszystkie kolory które nie są czarnym i niebieskim jak biały, więc nawet antyaliasing nie powinien bardzo przeszkadzać. Nie powinno to powodować błędów.

przepraszam za problem, mam nadzieje, że to ostatnia taka wtopa
pozdrawiam
Troll
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 06, 2012, 11:58:08 PM
Nie masz za co przepraszać, przecież to normalne że jak się robi coś nowego albo ulepsza, to nie zawsze od razu wychodzi tak, jak by się chciało :-) Fajnie że znalazłeś możliwą przyczynę.
Title: Re: Tworzenie map - instrukcja
Post by: hydro on December 07, 2012, 01:53:13 AM
Na mapie 4215x5001 px wszystko pięknie zadziałało :)))
Title: Re: Tworzenie map - instrukcja
Post by: liosan on December 07, 2012, 01:35:15 PM
Yay, wygenerowało się :D Nay, niestety ameby nie pasują do linii... kompletnie je ignorują. Możesz zobaczyć, co jest nie tak?

Liosan

Title: Re: Tworzenie map - instrukcja
Post by: troll on December 07, 2012, 02:41:56 PM
Wszystko przez to, że twój input jest zapisany jako png bez kanału alfa. Kanał alfa nie jest używany, ale generator spodziewa się, że alfa tam będzie.

Kanał alfa możesz dodać np. wklejając obrazek na przeźroczyste tło w GIMPie. Następnie trzeba zapisać to do PNG.

Możesz też poczekać do wieczora, postaram się to poprawić.

pozdrawiam
Troll
Title: Re: Tworzenie map - instrukcja
Post by: liosan on December 07, 2012, 06:37:28 PM
O, dzięki za info :) Nie kłopocz się, przestawię sobie na png z alfa.

Liosan
Title: Re: Tworzenie map - instrukcja
Post by: mike on December 14, 2012, 01:23:49 PM
Hej! Przepraszam za takie milczenie z mojej strony, ale pojawiła się taka bardzo ważna sprawa i musiałem wszystko inne rzucić ;) Pomimo tego myślę, że w przerwie między świętami a sylwestrem znajdę czas, żeby dokończyć mój prosty generator map. Pozdrawiam
Title: Re: Tworzenie map - instrukcja
Post by: troll on December 14, 2012, 03:42:18 PM
Cześć

Nie przejmuj się, nic się nie stało. Ciekaw jestem co wymyślisz.

pozdrawiam
Troll
Title: Re: Tworzenie map - instrukcja
Post by: troll on March 20, 2013, 10:38:51 PM
Dodałem mapy określające rozkład zasobów. Nowa wersja kompilatora map i opis działania w pierwszym poście.

Troll
Title: Re: Tworzenie map - instrukcja
Post by: hubtus on September 21, 2014, 04:26:57 PM
 Uznałem, że zakładanie nowego tematu nie ma sensu z powodu jednego pytania nie ma sensu, więc post postanowiłem napisać tutaj. Moje pytanie dotyczy rozłożenia podstawowych surowców naturalnych na mapie, a mianowicie... Czy generowanie żelaza i zwierzyny jest w pełni niezależne od  twórcy mapy, czy raczej można na to wpłynąć poprzez zmianę jakiegoś parametru? Zastawiam się właśnie jak to z tym jest, bo na rozłożenie surowców luksusowych ma wpływ mapa występowania, ale rozłożenie surowców zwykłych jest dla mnie niewiadomą.
Title: Re: Tworzenie map - instrukcja
Post by: hydro on September 21, 2014, 05:31:55 PM
Czy generowanie żelaza i zwierzyny jest w pełni niezależne od  twórcy mapy, czy raczej można na to wpłynąć poprzez zmianę jakiegoś parametru?

Trafne pytanie :-)

Aktualnie żelazo, zwierzyna i rybki są niesterowalne mapami zasobów. Pod tym względem są losowe.
Natomiast mogą wystąpić tylko na odpowiednim terenie - różna zwierzyna w różnych rodzajach lasu, rybki na wodzie, żelazo na różnych rodzajach pagórków i suchych terenów. Można ewentualnie wpłynąć tylko na prawdopodobieństwo wystąpienia tych surowców na danym rodzaju terenu (niezależnie od jego położenia na mapie), typu "jeśli pole jest lasem mieszanym, to z prawdopodobieństwem x wystąpią w nim niedźwiedzie".
W praktyce daje to bardzo dużą losowość. Myślisz że to dobrze, czy niezbyt?
Title: Re: Tworzenie map - instrukcja
Post by: hubtus on September 21, 2014, 06:45:24 PM
Jak dla mnie to chyba nie jest najlepsze rozwiązanie. O ile sama losowość jest bardzo fajna, to w takim stopniu już nie do końca, bo niszczy balans. Według mnie o tym co powinno decydować w grze, czy dany gracz wygra daną rozgrywkę to jego spryt, przemyślne planowanie oraz losowe wydarzenia(np. pomyłki graczy itd.), a nie głównie pozycja startowa(Chociaż ona też powinna mieć pewien wpływ.). Niestety przy takiej losowości tworzą się świetnie miejsca do zasiedlania praktycznie bez minusów. Np. Grając Królestwem Niemieckim znalazłem tuż obok swojej stolicy miejsce z 4 polami żelaza, polem cisów, kamieni szlachetnych oraz dodatkowo 3 polami ze zwierzyną. Jak dla mnie to takie pole daje już trochę za dużego boosta z początku gry.

 Podsumowując taka losowość może trochę za bardzo moim zdaniem wpływać na szanse zwycięstwa w rozgrywce. Od razu powiem, że mogę być trochę za bardzo przewrażliwiony w tym temacie, bo często grywam w Sid meier's civilization na losowo generowanych mapach, a tam niestety losowo generowane mapy są czasem zbyt mało zbalansowane;)
Title: Re: Tworzenie map - instrukcja
Post by: Kryzoo on October 17, 2015, 10:35:32 AM
Instrukcja tworzenia mapy napisana przez Hubtusa znajduje się teraz pod adresem: http://modding.gizarma.pl/tworzenie-map.htm (http://modding.gizarma.pl/tworzenie-map.htm)

Kryzoo