Jak mogę zapewnić, że poziomy proceduralne w RTS są uczciwe?

10

Widziałem, że symetria i spójność są ważne w projektowaniu poziomów RTS, ale jestem leniwy i chcę robić poziomy generowane proceduralnie.

Jak mogę się upewnić, że generuję równe szanse podczas proceduralnego tworzenia poziomów dla RTS?

James Pae
źródło
4
Stopniowo zaczyna się pogrzebać z wiekiem, ale polecam poszukać informacji na temat działania losowych skryptów generujących mapy w grach Age of Empires. Były to pliki tekstowe, które gracze mogli edytować, opisując, jak generować mapy potyczek różnych typów. Pamiętam, że mieli metody układania łat i grup poszczególnych terenów / rekwizytów, uczciwego rozmieszczania rzeczy takich jak zasoby, aby zagwarantować, że będą dostępne, oraz rzeźbienia ścieżek przez teren, aby gracze mogli się do siebie dostać. Nauczenie się, jak działają ich przepisy, powinno dać ci kilka pomysłów na własne.
DMGregory
2
Nie wspominasz, czy Twój RTS jest jednoosobowy, czy wieloosobowy. W przypadku pojedynczej osoby można osiągnąć równowagę poziomu, zmieniając zachowanie AI w celu dopasowania do umiejętności gracza. Innymi słowy, AI może mieć dostęp do większej ilości zasobów niż gracz, ale gra dostosowuje, jak agresywnie wykorzystuje te zasoby, w zależności od tego, jak agresywny gracz wykonuje ataki lub wykorzystuje swoje zasoby.
Mark Ripley,
1
Aby dodać do tego, co powiedział Mark, jakiego rodzaju równowagi szukasz? Do czego używasz map?
Nicol Bolas,

Odpowiedzi:

26

Osobiście uważam, że symetria w projektowaniu poziomów jest nudna i nie sądzę, że jest to konieczne, aby była potrzebna na uczciwych poziomach; symetria to sposób na zapewnienie wszystkim dostępu do tych samych zasobów i tych samych wąskich gardeł dzięki temu, że poziom dosłownie jest odzwierciedlony dla każdego gracza w pewien sposób. Myślę, że ważną częścią jest dostęp (w przybliżeniu) do tych samych zalet i wad. Nie tyle sama symetria.

Myślę też, że gra zrównoważona tak, że wszystkie strony mają taką samą moc i równoważne możliwości, jest nudna. Oczywiście nie chcesz całkowitej nierównowagi tych czynników, ale myślę, że może to stworzyć interesującą dynamikę gry, oferując każdej ze stron nieco różne możliwości i blokady dróg.

To jest rodzaj kontekstu projektowego, który myślę jako określenie rzeczywistej odpowiedzi na pytanie:


Jeśli symetria naprawdę ma dla ciebie znaczenie, możesz po prostu proceduralnie wygenerować kawałek poziomu, a następnie wykonać kopię lustrzaną tego poziomu w obu osiach. Fragment, który generujesz, to w zasadzie jedna czwarta poziomu, i odzwierciedlasz go, więc każda ćwiartka jest taka sama. Na przykład proceduralna mapa wysokości z losowo rozproszonymi depozytami zasobów:

wprowadź opis zdjęcia tutaj

Ale jak powiedziałem powyżej, wydaje się to nudne. Bardziej interesującym podejściem może być generowanie proceduralnie całego terenu, ale umieszczając zasoby, pamiętaj o ograniczeniu każdej ćwiartki do takiej samej liczby (w ramach pewnej tolerancji, aby zapewnić pewną zmienność). Możesz chcieć przesunąć rozmieszczenie różnych typów zasobów w różnych obszarach (losowo, w pobliżu punktów początkowych, w pobliżu granic) w zależności od znaczenia zasobów. Na przykład:

wprowadź opis zdjęcia tutaj

