Zgubiłeś kości do gry planszowej, czy potrzebujesz d20 w połowie sesji? To darmowe narzędzie online zastąpi każdą kość, której nie masz akurat pod ręką. Ustaw, iloma kośćmi chcesz rzucić w polu „Kości” — dowolną liczbą od 1 do 20 — określ, ile każda z nich ma ścianek w polu „Ścianki” i naciśnij „Generuj”. Strona otwiera się z dwiema zwykłymi kośćmi sześciościennymi, więc pierwszy rzut dzieli od Ciebie tylko jedno kliknięcie. Każda kość jest pokazana osobno, a całkowity wynik rzutu pojawia się pod spodem, dzięki czemu 3d6 nie wymaga liczenia w pamięci.
Każdy rzut jest wykonywany przez Twoją przeglądarkę poprzez Web Crypto API (crypto.getRandomValues), które dostarcza silne kryptograficznie wartości losowe ze źródła entropii Twojego systemu, zamiast korzystać z pseudolosowej funkcji JavaScript, takiej jak Math.random(). Przekształcanie surowej wartości 32-bitowej na numer ścianki to moment, w którym rzutniki kości po cichu się mylą: wzięcie wartości modulo liczba ścianek jest podejściem oczywistym, ale też obciążonym błędem, ponieważ — chyba że liczba ścianek dokładnie dzieli 2^32 — najniższe wartości padają odrobinę częściej niż pozostałe. Ta wada nosi nazwę błędu modulo (modulo bias) i jest zjawiskiem mierzalnym, a nie tylko teoretycznym. Zamiast tego, to narzędzie odrzuca każdą wartość powyżej największej dokładnej wielokrotności liczby ścianek i losuje ponownie — technikę tę określa się jako próbkowanie z odrzuceniem (rejection sampling). Kosztuje to kilka dodatkowych losowań, ale daje ścisłą gwarancję w miejsce przybliżonej. Nic nie jest wysyłane na żaden serwer, nic nie jest zapisywane, a gdy strona już się załaduje, Twoje rzuty będą nadal działać, nawet w przypadku zerwania połączenia z siecią.
Dwa pola wykonują całą pracę i bezpośrednio odpowiadają notacji, z której gry już korzystają. „Kości” to liczba kości, którymi rzucasz jednocześnie, od 1 do 20. „Ścianki” to liczba ścianek każdej z nich, od 2 do 1000 — wystarczy na rzut monetą d2, pełen zestaw do gier RPG z d4, d6, d8, d10, d12 i d20, rzut procentowy d100, a także wszystko inne, co gra wymyśli powyżej tej liczby. Cokolwiek jest zapisane jako NdM to właśnie te dwa pola: 2d6 oznacza „Kości” 2 i „Ścianki” 6, a pojedyncze d20 oznacza „Kości” 1 i „Ścianki” 20. Rzucasz 3d6 na statystykę postaci? Ustaw „Kości” na 3, „Ścianki” na 6, naciśnij „Generuj”, a otrzymasz trzy wylosowane wartości od razu podsumowane. Dwa przełączniki zmieniają wygląd wyniku, a nie jego sedno. Opcja „Animowane kości 3D”, domyślnie włączona, wprawia w ruch sześcian dla każdej kości, zanim ta ostatecznie opadnie — wyłącz ją, a liczby pojawią się natychmiast jako prosta lista. „Losowy kolor” nadaje każdej kości jej własną barwę zamiast standardowej czerwieni, ale działa to tylko wtedy, gdy „Animowane kości 3D” są włączone, ponieważ na zwykłej liście nie ma kości do pokolorowania. Oczka rysowane są tylko dla kości sześciościennej; każdy inny rodzaj po prostu wyświetla wylosowaną liczbę na ściance, ponieważ nie istnieje żaden wzór oczek dla kości siedemnastościennej.
Pod wynikiem znajduje się wiersz, który oszczędza matematyki: Σ to suma każdej kości w rzucie, tuż obok czasu trwania rzutu oraz informacji, że został on wygenerowany lokalnie. „Kopiuj wszystko” umieszcza wynik w Twoim schowku, a „Zapisz do pliku” zapisuje go jako dokument tekstowy — obie te opcje dają pojedyncze wylosowane wartości, po jednej w linii, zamiast samej sumy, by dziennik rzutów rzeczywiście był zapisem konkretnych wyników. „Historia” zachowuje Twoje 10 ostatnich rzutów w samej przeglądarce: kliknij jeden z nich, by przywrócić go na ekran (wraz z sumą), skopiuj lub usuń pojedynczy wpis, albo wyczyść całość w dowolnej chwili. Przycisk „Wyczyść” opróżnia pole z wynikiem, nie ruszając przy tym Twoich ustawień.
Czy wirtualne kości są lepsze od prawdziwych? Pod względem uczciwości — tak, i powód tego leży w fizyce. Zwykła, odlewana kość ma nawiercone i pomalowane oczka, a wywiercenie oczka wiąże się z usunięciem materiału. W efekcie ścianka z szóstką — z sześcioma zagłębieniami — staje się minimalnie najlżejsza, a przeciwległa jej ścianka minimalnie najcięższa. Właśnie dlatego kasyna stosują precision dice (kości precyzyjne): ich oczka są idealnie zrównane z powierzchnią za pomocą materiału o tej samej gęstości, krawędzie ścinane pod kątem prostym zamiast zaokrąglanych, dokładność obróbki sięga ułamków milimetra, a i tak wycofuje się je z gry po zaledwie kilku godzinach. Kości z pudełka z grą nie mają żadnej z tych cech i wraz z upływem czasu stają się coraz gorsze — ukruszony róg, stępione przez lata potrząsania krawędzie, kość, która upadła na kołdrę zamiast poturlać się po stole, tak naprawdę w ogóle nie wprowadza elementu losowości. Wirtualna kość nie posiada geometrii, która mogłaby zawieść, nie podlega zużyciu ani dyskusjom na temat techniki rzutu, i zachowuje się tak samo przy dziesięciotysięcznym rzucie, jak przy pierwszym. Tego, czego nie potrafi, to leżeć wygodnie w dłoni. Szczere podsumowanie jest takie, że to narzędzie wygrywa, jeśli chodzi o uczciwość, a przegrywa pod względem oprawy i nastroju.
Uczciwa kość to nie to samo co uczciwa suma. Szansa na wylosowanie każdej ścianki jednej kości jest jednakowa, jednak w momencie, gdy zsumujesz kilka kości, łączne wyniki przestają być równe, co nieustannie bywa dla ludzi zaskoczeniem. Dwie kości sześciościenne upadają w 36 jednakowo prawdopodobnych kombinacjach; sześć z nich daje sumę 7, podczas gdy dokładnie jedna daje sumę 2 i jedna 12 — co oznacza, że 7 wypada sześciokrotnie częściej niż 12, nawet przy idealnie uczciwych kościach. Dodanie trzeciej kości jeszcze bardziej zawęża ten rozkład, dlatego rzuty 3d6 kumulują się wokół środka i dlatego twórcy gier sięgają po nie, gdy chcą, by wartość była częściej przeciętna niż skrajna. Średni wynik jednej kości sześciościennej to 3,5, więc 2d6 daje średnią 7, a 3d6 średnią 10,5, i te wyliczenia bywają zazwyczaj dużo bardziej przydatne przy stole niż znajomość pojedynczego prawdopodobieństwa. Żadne z tych zjawisk to nie bias: to po prostu wynik sumowania kości, i jest to powód, dla którego gra wymaga rzutu 2d6, a nie d12, mimo że obie opcje obejmują ten sam zakres wartości.
Kości nie mają pamięci. Cztery szóstki z rzędu nie sprawiają, że piąta jest mniej prawdopodobna, kość, która przez cały wieczór nie pokazała 1, nic jej się za to nie należy, i żadna ze ścianek nigdy nie staje się ścianką „należną” — każdy rzut jest niezależny od wszystkich, które miały miejsce wcześniej, a kości nie potrafią wiedzieć, co zrobiły minutę temu. Instynkt, który podpowiada nam coś innego, to błąd hazardzisty (gambler's fallacy), i ten sam instynkt sprawia, że jesteśmy tak marni w samodzielnym wymyślaniu wyników rzutów: proszeni o spisanie realistycznej sekwencji rzutów, unikamy powtórzeń, naprzemiennie stosujemy niskie i wysokie liczby oraz rozkładamy wartości o wiele bardziej równomiernie niż kiedykolwiek czyni to przypadek. Prawdziwa losowość generuje natomiast skupiska, długie serie i spore luki. Ciąg rzutów, który wygląda podejrzanie uporządkowanie, nosi na sobie odcisk palca człowieka.
Dlaczego warto wybrać to narzędzie do rzutów kośćmi?
- Rzuty tylko w przeglądarce: kości są rzucane na Twoim urządzeniu i nigdzie nie są wysyłane
- Losowość dzięki Web Crypto API: kryptograficznie bezpieczna, żadnych funkcji Math.random()
- Żadnego zjawiska modulo bias: technika rejection sampling dba o to, by szanse każdej ścianki były jednakowe
- Każda kość, jakiej może wymagać gra: od 1 do 20 kości naraz, od d2 aż po d1000
- Suma policzona za Ciebie: Σ podlicza cały rzut, więc 3d6 nie wymaga rachunków
- Animowane kości 3D, lub animacja wyłączona na rzecz natychmiastowej prostej listy
- Odmienny kolor dla każdej kości, więc wiele kości łatwo odróżnić na pierwszy rzut oka
- „Historia” i „Zapisz do pliku”: zachowaj dowód rzutu, z którego musisz się wytłumaczyć
- Nielimitowane i darmowe: zero rejestracji, żadnych limitów użytkowania, ani przetrzymywania czegokolwiek na naszych serwerach
Kości pojawiają się wszędzie tam, gdzie gra potrzebuje liczby, której nikt nie wybrał. Gracze w papierowe gry RPG — w domu albo w klubie planszówkowym — rzucają na atak za pomocą d20, wykonują rzut 3d6 przy sprawdzaniu statystyk, a przy teście procentowym d100, przy czym sesja, w której zgubiono połowę woreczka z kośćmi, wcale nie staje w miejscu. Chińczyk i inne planszówki przy kuchennym stole przebiegają identycznie, nawet gdy zagubią się ich elementy — wystarczy ustawić „Ścianki” na 6, „Kości” na 2, i grać dalej. Grupy grające zdalnie rzucają na wspólnym ekranie, dzięki czemu wszyscy widzą te same wyniki. W 5 klasie na lekcji matematyki przeprowadza się klasyczne doświadczenie: rzuć 2d6 60 razy, policz wyniki i pozwól, by właściwy kształt rozkładu ujawnił się na tablicy. Z kolei projektanci gier sprawdzają ze statystykami, czy dana mechanika rzeczywiście ma tak szeroki rozrzut, jak im się wydaje, zanim jeszcze puszczą cokolwiek do druku. Dodatkowo mnóstwo rzutów decyduje tylko o tym, kto zaczyna, kto stawia kawę, albo który z dwóch planów wchodzi w życie — i to właśnie te rozstrzygnięcia zdane na los ludzie podejmowali za pomocą kości przez parę tysięcy lat.
To narzędzie ma kilka szczerych ograniczeń, z którymi warto się zapoznać. Jeden rzut wykorzystuje jeden rodzaj kości: wartość podana w polu „Ścianki” ma zastosowanie do każdej zawartej w nim kości, więc d20 i d6 razem wymagają dwóch rzutów zamiast jednego. Nie ma tu także modyfikatorów, ułatwień czy utrudnień (advantage/disadvantage), wybuchających kości (exploding dice) ani pola na wprowadzenie notacji kości — otrzymujesz po prostu wyniki na poszczególnych ściankach wraz z ich sumą, a każdą dodatkową zasadę nakładasz we własnym zakresie. Znak Σ zlicza każdą kość w rzucie, podczas gdy funkcje „Kopiuj wszystko” i „Zapisz do pliku” rejestrują poszczególne wyniki na ściankach, a nie ich sumę. Animacja jest tutaj zawsze sześciościenną kostką niezależnie od zadeklarowanej liczby ścianek, ponieważ stanowi jedynie formę dekoracji: ścianka, na której kostka się zatrzymuje, jest rzutem, który silnik w tle już dawno zdążył wygenerować. Rzuty odbywają się lokalnie na Twoim urządzeniu, więc podczas gry online jedna osoba turla kośćmi i dzieli się obrazem ze swojego ekranu — to narzędzie potrafi wygenerować rzut, którego pochodzenie jesteś w stanie wyjaśnić, ale nie taki, który mógłby certyfikować ktoś trzeci. Wreszcie, kryptograficznie uczciwa kość jest i zawsze będzie wyłącznie po prostu uczciwą kością: nie ma ona żadnego powiązania z losowaniami loterii lub wygranymi w kasynie, więc nikomu nie zapewnia przewagi. W tych właśnie ramach gwarancja narzędzia pozostaje solidna — każda ścianka każdej z kości zawsze dysponuje ściśle określoną, taką samą szansą na wypadnięcie przy absolutnie każdym rzucie.