Tworzenie dobrych map

0

Cześć wszystkim!

Pracuję nad grą i jestem na etapie projektowania mapy. Chciałbym, żeby mapa w mojej grze była pełna życia, bogata w detale i interesujące obiekty, które przyciągną uwagę gracza. Szukam poradników lub wskazówek, które pomogą mi w tworzeniu dynamicznych środowisk. Będę wdzięczny za każdy link lub poradę, która może pomóc.

3
tBane napisał(a):

Chciałbym, żeby mapa w mojej grze była pełna życia, bogata w detale i interesujące obiekty, które przyciągną uwagę gracza.

Brzmi jak Heroes 3.

Drzewka, góry, przedmioty do zbierania, ścieżki, obiekty do odwiedzenia, tereny trawiaste, tereny śnieżne, wrogowie do pokonania...
O takie detale Ci chodzi?

W Heroes 3 Complete na GOG masz nawet gotowy edytor map. Wystarczy, że zaimplementujesz wczytywanie plików h3m w Twojej grze :]

Albo przynajmniej odgapisz co nieco, jeśli pasuje to do Twojej wizji projektu.

W tej grze jest pełno map. Można też przeglądnąć te stworzone przez graczy.

0

@Spine autorowi raczej chodzi o algorytmy.
@tBane w minecrafcie mają ciekawy generator, jest sporo różnych filmików na YT jak to działa

0

@anonimowy Raczej chodzi mi o sam proces tworzenia - skąd czerpać pomysły na tworzenie świata, jak go wypełniać, by był interesujący i ciekawy. Z algorytmami nie mam problemu, raczej zależy mi na inspiracji i metodach, które pomogą stworzyć świat pełen szczegółów i detali

1

poszukaj pod terminem 'level design', to cała ogromna gałąź gamedevu. Tutorialów też masa (nie podpowiem, które są warte uwagi, bo nie zagłębiałem się)

2
tBane napisał(a):

@anonimowy Raczej chodzi mi o sam proces tworzenia - skąd czerpać pomysły na tworzenie świata, jak go wypełniać, by był interesujący i ciekawy.

Zależy od typu mapy — jeśli potrzebujesz stworzyć mapę z jakąś realną lokalizacją, to najlepszym źródłem inspiracji jest Google i zdjęcia takich miejscówek. Natomiast jeśli interesują Cię lokacje nierealne (które nie istnieją w prawdziwym świecie), to już jest trudniej, bo trzeba umieć myśleć abstrakcyjnie. Ale zawsze możesz szukać inspiracji w innych, podobnych grach, bo na tym to wszystko polega — kierujesz się inspiracjami, zamiast wymyślaniem wszystkiego od absolutnych podstaw. Pamiętaj, że bardziej niepowtarzalny świat wymyślisz, tym większa szansa, że gracze go nie ogarną (bo nigdzie wcześniej czegoś takiego nie widzieli).

Poza tym nie napisałeś czy interesuje Cię mapa statyczna, czy generowana dynamicznie (proceduralnie).


Zwróć tylko uwagę na to, aby mapy nie były przepchane zawartością, czyli aby gracz nie czuł się nimi przytłoczony. Pustawe też być nie mogą, bo gracz będzie nimi znudzony — tutaj potrzebny jest balans. Co nadal nie zmienia faktu, że pewne części mapy mogą być ubogie w detale, a inne posiadać ich mnóstwo. To wszystko zależy od Twoich oczekiwań oraz od specyfiki projektu.

Za dużo tutaj jest do omówienia, aby to jakoś sensownie zmieścić w jednym czy kilku postach. Ot tworzenie map to zajebiście obszerny temat i dotyczy bardzo wielu aspektów. W skrócie, mapy powinny być interesujące i wygodne do eksplorowania. Unikaj wielkich i ubogich w detale obszarów; unikaj wymuszania dużej ilości backtrackingu (bo to wnerwia); unikaj konstruowania map w taki sposób, aby gracz miał bardzo ograniczony ruch lub był niewidoczny na ekranie.

