Oficjalny poradnik · Finding Needle in the Stack
Jak działa stóg siana: kopiec 3D, który kopiesz w przeglądarce
Stóg w grze nie jest obrazkiem ani pustą skorupą. To pełny kształt, który zmienia się, gdy kopiesz, a tunele, które zrobisz, zostają tam, gdzie je zrobiłeś. Ten artykuł wyjaśnia bez nadmiaru żargonu, jak to działa i co musi zrobić gra przy każdej garści wyciągniętego siana.
Siatka gęstości zamiast sterty obiektów
Oczywistym sposobem zbudowania stogu byłoby ułożenie milionów osobnych kawałków siana i przesuwanie ich. To zmusiłoby do kolan każdą przeglądarkę. Zamiast tego gra przechowuje stóg jako trójwymiarową siatkę liczb. Każda komórka ma wartość od 0 do 255: 0 oznacza puste powietrze, a 255 mocno ubite siano.
Siatka ma 88 komórek szerokości, 40 wysokości i 88 głębokości, z jedną komórką co 0,3 metra. To łącznie 309 760 komórek, obejmujących przestrzeń około 26 na 12 na 26 metrów, w której swobodnie mieści się kopuła o średnicy około 21 metrów i wysokości prawie 10 metrów. Gra liczy tę objętość jako 5 000 000 „kawałków siana". To liczba, którą widzisz malejącą u góry ekranu, gdy kopiesz.
Z liczb powstaje powierzchnia
Liczb w siatce nie da się oglądać, więc gra zamienia je w powierzchnię. Używa techniki zwanej Surface Nets, która znajduje granicę między „powietrzem" a „sianem" i buduje wzdłuż niej gładką skórę. Wyobraź sobie owijanie folią miejsca, w którym liczby przekraczają połowę.
Dlatego tunel wygląda gładko i okrągło, a nie kanciasto. Dlatego też kopanie obok starego tunelu zlewa oba kratery.
Chunki: przerabiaj tylko to, co się zmieniło
Odbudowywanie całej powierzchni przy każdym wykopie byłoby zdecydowanie za wolne. Dlatego siatka jest podzielona na bloki po 16 komórek na krawędź, które gra nazywa chunkami. Gdy kopiesz, obniża gęstość wokół narzędzia i przerabia tylko chunki, których dotknąłeś. Reszta zostaje nietknięta.
To główna sztuczka, dzięki której kopiec reaguje natychmiast nawet na telefonie: ilość pracy zależy od tego, ile wykopałeś, a nie od wielkości stogu.
Źdźbła na wierzchu
Sama gładka powierzchnia wyglądałaby jak bryła gliny. Żeby wyglądała jak siano, gra pokrywa ją tysiącami małych źdźbeł rysowanych jako instancje. Instancjonowanie oznacza, że karta graficzna dostaje jedno polecenie: „narysuj ten kształt źdźbła wiele razy w tych pozycjach", co jest znacznie tańsze niż tysiące osobnych obiektów. Gdy kopiesz, lecą też luźne źdźbła, żeby każdy wyciągnięty chwyt miał ciężar.
Gdy siano spada
Jeśli wykopiesz jaskinię i odetniesz kawałek siana od reszty stogu, nic go już nie podtrzymuje. Gra stale sprawdza siano, które straciło połączenie, i pozwala mu spaść, dlatego trzeba uważać, drążąc strop nad własną głową. Wskazówki dotyczące bezpiecznego kopania są w Jak znaleźć igłę.
Zapisywanie stogu
Ponieważ cały stóg to po prostu ta siatka liczb, zapisanie go oznacza zapisanie siatki. Gra przechowuje ją w twojej przeglądarce, razem z pieniędzmi, narzędziami i pozycją, więc każdy tunel jest na miejscu, gdy wrócisz. Więcej o tym w Zapisywanie, eksport i przenoszenie zapisu.
Zbudowane z użyciem
Gra działa na Three.js, popularnej bibliotece open source, która pozwala stronom internetowym rysować grafikę 3D za pomocą WebGL. Żaden serwer nie wykonuje tej pracy: wszystko dzieje się na twoim urządzeniu.
Gotowy do kopania?
Za darmo w przeglądarce, na PC i telefonie. Postęp zapisuje się automatycznie.
Graj za darmo