Site icon Marek Winiarski

Czy można zaprojektować losowść?

Czy można zaprojektować losowość w grach? | mWin GameDev

Transkrypt filmu

Mogłoby się wydawać, że w kontekście losowości w grach nie ma o czym mówić. Losujemy liczbę i wykorzystujemy ją w późniejszej pracy. Jednak losowość w grach trzeba dobrze zaprojektować i nie mówię tutaj o tym, że faktycznie dostajemy liczby pseudolosowe, a jedyny faktyczny generator losowych znaków, to początkujący użytkownik Linuxa, próbujący opuścić VIMa. Współcześnie losowość, wcale nie jest w pełni losowa.

Po co nam losowość?

Zacznijmy może od kwestii podstawowej, czyli po co nam losowość w grach?

Oczywistą myślą jest tutaj dodanie nieprzewidywalności czy nieszablonowości do gry. Takimi jaskrawymi przykładami będzie tutaj drop lootu w grach takich jak Diablo, czy Cyberpunk, gdzie po śmierci wroga, wypada z niego zwykła broń, albo epicka. Jest to element losowości, który sprawia że rozgrywka jest bardziej nieprzewidywalna, a gracz z wypiekami na twarzy czeka na efekt tego losowania, niczym na wyniki w totka.

Nieszablonowość jest również dość oczywistym rozwiązaniem, który trafia do praktycznie każdego rogalika. Poziomy są generowane w sposób losowy, albo mówiąc bardziej profesjonalnie – proceduralnie. Dzięki temu zabiegowi, kolejne przejścia tej samej gry nie będą takie same, co dla tego gatunku jest kluczowe. Wymusza to też na graczu opanowanie do perfekcji mechanik gry, zamiast uczenia się poziomów na pamięć, tak jak to zrobił jeden ze speedrunnerów gry Battle Toads – przechodząc poziom z torbą na głowie.

Dla twórców jest to też wygodne rozwiązanie, bo generowane losowych plansz, jest dużo szybsze niż tworzenie każdej ręcznie. Więc ta losowość nie tylko dodaje nieszablonowości, ale też potrafi przyspieszyć pracę i zaoszczędzić nieco środków.

Podobnym przykładem pod nieszablonowość mogą być NPC w grach z otwartymi światami. Kiedy twórcy się chwalą żywym światem, to nikt nie tworzy ręcznie wszystkich NPC, a są oni generowani z pewnego zestawu gotowych elementów. Szczególnym przykładem może być tutaj Watch Dogs: Legion, gdzie gracz może sterować każdą postacią, a każda z tych postaci ma nie tylko wygląd ale też osobowość i dobra materialne. Twórcy zastosowali tu sprytny zabieg, gdzie część elementów wynika z poprzednich. Dokładniej mówiąc, jedno losowanie ogranicza możliwości w kolejnym. Przykładowo jeśli NPC będzie miał wylosowany zawód prestiżowy, to jego stan konta, czy dom będą to odzwierciedlać. Dzięki temu, twórcy zachowują pewną dozę kontroli nad losowaniem i tworzą NPC którzy są bardziej wiarygodni. Nie spotkamy w grze kasjera mieszkającego w wielkiej wilii, czy prawnika z rynsztoka.

Możemy również zastosować losowość aby wyrównać szansę graczy. Na pewno kojarzycie gry typu Mario Kart. Gracze ścigają się i mogą zbierać paczki, gdzie losuje im się bonus. Czy to pocisk do ustrzelenia innego gracza, czy przyspieszenie. Sekret jest taki, że im dalej w stawce jesteśmy, mamy tym większą szansę na mocny bonus. Niby wszystko jest losowe, ale gracz prowadzący ma największe szansę na wylosowanie mniej przydatnego bonusu, kiedy zamykający wyścig dostanie potężne narzędzia – wszystko po to, aby dać mu szansę nadrobić. Taka losowość trafia się często w grach imprezowych czy rodzinnych, gdzie głównie chodzi o zabawę. Raczej nie znajdziemy tego w grach nastawionych na e-sport i rywalizację, bo taka zabawa losowością nieco niweluje różnicę umiejętności graczy, a w grach rankingowych liczy się właśnie skill.