Możesz przeprowadzić analizę wygenerowanego obrazu, aby spróbować znaleźć krawędzie elementów - na przykład wąskie kaniony, które można uznać za wąskie gardła. Możesz zdecydować się na przerzucenie generowania terenu dla części mapy, jeśli na przykład ma on znacznie więcej lub mniej wąskich gardeł lub podobnie wykrywalne elementy terenu niż inne. Możesz także przeprowadzić podobną analizę terenu, aby upewnić się, że każdy umieszczony zasób jest w pewien sposób osiągalny.

Na przykład możesz zdecydować się na przerzucenie dolnej lewej ćwiartki, ponieważ ma ona zbyt dużo wody (na czerwono) lub ćwiartki zawierające zieleń, ponieważ są zbyt korzystne taktycznie (potencjalne wąskie gardła kanionu):

wprowadź opis zdjęcia tutaj

Możesz także zdecydować o ręcznym generowaniu funkcji; możesz ręcznie umieścić niektóre elementy, takie jak rzeka dzieląca sekcje poziomu lub kluczowe złoża zasobów, a następnie uruchomić generowanie procedur, aby zachować ręcznie ustawione funkcje równoważenia kluczowych elementów, jednocześnie zapewniając interesującą i organiczną różnorodność, z której chcesz wyjść generowania proceduralnego.

Na przykład wygenerowany teren, który zachowuje ręcznie umieszczoną rzekę dzielącą mapę na pół i zalesioną osłonę, zapewnił dodatkową ochronę wokół baz:

wprowadź opis zdjęcia tutaj


źródło
2
Dzięki, to będzie dobrze działać z moim systemem porcji. Ludzie wydają się zdezorientowani moim stwierdzeniem „ale jestem leniwy”. Nie jestem artystą, a generowanie szumu i siatki jest dla mnie bardziej interesujące.
James Pae
2
@JamesPae: „ Im no artist ” Poziom nie dotyczy sztuki . Chodzi o rozgrywkę. Pytanie brzmi, czy lubisz projektować gry?
Nicol Bolas,
8
@JamesPae, jeśli nie możesz stworzyć zabawnego poziomu, będziesz miał bardzo trudny czas, sprawiając, że generowany proceduralnie poziom będzie zabawny. Sugeruję, abyś wykonał przynajmniej jeden poziom, abyś mógł dowiedzieć się, co będzie fajne, zanim
napiszesz
2
@Evorlor mówi, że mu się to nie podoba, nie że nie może tego zrobić. Dlaczego wszyscy cały czas ignorują ten punkt?
Davor
5
Dlaczego wszyscy biorą wszystko tak dosłownie? Wyraźnie żartował z tego oświadczenia. Rozumiem punkt widzenia PO, tak, mogliby wytworzyć kilka poziomów, ale nadal masz tyle poziomów, ile stworzyłeś. Jeśli poświęcisz tyle samo wysiłku na stworzenie dobrego generatora poziomów, masz potencjalnie nieskończone poziomy do użycia. Ludzie mają różne nastawienie i opinie. Niektórzy mogą chcieć tworzyć wspaniałe poziomy, inni mogą naprawdę cieszyć się z głębin w tworzeniu świetnego generatora poziomów.
JamEngulfer
7

W niektórych przypadkach możliwe jest poleganie na samych graczach w tworzeniu zrównoważonych asymetrycznych map za pomocą mechaniki manipulacji kafelkami.

Na jednym końcu spektrum możesz pozwolić graczom na tworzenie mapy, częściowo lub całkowicie, wybierając i umieszczając kafelki mapy. Istnieje wiele różnych sposobów na ulepszenie tego:

  • gracze wybierają ze wspólnej talii płytek
  • warstwy wybierz z osobistej talii płytek
  • kafelki są wybierane w fazie projektowania
  • niektóre kafelki mogą zostać z góry naprawione za pomocą scenariusza (tzn. zawsze spawnuje rzekę po środku mapy)
  • gracze kupują płytki z centralnego rynku z pewnymi zasobami
  • gracze mogą, ale nie muszą, trzymać ręki z płytek

Na drugim końcu spektrum manipulacji kafelkami pozwala graczom manipulować kafelkami mapy. W tym rozwiązaniu gra rozpoczyna się od początkowej mapy. Początkowa mapa może być symetryczna lub może być „wystarczająca” przy użyciu dowolnej z pozostałych odpowiedzi.