Polecam do tego celu skorzystać z metodyki top-down — od ogółu do szczegółu. Najpierw wymyśl typy dużych obszarów i gdzie się będą względem siebie znajdować, potem dla każdego obszaru wymyśl jego zawartość (ta może się składać z podobszarów, składających się z mniejszych itd.). Cały czas miej na uwadze to jak one będą ze sobą połączone, tak aby realizowały założenia rozgrywki (fabuły). Przy czym najpierw dobrze by było mieć zarys fabuły.

0
tBane napisał(a):

Będę wdzięczny za każdy link lub poradę, która może pomóc.

Bez pier***lenia.

0

Jak na razie mam coś takiego. Co jeszcze można by dodac do terenów nadbrzeża ?
Obecnie są:
-drzewa
-rośliny
-skały
-kamyki
-kłoda

RPG2D 153.png
screenshot-20241103213140.png

1

Kamyki wystające ponad lustro wody? Chyba że będzie z tym problem, ze względu na implementację wody. Łódkę też możesz dodać, np. taką rozpierdzieloną, niezdatną do pływania (jako element dekoracji).

0

Kamyki wystające znad lustra wody raczej niemożliwe do zaimplementowania, a ta łódka nie będzie pasować niestety :-/ dodam jeszcze w niektórych miejscach małe roślinki to powinno załatwić sprawę

0

Dlaczego niemożliwe do zaimplementowania?

0

@ToTomki nie wiem jak się za to zabrać, by napisać to w miarę optymalnie.

0

To może inaczej — napisz co konkretnie sprawia problem w silniku, co uniemożliwia tworzenie obiektów na wodzie. Może rozwiązanie tego problemu wcale nie jest trudne do znalezienia.

0

Przede wszystkim to pracuję z 2D. Renderuję świat w następujący sposób: Terrain, Water, GameObjects. Nie da się częściowo zarysować kamieni wodą, gdyż woda to jeden duży obiekt 2D.

0
tBane napisał(a):

Przede wszystkim to pracuję z 2D.

Nie szkodzi. Możesz korzystać wyłącznie z dwuwymiarowych obiektów, a mimo to stworzyć świat wyglądający jak trójwymiarowy. Ot zobacz sobie jakie cuda ludzie potrafili robić z rzutem izometrycznym. 😉

Nie da się częściowo zarysować kamieni wodą, gdyż woda to jeden duży obiekt 2D.

Ten problem da się łatwo rozwiązać, korzystając z warstw. Nie tylko mógłbyś swobodnie renderować wodę, ale i stawiać obiekty na wodzie. Ba, mógłbyś też imitować ich częściowe wystawanie ponad wodę — wystarczy aby warstwa wody była półprzezroczysta.

W uproszczeniu — na warstwie umieszczonej najniżej renderujesz dno i fragmenty obiektów znajdujące się pod wodą, na warstwie wyżej renderujesz wodę (półprzezroczystą i z szumem, czyli shader robi to co chcesz), a na warstwie wyżej wody renderujesz fragmenty obiektów wystające ponad lustro wody.

Warstwy są bardzo łatwe w implementacji, a do tego dają niesamowicie dużo możliwości. Do tego ich obsługa w edytorze dawałaby Ci nie tylko możliwość tworzenia sztuczek wizualnych (tak jak z tymi obiektami w połowie wystającymi z wody), ale też ułatwiłaby Ci tworzenie samych map. Mógłbyś np. pokazać tylko tę warstwę, na której pracujesz, a resztę ukryć — obiekty z innych warstw nie przeszkadzałyby Ci np. podczas wypełniania warstwy podłoża (np. budynki czy drzewa nie zasłaniałyby terenu).

Renderowanie mapy złożonej z warstw jest banalne — na teksturach warstw renderujesz kafle/obiekty, a na koniec teksturę każdej warstwy renderujesz w oknie, od tej najniższej (np. dna zbiorników wodnych, obiekty podwodne, lustro wody, podłoże, obiekty na podłożu). Tych warstw możesz mieć dowolnie dużo, w zależności od wymagań. Przy czym fragmenty obiektów wystających ponad wodę mogą być zawarte w tej warstwie, która posiada obiekty renderowane po namalowaniu terenu (nie musi być dla nich warstwy dedykowanej).

Natomiast kolejność renderowania obiektów w pojedynczej warstwie zależy od ich z-order — standardowo. Zapewne trzymasz je w jakiejś liście, więc te renderujesz od pierwszego obiektu w liście, do ostatniego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.