Widok w trzech czwartych na płaskim płótnie
Do wersji 15.0 statek w TUNL był rysowany z góry, podczas gdy jaskinia wokół niego była przekrojem bocznym. Naprawienie tego oznaczało mały model 3D, hitbox, którego obraz nie mógł przerosnąć, i dużo powściągliwości co do tego, co powinno się poruszać.
Niedopasowanie
Jaskinia TUNL to przekrój boczny. Grawitacja ciągnie w dół, stalaktyty zwisają z sufitu, a podejście na początku każdego przelotu to sylwetka miasta o zmierzchu. Statek był jedyną rzeczą w niej rysowaną bezpośrednio z góry, jak rzut z góry samolotu lecącego przez obraz zbocza góry. Gracze zwykle tego tak nie formułują, ale sprawia to, że statek wydaje się lekko doklejony.
Oczywista poprawka, narysowanie zwykłego widoku z boku, odrzuciłaby sylwetkę z góry, po której rozpoznaje się statek, a kształt statku wygląda najlepiej widziany z góry. Kompromisem jest widok w trzech czwartych: model 3D tego samego kadłuba, obrócony z widoku z góry wokół swojej długiej osi i rzutowany płasko.
Malutki renderer
W TUNL nie ma żadnej biblioteki 3D ani etapu budowania, więc renderer jest mały. Kadłub istniał już jako zestaw płaskich fasetek, oświetlonych z góry, z górną połową zmieszaną w kierunku bieli, a dolną w kierunku niemal czerni. Wersja 3D nadaje każdej fasetce trzecią współrzędną, obraca model wokół długiej osi, rzutuje go ortograficznie i wypełnia każdą ścianę w tym samym płaskim, oświetlonym z góry stylu. Daje to około 90 widocznych ścian wypełnianych na klatkę, w porównaniu z około 40 wypełnieniami dla płaskiego kadłuba. Nie ma rozmycia, co ma znaczenie, ponieważ rozmycie to kosztowne wywołanie w widoku webowym telefonu, a poświata to pojedyncze wypełnienie promieniste. Gdyby słabe urządzenie kiedykolwiek miało trudności, oczywistym cięciem jest buforowanie kadłuba według kąta przechylenia w płótnie poza ekranem.
Hitbox rządzi
Najważniejszym ograniczeniem jest to, że kolizja się nie zmienia. Hitbox statku to okrąg, a cała trudność gry została dostrojona względem niego. Więc obraz 3D nie może wyglądać na większy niż okrąg ani na tyle mniejszy, żeby statek "umierał" zanim skrzydło widocznie czegoś dotknie.
To zmieniło kąt przechylenia z wyboru gustu w pomiar. Nachylony o 45 stopni od widoku z góry, czytelne jest tylko bliższe skrzydło, a obraz obejmuje ledwie ponad połowę do około czterech piątych wysokości okręgu. Przy 90 stopniach to po prostu znów stary widok z góry. Przy 60 stopniach czytelne są oba skrzydła, a rozpiętość wraca do około 85% okręgu. Zbudowałem małe laboratorium z pięcioma kandydackimi widokami i krzywą pokrycia i wybrałem 60. Test teraz sprawdza, że przy dowolnym przechyleniu i dowolnym skosie skrzydeł narysowany kadłub nigdy nie wychodzi poza okrąg ani nigdy poza płaski dziób, i że nadal wypełnia zdrową część okręgu podczas lotu.
Co się porusza, a co celowo nie
Gdy tylko statek stał się obiektem 3D, kuszące było animowanie wszystkiego. Większość z tego wycięto. To, co przetrwało, musi nieść informację:
- Przechylenie podąża za wznoszeniem. Tłumiona sprężyna obraca kadłub o do około dziesięciu stopni w każdą stronę, plecami do kamery podczas wznoszenia i brzuchem podczas opadania. Jest napędzane prędkością pionową jako ułamkiem prędkości granicznej, więc wygląda tak samo na każdym ekranie. To drugi odczyt tego, co próbujesz ocenić.
- Skrzydła zmieniają skos wraz z odczuwaną prędkością. Jak myśliwiec o zmiennej geometrii skrzydeł, zewnętrzne panele są rozłożone na wolnym starcie i mocno cofnięte, gdy jaskinia osiąga pełne tempo. Niebieska moneta, która spowalnia czas, rzuca je do przodu jak hamulec aerodynamiczny, i cofają się z powrotem dokładnie tak szybko, jak zanika spowolnienie. Warp składa je w pół sekundy.
- Pierścień warpu daje beczkę. Jeden pełny obrót, wygładzony. Jest bezpieczny z konstrukcji: warp czyni cię nietykalnym, więc obraz opuszczający okrąg w środku beczki nigdy nie może zdecydować o śmierci.
To, co nie przetrwało, to swobodne kołysanie. Wcześniejszy wariant, w którym statek "kołysał się po" ruchu, wyglądał żywo i był szumem: w grze, której jedyną umiejętnością jest odczytywanie odległości, kadłub oscylujący dla samego siebie konkuruje z informacją, której potrzebujesz. To ten sam tok rozumowania, który sprawił, że tło z paralaksą z odległych sylwetek skał zostało usunięte tego samego dnia, w którym je dodano. W grze polegającej na odczytywaniu, gdzie są ściany, drugi zestaw kształtów poruszających się z inną prędkością rozprasza uwagę, nawet przy niskim kontraście.
Malowanie na kadłubie 3D
Sześć wykończeń malarskich statku zaprojektowano dla płaskiego kadłuba, we współrzędnych rzutu. Zamiast rysować je od nowa, użyłem małej sztuczki geometrycznej: przy danym przechyleniu górna powierzchnia kadłuba rzutuje się dokładnie na rzut, ściśnięty pionowo przez sinus kąta przechylenia. Więc istniejący malarz działa pod tym ściśnięciem i jest przycięty do sylwetki 3D. Dwie rzeczy, których nie da się wyrazić w ten sposób, szwy fasetek i obrys, są rysowane w przestrzeni ekranu.
Dla wersji 3D potrzebna była jedna korekta. Płaski kadłub ma siedem fasetek, a wersja 3D ma ich około dziewięćdziesiąt, a rysowanie jasnego szwu na każdej z nich zamieniało wykończenie STEALTH w lampę. Więc w 3D szwy działają z połową mocy i pomijają małe ściany, a gdy kadłub jest niemal widoczny z krawędzi w środku beczki, wzór jest pomijany dla tych kilku klatek.
Co pozostało płaskie
Tylko statek w locie otrzymał nowy widok. Hangar, sklep i karta udostępniania nadal pokazują statek z góry, ponieważ są to portrety statku, a nie obrazy lotu, a widok z góry to ten, który pokazuje cały rzut. Ikona aplikacji i grafiki sklepowe również są portretami z góry, a to, czy powinny kiedyś podążać za widokiem w locie, pozostaje otwartym pytaniem.
Pełny obraz tego, jak statek jest zbudowany i malowany, znajduje się na stronie statków, a jego lot możesz zobaczyć w dzisiejszej jaskini.