Badass Hero – wywiad z twórcą o proceduralnym generowaniu poziomów

Badass Hero – wywiad z twórcą o proceduralnym generowaniu poziomów

 

Wywiad przeprowadzony na PGA z Andrzejem Pasińskim – osobą stojącą za designem, grafiką oraz animacją Badass Hero.


Jimmy
: Czemu zdecydowaliście się użyć proceduralnie generowanych poziomów?

Andrzej: Gdyż mamy grę z gatunku roguelike, których rdzeń opiera się na proceduralnie generowanych poziomach. Gry tego typu wymagają tego, aby zagrać w nie wiele razy, aby w końcu je ukończyć. Grasz, potem giniesz, stajesz się lepszy, idzie ci troszkę lepiej. W związku z tym, bez losowych elementów, gra szybko nudziałaby się w związku z tym, że gracz ciągle wpadałby na te same rzeczy. Dzięki proceduralnie generowanym poziomom mamy gwarancję, że przez kilka-kilkanaście godzin gracz będzie spotykał ciągle nowe układy pomieszczeń, będzie napotykał nowe wyzwania i ciągle będzie miał nowe rzeczy do eksploracji.

J: Minusy procedural generation?

A: Etapy, które są proceduralnie generowane nigdy nie wyglądają tak ładnie, jak te, które są tworzone ręcznie. Przy poprzednich grach byłem w stanie zaplanować to, że konkretne elementy mapy miały konkretne role gameplayowe, ale przy okazji mój zmysł estetyczny był zadowolony, tzn byłem w stanie rozplanować pomieszczenie tak, że ustawiałem symetrycznie dwie pułapki po jego bokach, a w środku umieszczałem przeciwnika. Teraz oczywiście też tak robię takie układy, ale nigdy nie mam pewności, co do tego, co wylosuje się dookoła i jaki będzie efekt końcowy. Nie oznacza to oczywiście, że to, co powstaje nam w Badassie wygląda źle, jednak mój zmysł graficzny nie jest do końca zadowolony.

J: Jak przygotowujesz się do tworzenia poziomów z pomocą proceduralnej generacji? Co trzeba zdefiniować, jakie zasady ustalić?

A: Mamy grę, która dzieje się w komiksie, w związku z czym, nasze generowanie dzieli się na 2 poziomy.
Na pierwszym poziomie zapełniamy stronę komiksu ramkami/kadrami. Ramki te mogą mieć kilka rozmiarów – mamy 1,2,3,4,6 ekranowe kadry.
Drugi poziom to generowanie samego kadru/poziomu. Każdy pokój musi mieć określoną liczbę wejść i wyjść. Nie może być pokoju, którego nie można opuścić lub do którego nie da się wejść. Musi dać się też przejść do następnej strony naszego komiksu.
Tworząc konkretne pokoje zaczynam od wymyślenia ogólnego szablonu, na przykład ‘to będzie pomieszczenie z duża ilością kolców niższym poziomie i gracz będzie skakał pomiędzy platformami. Można powiedzieć, że nasze poziomy nie są w pełni generowane proceduralnie, gdyż nie są tworzone całkowicie przez jakiś algorytm, a tworzymy je z pewnych bloków gameplayowych.
Poniżej screeny z edytora, które wizualizują, jak wyglądają Badassowe bloki gameplayowe.


Wybraliśmy tą opcję, gdyż całą grę tworzymy z myślą o utrzymaniu dużej dynamiki, w tej grze, nie można grać ostrożnie tak, jak w wypadku Gungeon, czy Binding of Issac, tu musimy być w  centrum walki. Między innymi tą dynamikę wspiera system combo, który daje graczowi duże profity, gdy ciągle zabija wrogów bez otrzymywania obrażeń. Możliwość utrzymania długiego combo jest właśnie jedną z rzeczy, której podporządkowany jest nasz level design. Gdybyśmy wszystko oddali w ręce algorytmu nie mielibyśmy pewności, że takie combo da się utrzymać na przykład z powodu zbyt małej ilości przeciwników. Dlatego każdy  bloczek gameplayowy tworzymy ręcznie, a później dzieje cię programistyczna magia, która skleja te bloki w cały etap.

J: Jak wygląda kwestia testowania takich poziomów?

A: Po pierwsze sprawdzamy nasze podstawowe bloki gameplayowe jeszcze przed składaniem ich w pokoje. Sprawdzamy między innymi to, czy da się przejść je bez utraty punktów życia. W wypadku pokojów jednoekranowych, możliwych układów jest pewnie około setki, natomiast w większych pokojach robi się ich może i kilka milionów. Od razu widać, że nie da się sprawdzić wszystkich leveli we wszystkich możliwych układach. W związku z tym, wiele rzeczy sprawdzanych jest jedynie do pewnego stopnia, który pozwala upewnić się, że wszystko ogólnie będzie działać poprawnie, lecz rzeczy takie, jak piła zawieszona o kilka pixeli za nisko mogą się prześlizgnąć. Najgorszymi przypadkami mogą być pewne glitche graficzne, np gdy w konkretnym miejscu, gdzie jest mało przestrzeni, był przypisany slot na przeciwnika, a został wylosowany jakiś duży wróg, który zwyczajnie się tam nie zmieścił. Dodatkowo w tych dużych pokojach problemem są pewne układy, które się wzajemnie zazębiają i nachodzą na siebie, na przykład grupa szybko poruszających się pił.
Ważna jest obserwacja innych ludzi, jak grają w naszą grę. Targi są do tego świetną okazją, gdyż przewija się tu masa ludzi. Dla nas – developerów, którzy przechodzili grę już setki razy pewne rzeczy mogą wydawać się dziecinnie proste, a jednak dla osób, które nie miały styczności z grą poziom trudności może okazać się zaporowy. Zbieramy feedback i na jego podstawie też decydujemy o pewnych zmianach. Bywa też tak, że pewne bloczki zmieniamy (na przykład usuwając 2 piły z układu czterech), a niektóre całkowicie wyrzucamy.

J: Jak sterujecie poziomem trudności?

A: Każda kolejna strona komiksu zawiera zestaw coraz to silniejszych przeciwników. Wraz z kolejnymi poziomami zwiększamy parametry takie, jak prędkości pocisków, czy punkty życia. Dodatkowo na 1 stronie nie ma żadnych bossów, na drugiej można trafić na minibossów, a dalej jeszcze spotykamy bossów.

*Koniec wywiadu*

Swoją drogą…

Badass Hero, to jedna z tych gier, na które bardzo czekam i staram się nie przepuścić żadnej okazji na zagranie w nią przy okazji takich eventów jak Digital Dragons, czy właśnie PGA. To świetna gierka w którą gra się świetnie i która świetnie wygląda (pomimo tego, że Andrzejowi i tak ciągle by coś poprawiał).

Linkownia:


Badass Hero on Steam

Oficjalna strona Badass Hero