Na koniec zostawiłem punkt, który wywodzi się w zasadzie od jeszcze papierowych gier RPG, czyli dodanie realizmu. W życiu bywa tak, że nawet jak coś umiemy to może nam to nie wyjść. Pomyślcie o przypaleniu prostej potrawy, albo o zawodowym piłkarzu, który całe życie trenuje kopanie piłki po czym w meczu nie trafia do bramki z pół metra. Zdarza się.

Dlatego w papierowym RPG o powodzeniu akcji, oprócz naszych umiejętności decydował rzut kostką. Tak w grach komputerowych ten rzut kostką gdzieś się pojawia. To właśnie dlatego w turowych grach strategicznych mamy pewien procent szans na trafienie. Jest to właśnie symulacja tego pierwiastka niewiadomej.

Dodanie głębi

Losowość może też nadać grze głębi. Popatrzmy na szachy. Znana wszystkim gra, która teraz zyskuje na popularności przez serial Gambit Królowej. Gra znana od wieków. To co odróżnia ją od wielu współczesnych gier, ale jest wspólne dla wielu gier (dla uproszczenia powiedzmy) planszowych jest fakt, że od samego początku wiemy wszystko. Widzimy całą planszę, wszystkie piony i wiemy jak każdy może się ruszyć. Tak naprawdę szachy sprowadzają się do przewidywania. Dlatego komputery tak dobrze sobie poradziły w walce z żywym graczem, bo przewidywać potrafią i mogę w krótszym czasie rozważyć więcej możliwych posunięć niż człowiek.

Keith Burgun wspomniał o horyzoncie informacji. Czyli zakresie wiedzy jaką gracz posiada. W przypadku szachów horyzont jest bezkresny, wiemy wszystko. Dobrym i klarownym przykładem ograniczenia tego horyzontu jest mgła wojny w grach strategicznych. Wyobraźcie sobie Warcrafta gdzie widzicie całą mapę. Gra stałaby się nieco bez sensu. W drugą stronę, szachy gdzie widzicie obszar tylko dookoła waszych pionków i nie wiecie w co się do końca pakujecie? Taka mgła wojny to jeden ze sposobów ograniczania horyzontu informacji.

Losowość może nam również zawęzić horyzont informacyjny. W grach karcianych dostajemy na rękę pewną losową pulę kart z naszego deku, więc możemy planować ruchy w pewnym stopniu, ale nie możemy tego zrobić w pełni, bo nie wiemy co nam się trafi na rękę w kolejnym pociągnięciu, mimo że swój deck znamy. Gdybyśmy znali kolejność kart, gra stała by się płytsza. Trzeba jednak uważać żeby nie przesadzić, jeśli dodamy za dużo losowości, to gra stanie się po prostu grą hazardową.O horyzoncie informacji opowiem szerzej innym razem, bo dzisiaj skupiamy się tylko na losowości.

Dwa rodzaje losowości

Na potrzeby gier możemy wyróżnić dwa rodzaje losowości. Input Randomness i Output Randomness. Jeden z projektantów cywilizacji wolał je nazywać preluck randomness i postluck randomness. Choć mogą one nieco lepiej tłumaczyć o co chodzi, to zostanę przy pierwszym określeniu, bo wydaje się bardziej oficjalne i to one częściej się pojawiają w literaturze.

Różnica między nimi jest zasadnicza. Input Randomeness to losowość która pojawia się przed podjęciem decyzji. Jeśli gracie w minecrafta to poziom generowany jest przed rozpoczęciem rozgrywki. W Hearthstone losujecie karty przed swoją turą. W przypadku output randomness jest kompletnie odwrotnie, czyli wykonujecie swoje akcję i wtedy do gry wchodzi losowość. Jeśli oddajemy strzał w Xcomie czy Wasteland, to najpierw decydujemy że chcemy strzelić, a potem gra oblicza czy trafiliśmy.

Output randomness jest tym, które częściej generuje frustrację u gracza. Nie znam przypadków złości, bo komuś źle się wygenerował poziom w Diablo, ale fakt, że ktoś miał 95% szans na trafienie i spudłował, generuje potworną frustrację. Ewentualnie pokonanie bosa z którego wypadają słabe przedmioty. To też raczej mało cieszy. Nie jest tak, że output randomness jest złe, a input dobre. Outpu Randomness wymusza na graczu planowanie i tworzenie strategii awaryjnych. Jeśli w turówce wydamy punkty akcji na zmianę pozycji i strzał, ale rywal przeżyje, to warto mieć plan na taki wypadek. Wielu twórców stara się losowość nieco opanować, tak żeby zmniejszyć szansę na frustrację, a w konsekwencji odejście gracza.

