Najpierw za szybko, potem za miękko: strojenie ciągu

Jedna stała decyduje o odczuciu TUNL bardziej niż cokolwiek innego. Zmieniłem ją dwukrotnie w ciągu jednego dnia, po tym jak gracz powiedział mi, że gra jest za szybka, a druga zmiana nauczyła mnie więcej niż pierwsza.

Devlog · 20 września 2026 · wszystkie wpisy

Sterowanie nie działa tak, jak większość myśli

W grze w stylu Flappy Bird jedno stuknięcie daje ptakowi natychmiastową prędkość ku górze. TUNL działa inaczej. Przytrzymanie nie ustala twojej prędkości, ustala twoje przyspieszenie. Gdy przytrzymujesz, siła skierowana do góry dodaje się do grawitacji, a gdy puszczasz, działa sama grawitacja. Statek zachowuje pęd podczas tego przejścia, więc jeśli puścisz na szczycie wznoszenia, przez chwilę jeszcze będziesz się wznosić. To nadaje grze ciężar, a jednocześnie sprawia, że liczby są bardzo wrażliwe.

Definiują to trzy stałe: grawitacja ciągnie w dół, ciąg pcha w górę podczas przytrzymania, a prędkość maksymalna ogranicza tempo od góry. Dla odczucia najważniejsza jest para przyspieszeń netto: jak mocno przyspieszasz w górę przytrzymując (ciąg minus grawitacja), w porównaniu z tym, jak mocno przyspieszasz w dół puszczając (sama grawitacja). Stosunek tych dwóch wartości to charakter gry.

Jak zrobiło się za szybko

Przez kilka podejść zaostrzałem liczby coraz bardziej, w pogoni za ostrym odczuciem w stylu Flappy Bird. Grawitacja wzrosła z 1150 do 1300, ciąg z 2400 do 3400, a prędkość maksymalna z 820 do 1080. Każdy krok podczas testów wydawał się lepszy, bo dostrajałem tak, by skrócić opóźnienie między kciukiem a statkiem. Ostatecznie przyspieszenie netto w górę było około 1,6 raza większe niż przyspieszenie netto w dół.

Potem jeden z graczy na Reddicie napisał, że przyspieszenie wydaje się za szybkie, że umiera zanim w ogóle zdąży poczuć dreszczyk emocji z przelotu. Była to pierwsza niewymuszona opinia, jaką kiedykolwiek otrzymała ta gra, więc miała wagę. To, co optymalizowałem, responsywność, było dokładnie tym, co czyniło grę bezlitosną.

Za miękko, potem gdzieś pośrodku

Pierwszą reakcją było zmniejszenie ciągu z powrotem do 2700. To znacznie bliżej grawitacji, z przyspieszeniem netto w górę tylko nieznacznie większym niż przyspieszenie netto w dół. Tego samego dnia to przetestowałem i okazało się to złe w przeciwnym kierunku: za miękko. Statek zdawał się wisieć w powietrzu, a wznoszenie niemal nie różniło się od opadania, co jest innym sposobem utraty odpowiedniego odczucia.

Druga zmiana była więc kompromisem wybranym przez patrzenie na oba stosunki, a nie tylko na odczucie. Pierwotne ostre strojenie dawało około 2100 w górę wobec 1300 w dół. Złagodzone dawało 1400 w górę wobec 1300 w dół. Ustaliłem ciąg na 3100, czyli 1800 netto w górę wobec 1300 netto w dół, mniej więcej pośrodku. Wznoszenie nadal wydaje się bardziej responsywne niż opadanie, ale nie ma już niemal natychmiastowego przyklejenia do prędkości maksymalnej. Grawitacja i prędkość maksymalna nie zmieniły się przez cały ten czas.

Lekcja, jaką z tego wyciągnąłem, jest taka, że "za szybko" i "za miękko" to dwa końce jednego stosunku, a nie dwa osobne problemy. Gdy tylko spojrzałem na wznoszenie netto wobec opadania netto, cel stał się oczywisty. Wcześniej po prostu regulowałem jedną liczbę i oceniałem ją ponownie na czucie.

Druga połowa odpowiedzi tkwiła na początku

Ponowne dostrojenie ciągu naprawiło odczucie, ale nie powód, dla którego nowy gracz szybko umiera. Mierząc przelot początkującego gracza, mediana wynosiła około jednej sekundy lotu. Sama animacja startu trwała dłużej niż to. Wzorzec był jasny: początkujący naciska i przytrzymuje, statek wjeżdża w sufit, i po wszystkim. Nic w grze nigdy nie uczyło drugiej połowy schematu sterowania, czyli puszczania.

Odrzuciłem podpowiedź tekstową. Wypróbowałem jedną, "PRZYTRZYMAJ, by się wznieść, PUŚĆ, by opaść", pod tytułem, i usunąłem ją tego samego dnia, bo wydawała się zbędna obok przycisku, który już mówi, żeby przytrzymać, i zatłaczała rząd przycisków poniżej. Informacja była poprawna. Zdanie nie było właściwym sposobem, by ją przekazać.

Więc zamiast tego uczą tego monety otwarcia. Na pierwszym odcinku jaskini linia monet jest wymuszona na łagodnym łuku, który zaczyna się poniżej wysokości startu i wznosi się nad nią. Aby wziąć pierwszą monetę, musisz puścić i szybować w dół. Aby wziąć drugą, musisz przytrzymać i się wznieść. Do trzeciej monety poczujesz już obie połowy sterowania, a nikt nie powiedział ani słowa. To zadziałało razem z resztą zmiany, bezpiecznym odcinkiem otwarcia z dwoma zadrapaniami kadłuba, które opisuję we wpisie o tempie.

Do czego służy historia strojenia

Powodem, dla którego prowadzę ten rejestr, jest to, że taka stała z czasem dryfuje. To liczba w pliku, łatwa do lekkiego przesunięcia, a każde małe pchnięcie da się uzasadnić w danej chwili. Prowadzę historię każdej wartości, jaką kiedykolwiek miała, i powodu, dla którego ją zmieniono, żeby następnym razem, gdy ktoś (w tym ja) pomyśli, że gra byłaby lepsza z odrobiną większej ostrości, odpowiedź była już zapisana: to już wypróbowano, a gracze powiedzieli, że jest za szybko.

Model wejścia również jest stały. Przytrzymanie jako przyspieszenie to tożsamość gry, a strojenie może się w jej ramach poruszać, ale nigdy nie może zastąpić go natychmiastowym impulsem. Ekrany różnych rozmiarów uzyskują tę samą odczuwalną trajektorię dzięki regule skalowania, którą opisuję we wpisie o sprawiedliwości.

Jeśli chcesz poczuć efekt, statek jest o jedno stuknięcie stąd.

Zagraj w dzisiejszą jaskinię