Blog

Przemyślenia, plany i historia rozwoju projektu

Jak działa rzut kością? Dlaczego to nie jest takie proste, jak się wydaje?
Technologia31 stycznia 20267 min

Jak działa rzut kością? Dlaczego to nie jest takie proste, jak się wydaje?

Komputer jest deterministyczny co oznacza że zawsze daje ten sam wynik dla tych samych danych. Jak więc sprawić, aby wirtualny rzut kością był jak najbardziej losowy i uczciwy?

Rzut kością w RPG Books

Jak to właściwie działa? I czy da się zrobić to uczciwie?

Komputer jest przewidywalny. I to jest problem.

Komputery działają deterministycznie. Znaczy to po prostu tyle, że jeżeli dasz komputerowi te same dane, zawsze dostaniesz ten sam wynik. Zawsze. Zero niespodzianek.

To fundamentalna cecha jeśli tworzysz algorytmy które zawsze mają działać w oczekiwany sposób, natomiast fatalna jeśli chcesz losować rzuty kością.

Jak działa losowość w grach komputerowych?

Losowość opiera się na czymś co nazywamy generatorem liczb pseudolosowych (ang. pseudo-random number generator). To algorytm który bierze jakieś dane wejściowe (zwane seedem) i przetwarza je na ciąg liczb, które wyglądają na losowe, ale skąd one się biorą? Skąd ten seed?

Jednym z popularnych źródeł jest czas który daje pewną losowość, bo nikt nie wie dokładnie kiedy klikniesz przycisk. Czas jest liczony w milisekundach od pewnego momentu (np. Unix time czyli ile minęło sekund od 1 stycznia 1970 roku). Każda sekunda to inna liczba, więc teoretycznie każdy rzut mógłby być inny.

Do tego dochodzi jeszcze entropia systemu, czyli różne dane które komputer zbiera o swoim otoczeniu i które mogą być użyte do zwiększenia losowości.

Dlaczego to nie jest idealne?

Gdyby rzut k20 opierał się tylko na tym kiedy kliknąłeś przycisk, to teoretycznie dwie osoby klikające dokładnie w tej samej sekundzie dostałyby identyczny wynik.

Dużo większe znaczenie ma gdy rzucam jednocześnie 5k20 czyli 5 rzutów kością 20 oczkową, to szansa że wyniki wypadną podobne jest większa.

Jak rzuca się prawdziwą kością?

Gdy rzucasz fizyczną kością po stole, wynik zależy od mnóstwa rzeczy naraz:

  • Powierzchni po której toczy się kość
  • Siły rzutu z jaką rzucisz, delikatnie czy z większą siłą
  • Wektoru czyli strony w którą kość zostanie rzucaona i jak zacznie się obracać
  • Samej kości jak jest zbudowana, jej wagi, wyważenia czy powierzchni

To cztery niezależne zmienne, które razem tworzą nieprzewidywalny wynik. Żaden gracz nie kontroluje ich wszystkich naraz. I właśnie dlatego rzut jest losowy.

Seed, czyli jak gry komputerowe oszukują losowość

Jeśli grasz w gry komputerowe, pewnie spotkałeś się z pojęciem seeda przy generowaniu map albo startowym świecie. Wpisujesz jakieś słowo, a gra generuje na jego podstawie określony wynik, zawsze taki sam dla tego samego słowa.

Skąd to się bierze? Bo komputer wszystko przelicza na liczby. Gdy wpiszesz słowo "kot", komputer widzi tak naprawdę 107 111 116, każda litera ma swój kod numeryczny. I te liczby stają się punktem startowym dla wszystkich obliczeń.

Jak to rozwiązałem w RPG Books?

Postanowiłem żeby seed tworzył się sam z zachowania gracza podczas rzutu. Dwie zmienne które biorę pod uwagę to siła rzutu (jak długo przytrzymujesz przycisk rzutu) oraz wektor rzutu (gdzie dokładnie na przycisku kliknąłeś). Można powiedzieć że do każdego rzutu dodajesz cząstkę Twojej unikalności.


Do zobaczenia przy następnym rzucie!

~ Twórca RPG Books
Coś się zaczyna... Witaj w RPG Books!
Ogłoszenia19 sierpnia 20254 min

Coś się zaczyna... Witaj w RPG Books!

Nie od razu Rzym zbudowano, a RPG Books nie powstało w jeden dzień.

Witaj, Podróżniku!

Pamiętasz tę magię, gdy po raz pierwszy zasiadłeś do stołu z przyjaciółmi, kośćmi i kartką postaci? Kiedy przemierzaliście wspólnie świat, rozwiązywaliście zagadki czy walczyliście z potworami? To właśnie ta idea jest sercem RPG Books.

Dlaczego powstało RPG Books?

Bo życie czasem staje na przeszkodzie aby wspólnie się zebrać przy jednym stole. Praca, odległość to tylko niektóre z powodów które utrudniają spotykanie się na regaularnych sesjach w rzeczywistości.

Każdy mistrz gry preferuje inne metody prowadzenia sesji, korzysta z innych narzędzi, docenia inne funkcje.

Z takiego powodu nie istnieje jedno uniwersalne rozwiązanie które zadowoli każdego. Chciałem stworzyć coś na tyle elastycznego, że każdy będzie mógł dostosować to do swoich potrzeb. Coś co będzie proste dla początkujących, ale jednocześnie wystarczająco rozbudowane dla doświadczonych graczy.

Co to jest RPG Books?

RPG Books to wirtualny stół do sesji RPG. Mistrz Gry tworzy pokój, gracze dołączają, i wszyscy macie wszystko w jednym miejscu. Mapy, kości, karty postaci, notatki, klimatyczna muzyka.

Bez zbędnego kombinowania. Bez dziesięciu zakładek w przeglądarce.

Dla kogo to jest?

Dla drużyn które nie mogą spotykać się przy fizycznym stole tak często jak by chciały. Dla tych którzy dopiero zaczynają przygodę z RPG i nie wiedzą od czego zacząć. Dla doświadczonych Mistrzów Gry którzy chcą prowadzić sesje sprawniej.

I trochę dla mnie, pomimo że samemu gram to także jestem developerem który stara się tworzyć przydatne i funkcjonalne narzędzia dla ludzi.

Na początku drogi

RPG Books jest na początku swojej drogi. Będzie rosło, będzie się zmieniało, pewnie nieraz zdarzą się błędy, czy platforma się wysypie w piątek wieczorem. Ale to wszystko jest częścią tej przygody.


Do następnego spotkania przy stole!

~ Twórca RPG Books

~ Twórca RPG Books

To wszystkie wpisy na blogu. Wkrótce więcej!