Następnie następuje faza manipulacji mapą, w której gracze mogą wykonać następujące czynności:

  • obróć płytkę
  • zamień płytki (sąsiadujące lub w inny sposób)
  • odbicie lustrzane kafelka
  • popchnij rząd lub kolumnę płytek (kafelek, który spadnie z krawędzi zawija się wokół)

Te manipulacje mogą być wykonywane pojedynczo, w którym to przypadku jeden gracz będzie miał szansę zareagować na manipulacje innego gracza lub gracz może stać w kolejce na liście zmian, które zostaną wykonane. Możesz także pozwolić graczom manipulować całą mapą lub ograniczyć rzeczy do ich obszarów początkowych.

Wadą tego podejścia jest to, że ostateczny wynik musi być chroniony przed niepożądanymi skutkami - tj. Manipulowanie nieprzejezdnym pasmem górskim, tak aby część mapy stała się niedostępna. Możliwe rozwiązania tej wady to:

  • sprawdzanie potencjalnych ruchów i niedozwolone działania, które prowadzą do nielegalnych wyników
  • dopuszczanie wszystkich ruchów, ale cofanie wszystkiego, co jest nielegalne
  • budowanie płytek tak, aby żadne ruchy nie były nielegalne
  • projektowanie innych mechanizmów gry (tj. ruchów) w taki sposób, aby żadne ruchy nie były nielegalne
Pikalek
źródło
2

Niech Twój algorytm generowania mapy generuje symetryczne poziomy, generując poziom, odbij go i umieść każdego gracza po jednej stronie. Mapę dla czterech graczy można utworzyć, tworząc kopię lustrzaną na osi X i Y.

W ten sposób mapa będzie równie dobra (lub zła) dla wszystkich graczy. Efektem ubocznym, o którym musisz wiedzieć, jest to, że gracze są świadomi pozycji innych graczy i rozmieszczenia innych części mapy po zbadaniu własnych.

Inną opcją jest wygenerowanie mapy bez tej sztuczki symetrycznej, ale następnie pokazanie graczom całej mapy i umożliwienie każdemu graczowi swobodnego wyboru początkowej lokalizacji.

Philipp
źródło
1

Jednym z podejść jest użycie innych czynników do zrównoważenia mapy. Możesz być w stanie zautomatyzować to za pomocą niektórych algorytmów analizy mapy i zapewniając dodatkowe zasoby początkowe do lokalizacji, które są uważane za znajdujące się w niekorzystnej sytuacji. Alternatywnie możesz użyć samych graczy do tego kroku. Bieżącym przykładem tego jest wykorzystanie aukcji odwrotnej w trybie ujawnienia w Offworld Trading Company (OTC) do ustalenia początkowego roszczenia (tj. Wybranie początkowej lokalizacji bazowej):

W miarę upływu czasu początkowy dług za wczesne założenie funduszu maleje. W końcu zamieni się w pieniądze początkowe, jeśli znalezienie dwóch ostatnich graczy zajmie wystarczająco dużo czasu. Gdy pozostanie tylko jeden gracz, który nie założył swojej kwatery głównej, wartości przestają się zmieniać i ten gracz nie zyskuje na czekaniu na znalezienie.

Nie pamiętam, czy był to wywiad z 3 ruchami przed nami lub Okrągły stół przy projektowaniu gry , ale w jednym z nich Soren Johnson (programista) mówi, że ta mechanika zasadniczo zmienia problem mapy z „czy mogę najpierw znaleźć najlepszą lokalizację” na „ jak dobra jest druga najlepsza lokalizacja na mapie. ”

Zaletą jest to rozwiązanie, które umożliwia wysoce asymetryczne mapy. Wadą jest to, że cała mapa jest ujawniana wszystkim graczom, przynajmniej na początku. Podejście pozagiełdowe ujawnia również lokalizacje bazy gracza. Inne mechanizmy, takie jak licytacja w ciemno, mogą uniknąć ujawnienia bazowych lokalizacji.

Pikalek
źródło