Jeśli gracie w nowego Tetrisa, to pojawiające się bloki nie są kompletnie losowe. Gra generuje wam ciąg siedmiu bloków, tak aby w jednym rzucie pojawił się jeden blok każdego rodzaju. Dzięki temu nie ma szansy na blokadę przez ciąg kiepskich bloków.

W Sly The Spire gdy pierwszy raz dojdziemy do bosa dostajemy darmowy bonus, czym twórcy zachęcają do podjęcia próby walki z bossem nawet jeśli okoliczności losowania kart nie poszły po naszej myśli.

Diablo modyfikuje parametry lootu tak, aby zwiększyć szansę na wylosowanie przedmiotu zgodnego z naszą klasą postaci.

Wasteland 3, jawnie pokazuje szansę na trafienie, oraz przy przemieszczaniu się pokazuje jak nowa pozycja wpłynie na szansę trafienia. Ponadto każdy pocisk liczony jest niezależnie. Więc jeśli karabin wypluje 5 pocisków, to przy 70% szansy trafienia, każdy pocisk ma taką szansę, co jest dużo fajniejszym posunięciem, niż system zero jedynkowy z Xkoma.

Strategiczne gry turowe są w ogóle ciekawym przypadkiem bo w nich zasadniczo output randomness może stać się input randomness. Ponieważ nasze akcje które poddane były losowaniu, wpływają na stan faktyczny kolejnej rundy, tym samym stają się losowością której konsekwencję już znamy. Jest to ważna cecha losowości w strategiach, bo daje nam to odpowiedni flow przerywania planów gracza, co w tego typu grach ma istotne znaczenie, bo gracz nie może przygotować perfekcyjnego planu i wykonać go od A do Z. W każdym filmie akcji, fabuła jest ciekawa bo coś bohaterom nie wyszło. I dzięki takim przerwaniom planu gracza, które generowane są przez element losowości, możemy też nadać ciekawego biegu przygodzie gracza.

Ludzie nie rozumieją losowości

Na pewno kojarzycie tego mema.

Mem jest zabawny, ale wiele osób wylewa frustrację w sieci przez kiepskie zrozumienie losowości i prawdopodobieństwa. 95% szans na trafienie, to nie 100%. Dalej jest ten cień szansy na pudło.

Gry i tak niejednokrotnie zakłamują pokazane procenty, albo oszukują na korzyść gracza. Gdy w Civilization rozegramy dwie potyczki gdzie mamy 33% szansy na wygraną i obie przegramy, to przy trzeciej zawsze wygramy. Nie ma to nic wspólnego z losowością, ale jest to zabezpieczenie dla graczy, aby uniknąć frustracji ciągłych porażek.

Zach Gage, autor gry Tharsis uważa, że ludzie bardzo kiepsko radzą sobie z rzeczami abstrakcyjnymi, w tym z matematyką, dlatego warto losowość im pokazać w sposób jaki znają. Dlatego w jego grze, moment losowania przedstawiony jest fizycznym rzutem kości, co gracze rozumieją lepiej, niż pokazanie jakiejś losowej liczby, czy wykonanie rzutu w tle jak ma to miejsce w np. Baldur’s Gate.

Jednak ten brak zrozumienia losowości można też wykorzystać na swoją korzyść. W In to the breach, budynki mają pewien procent szansy na przetrwanie ataku. Jest to z reguły bardzo niski procent. Jednak jeśli budynek przetrwa atak, dla gracza będzie to duże ufff, oraz świetna historia do opowiadania znajomym. Dlatego output randomness z niskim procentem prawdopodobieństwa, ale działającym na korzyść gracza, może być bardzo fajnym rozwiązaniem. Gracz nie liczy wtedy na sukces, ale gdy ten sukces się pojawi, to daje mu to sporo radości.

Losowość może być i jest przyjacielem designera. Potrafi w znaczący sposób urozmaicić rozgrywkę, oraz nadać jej dodatkowej głębi. Trzeba tylko z rozwagą dobierać typ losowości oraz nieco nim balansować tak, aby gra nie zmieniła się w jednorękiego bandytę, gdzie wygrać można tylko dzięki szczęściu.

Exit mobile version