Hash Runner — Biegnij po łańcuchu
Endless runner w WebGL po blockchainie. Przeskakuj bloki stale, omijaj sieroty, zbieraj nonce i pieczętuj bloki. Za darmo, bez rejestracji.
Strzałki lub A/D zmieniają pas, spacja albo W to skok. Na telefonie: przesuń w bok, dotknij, żeby skoczyć.
Jak grać
- Strzałki lub A/D zmieniają pas; spacja, W albo strzałka w górę to skok. Na telefonie przesuń w bok, żeby zmienić pas, i dotknij, żeby skoczyć.
- Bursztynowa belka w poprzek wszystkich trzech pasów to blok stale. Przeskocz ją — przesunięcie w bok nic nie da.
- Czerwona ściana na dwóch pasach to sierota. Przejdź na wolny pas — jest wyższa, niż zdołasz skoczyć.
- Zielone sześciany to nonce'y. Sześć pieczętuje blok, a każdy blok przyspiesza trasę aż do maksimum.
Jak to działa
Endless runner z dwiema przeszkodami, które chcą od ciebie przeciwnych rzeczy. Blok stale leży w poprzek wszystkich trzech pasów — przeskakujesz go, a zmiana pasa nic nie daje. Sierota stoi na pełnej wysokości na dwóch z trzech — przechodzisz na wolny, a skok nic nie daje, bo ściana jest wyższa niż skok. Nie ma więc jednego klawisza, który utrzyma cię przy życiu: ciągłe skakanie ginie na pierwszej sierocie, a stanie w miejscu ginie równie szybko — na belce albo na ścianie na pasie, z którego nigdy nie zjechano. Jedno i drugie jest zmierzone w testach, a nie założone. Nonce'y leżą na linii, którą przeżycie i tak wyznacza: na wolnym pasie sieroty i w powietrzu nad belką. Sześć nonce'ów pieczętuje blok, każdy blok przyspiesza trasę aż do maksimum, a odstęp między przeszkodami kurczy się z nieco ponad sekundy do czterech dziesiątych, gdzie się zatrzymuje — prawie każdy bieg kończy się mniej więcej tam. Renderowane w WebGL z ręcznie napisanymi shaderami i bez biblioteki 3D, więc cała strona mieści się w budżecie wydajności; bez WebGL przechodzi na renderer 2D i dalej da się grać. Działa na twoim urządzeniu, nic nigdzie nie jest wysyłane.
Gra o łańcuchu, nie poradnik o wydobyciu. Prawdziwy blok stale to to, co zostawia po sobie konsensus; prawdziwa sierota to blok, który przyszedł przed swoim rodzicem. Żadnego z nich się nie omija.
Najczęstsze pytania
Czym różni się blok stale od sieroty?
W grze stale leży w poprzek trasy, a sierota stoi na dwóch pasach: jeden chce skoku, druga zmiany pasa. Nazwy pochodzą z prawdziwego wydobycia. Blok stale to poprawny blok, który przegrał wyścig: został wykopany, ale budowano dalej na innym bloku o tej samej wysokości. „Sierota” bywa używana potocznie na to samo; ściśle rzecz biorąc to blok, którego rodzica węzeł jeszcze nie widział, a nowoczesne klienty takich bloków już nie przechowują. Gra pożycza obie nazwy dla dwóch zagrożeń karzących przeciwne nawyki — to nie lekcja o reorganizacji łańcucha.
Czy mogę po prostu trzymać jeden klawisz?
Nie, i taki jest zamysł. Ciągłe skakanie ginie na pierwszej ścianie-sierocie, wyższej niż jakikolwiek skok. Nieskakanie ginie równie szybko: mniej więcej w połowie przypadków na belce stale, a w połowie na sierocie stojącej na pasie, z którego nigdy nie zjechałeś. Oba nawyki są zmierzone na czterdziestu ziarnach w testach i żaden nie przechodzi dalej niż kilkaset metrów. To, że skok nie przeskoczy ściany, też jest sprawdzane: gdyby przeskakiwał, jeden nawyk pokonałby całą grę.
Czy w końcu robi się niemożliwa?
Robi się bardzo trudno, a potem przestaje robić się trudniej. Oba pokrętła — prędkość i odstęp między przeszkodami — zatrzymują się na dwunastu zapieczętowanych blokach, więc po jakichś stu sekundach gra trzyma stałą trudność: 0,40 sekundy odstępu, z czego dwupasmowy unik zjada 0,27, zostawiając około 0,15 na reakcję. Prawie każdy bieg tam się kończy. Kto jednak dobrze czyta każdą przeszkodę, nie musi przegrać: gra celowo nigdy nie jest niesprawiedliwa, a test przechodzi każdy poziom trudności i sprawdza, że odstęp nigdy nie spada poniżej tego, czego fizycznie wymaga zmiana o dwa pasy.
Czy potrzebna jest szybka maszyna?
Nie. Rysuje każdą bryłę w świecie — trasę, ściany, nonce i ciebie — jako instancje jednego sześcianu w jednym wywołaniu rysowania, z ręcznie napisanymi shaderami i bez biblioteki 3D. Framework WebGL kosztowałby około 150 KB po gzipie dokładnie na tej stronie, na którą trafia się z udostępnionego linku; to kosztuje kilka. Bez WebGL przechodzi na renderer 2D i dalej da się grać.