Losowość i jej percepcja

Zacznijmy od historyjki:
Dawno, dawno temu grałem w MU-Online. W tej grze istniał Chaos Machine, który miał pewną szansę na ulepszenie naszego przedmiotu lub zniszczenie go. Obserwowałem wielu ludzi, którzy swoim zachowaniem starali się wpłynąć na wyświetlaną szansę na sukces. Przykładowo, gdy chcieli coś ulepszyć, pierw wrzucali do niej jakieś śmieci, a dopiero po kilku failach decydowali, że teraz musi się udać ulepszyć przedmiot na którym im zależy. Wynik nie zawsze był dla nich pozytywny.

Aby móc jeszcze sensownie rozmawiać o losowości musimy ją jeszcze zdefiniować.
Losowość – brak celu, przyczyny, porządku lub przewidywalnego zachowania. Losowy proces to proces, którego wyniki nie dają się dokładnie przewidzieć, a można jedynie opisać ich rozkład. (wiki)
Z terminem losowości wiąże się też prawdopodobieństwo, czyli szansa na zaistnienie założonego wyniku.

Teraz myślę, że możemy zacząć omawiać temat percepcji losowości oraz rzeczy, które mają na nią wpływ.

Na początek przykłady.

Po pierwsze, ludzie są bardzo słabi w rozpoznawaniu losowości. Nasz mózg skonstruowany jest tak, aby dostrzegać wzorce we wszystkim, bo zazwyczaj to przynosiło lepsze wyniki w procesie doboru naturalnego. Klasycznym przykładem jest lew na sawannie. Lepiej było dostrzec lwa tam, gdzie go nie było i uciec przed niczym, niż zignorować pewne losowe wydarzenia, które mogły świadczyć o tym, że ten lew tam był. Swoje geny dalej przekazywały osoby, które miały tendencję do widzenia wzorów i tak oto powstaliśmy my.
Aby lepiej zrozumieć to zagadnienie warto spojrzeć na losowe rzuty monetą. W ciągu pięciu rzutów łatwo możemy otrzymać same reszki lub orzełki, co nie wygląda losowo na pierwszy rzut oka. (Kod na tworzenie losowych ciągów rzutów monetą znajdziecie na końcu tekstu. C#)
Ten fakt przypisywania nie-losowości losowym wydarzeniom wynika zapewne głównie z niewiedzy obserwatora. Nie wie on, czy faktycznie widzi coś losowego, czy może jednak za tym wszystkim stoi jakaś inteligencja.
Zabierzmy się za to z drugiej strony. Aby zrozumieć, jak ludzie postrzegają wydarzenia losowe, wystarczy poprosić kilka przypadkowych osób o zapisanie ciągu losowych liczb 0/1. Dużo rzadziej, niż przewiduje statystyka, natkniemy się na same zera lub inne ciągi, które “nie wyglądają losowo”. Innym testem może być podanie osobie kartki w kratkę i poproszenie o losowe zamalowanie kratek. Wynik też będzie raczej przypominał coś uśrednionego, bez extremów.

Zastanówmy się też, jak odbieramy procentowe określenie szans na jakieś wydarzenie. Czy widząc przed sobą szansę na wygraną wynoszącą 99% zagrałbyś? Jasne! Przecież to prawie pewna wygrana. A jak byś się czuł, w wypadku przegranej? Zapewne pomyślisz, że ktoś lub coś cię oszukało. Jednak statystyka nie ma uczuć. Średnio jedna osoba na 100 przegra.

Jedziemy dalej!
Paradoks hazardzisty jest to błąd poznawczy i logiczny, który polega na łączeniu w większą całość całkowicie odrębnych i losowych wydarzeń. Najłatwiej go opisać na przykładzie rzutów monetą (znowu). Wyobraź sobie, że już 10 razy pod rząd wyrzuciłeś reszkę. Jakie jest prawdopodobieństwo orła w kolejnym rzucie? Oczywiście, że 50%, jednak nasz mózg widzi tu coś dziwnego. To dlatego, że kolejny rzut widzimy w kontekście poprzednich. Ludzie siedzący w kasynach przy automatach, mają chyba problemy z dostrzeganiem tego. Przy okazji hazardu trzeba wspomnieć, że dochodzi tu aspekt inwestycji, którą wniósł już gracz w czasie całej gry. Jeśli już przegrał pewną kwotę, będzie chciał się odkuć, a jako, że już dużo przegrywał, wydaje mu się, że wygrana się zbliża.

Z losowością związane jest powstawanie przesądów. Stąd wzięła się moja historyjka z MU-Online. Ludzie wykonują pewne akcje, a po nich następuje jakieś wydarzenie losowe. Większość ludzi zacznie zastanawiać się, czy to, co zrobili przed chwilą miało jakikolwiek wpływ na całkowicie losowy wynik. To takie gołębie Skinnera, które tańczą, bo myślą, że ma to wpływ na to, czy dostaną jedzenie.

 

 

Powyższe ma bezpośredni związek z błędnym postrzeganiem korelacji z wynikaniem. To, że pewne wydarzenia wydają się mieć ze sobą pewien związek, nie świadczy o tym, że jest tak faktycznie. Podobnym problemem jest częste mylenie przyczyny ze skutkiem.

Program “Idź na całość” świetnie ukazywał pewne błędy w percepcji losowości. Czy wiedzieliście, że gołębie i szczury lepiej grają w tą grę?
W samej grze gracz stoi przed wyborem jednej z trzech bramek. Po dokonaniu wyboru prowadzący odrzucał jedną bramkę za którą nie było głównej nagrody. Wtedy gracz mógł zmienić swój pierwotny wybór lub przy nim pozostać. Wielu ludzi przy nim pozostawało. Okazuje się, że optymalną strategią jest ZAWSZE zmiana wybranej bramki. Gdy dokonamy zmiany mamy aż 66% na wygraną, a nie 33%, gdy pozostaniemy przy pierwszym wyborze. Jeśli chcesz bardziej zgłębić to zagadnienie, wyszukaj w sieci Monty Hall Problem.
Napisałem na szybko kod w C#, który symuluje obie sytuacje. Znajdziecie go na końcu tego tekstu (idealnie pasuje do wklejenia go do Unity, bo napisałem go przy pisaniu akurat czegoś innego i z lenistwa już nie modyfikowałem) 🙂

Lotto – temat rzeka lub przynajmniej strumień.
Nas interesuje jednak bardziej to, jak ludzie postrzegają tak niebotycznie małe szanse na wygraną. Szansa na trafienie szóstki to 1:13 983 816. Sam nie rozumiem do końca, co ta liczba oznacza. Dopiero umieszczenie jej w pewnym kontekście sprawia, że nabiera ona znaczenia. Szansa na śmierć w katastrofie lotniczej jest większa (wg. Źródła 1:1.500.000). Jednak mimo tego ludzie grają i liczą na wygraną, bo wiedzą, że jest to możliwe, bo wielu ludzi już wygrało. Duże liczby potrafią nas okłamywać, bo wymykają się naszej wyobraźni.

Przejdźmy troszkę bliżej naszego gamingowego podwórka.
W grze World Of Tanks mieliśmy (bo nie wiem, jak jest teraz), możliwość zainstalowania moda, który obliczał nam szansę na wygraną na podstawie efektywności poszczególnych graczy. Ciekawostką było to, że szansa na wygraną rzędu 60%, wcale nie sprawiała, że czuliśmy się pewniej, natomiast 60% szansy na przegraną sprawiało, że ludzie płakali, że nie mają szans wygrać, a co ciekawsze niektórzy gracze opuszczali takie gry z nieco mniejszym prawdopodobieństwem wygranej, co sprawiało, że faktycznie szanse na przegraną rosły jeszcze bardziej! To taka samospełniająca się klątwa.

Ciekawym przykładem, gdzie losowość ma duży i bezpośredni wpływ na grę jest X-COM. Problemem jest jej prezentacja. Bardzo często zdarza się, że widzimy, że nasz bohater bezpośrednio przystawia broń do głowy przeciwnika, a jednak szansa na trafienie może wynosić ~60%. Przy chybieniu w takiej sytuacji pojawia się bardzo dziwne uczucie, które jest mieszaniną złości, niedowierzania i zażenowania. W tej chwili arbitralne wyświetlenie szansy na trafienie nie miało dla gracza żadnego znaczenia, gdyż gra pokazała mu, że jego bohater przystawia broń do przeciwnika. Nawet storm trooperzy nie są tak słabi w strzelaniu.
Problem ten można by rozwiązać na wiele sposobów. Pierwszym pomysłem jest zmiana systemu animacji w takich momentach w taki sposób, aby postacie nie przystawiali broni do przeciwników. Innymi dodatkowymi pomysłami może być dodanie czynnika stresu, który zwiększa się wraz ze zbliżaniem się do przeciwników, który może wpłynąć na zacięcie się broni lub pozwolić przeciwnikowi zareagować w chwili strzału na przykład poprzez uderzenie w broń. Może też znacząco zwiększać szansę na trafienie na tak małych odległościach. Sposobów na rozwiązanie problemu jest wiele.

Wszystkie powyższe przykłady pokazują nam, jak ludzie postrzegają losowość. Więc jak żyć, jak designować w aspekcie losowości?
Nie chcę podawać Ci w tym tekście żadnych gotowych rozwiązań, lecz uzmysłowić Ci to, jak ludzie postrzegają losowość. Każda gra jest inna i przy każdej grze RNG może spełniać inne funkcje. Jak zrozumiesz to, jak jest odbierana, łatwiej będzie Ci jej używać.

Mam jednak kilka pro-tipów:

Zrozum, jak ludzie tworzą losowość, aby zrozumieć to, czego po niej oczekują.

Tworzenie prawdziwej losowości może nie mieć sensu.

Zastanów się, czy nie zastąpić pełnej losowości jakimiś mechanizmami pseudolosowości, tak, aby uniknąć długich serii niepowodzeń lub wygranych. Uczyniło tak już wielu designerów. W World of Warcraft szansa na drop questowego itemu zwiększa się za każdym razem, gdy nie uda się nam go wydropić. W League of Legends szansa na aktywację umiejętności opartej na losowości rośnie za każdym razem, gdy nie uda się jej aktywować, a sama początkowa szansa jest niższa, niż ta wyświetlana graczowi.

Pomyśl, czy dać graczom możliwość kompensowania zdarzeń losowych za pomocą swoich umiejętności. Świetnym przykładem jest tu gra Hearthstone. Mamy w niej wiele kart zaprojektowanych w taki sposób, aby doświadczony gracz mógł zwiększyć szansę na wynik, na którym mu zależy.

Jeśli masz w swojej grze system zapisów gry, zastanów się, jak ma działać w kontekście losowości. Raczej chcesz uniknąć sytuacji, gdy gracz będzie robił load, za każdym razem, gdy coś losowego pójdzie nie po jego myśli. Losowość oparta na seedzie lub jakiś inny mechanizm pseudolosowości mogą być rozwiązaniem. A może chcesz pozostawić graczowi lukę w systemie, której będzie mógł użyć, gdy będzie mu szło gorzej? Tak, czy siak, sprawa ta nie powinna być pozostawiona samej sobie, a podjęta świadomie.

Losowe wydarzenia mogą być odbierane jako zaplanowane. Weź to pod uwagę, gdy takowe mają mieć negatywny charakter. Możesz nie chcieć, aby gracz pomyślał, że specjalnie rzucasz mu pod nogi, gdy idzie mu zbyt dobrze lub, co gorsze odbierze to jako mechanizm, który ma kompensować słabe strony AI.

Źródła i inne ciekawostki:

https://www.youtube.com/watch?v=h4t-ZJZbrOU

http://www.sciencedirect.com/science/article/pii/019688589190029I

http://www.gatsby.ucl.ac.uk/~pel/papers/gallistel_et_al_2014.pdf

https://www.youtube.com/watch?v=bY7aRJE-oOY

https://www.youtube.com/watch?v=QNs8aB0huoc

https://www.youtube.com/watch?v=TtfQlkGwE2U

https://www.youtube.com/watch?v=4Lb-6rxZxx0

https://en.wikipedia.org/wiki/Randomness

Kod do Unity C#. Jeśli stworzysz wersję, która będzie nie pod Unity, daj znać, to ją tu dodam 🙂

Gist

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.