Silnik gier: platformy jednokierunkowe
Silnik gier 2D Moonlight Studio dostał platformy jednokierunkowe — półki, przez które postać przeskakuje od spodu, ale na których ląduje z góry. To jedna z najbardziej rozpoznawalnych mechanik platformówek: wybijasz się w górę, przenikasz przez platformę, i lądujesz na jej wierzchu.
Stała tylko z jednej strony
Zwykła platforma blokuje z każdej strony — wpadasz na nią i od dołu, i z boku. Platforma jednokierunkowa jest stała tylko od góry: ciało nadlatujące od spodu (albo z boku) przenika przez nią swobodnie, a opadające z góry zatrzymuje się na powierzchni i staje na niej jak na podłodze.
Włącza się to jedną flagą na kształcie kolizji. Strona stała jest domyślnie „w górę", ale to konfigurowalny kierunek — fundament pod przepuszczalne ściany w przyszłości.
Rozstrzygane w momencie kolizji
Sztuka polega na tym, żeby zdecydować „przenikać czy lądować" zanim silnik fizyki rozwiąże zderzenie — inaczej postać zdążyłaby się już odbić. Dlatego decyzja zapada w callbacku, który dla każdego stykającego się kształtu sprawdza, z której strony ciało zbliża się do platformy, i w razie potrzeby wyłącza ten kontakt na jedną klatkę. Wszystko deterministycznie, w obrębie jednego kroku symulacji.
Najtrudniejszy szczegół to znak — kierunek kolizji zależy od tego, w jakiej kolejności silnik poda oba kształty. Rozwiązanie: jeden wspólny fragment liczący „normalną od platformy do ciała" niezależnie od tej kolejności — ten sam, który wykrywa też, czy postać stoi na podłodze. Jedna reguła, dwa zastosowania, zero rozjazdu.
Co dalej
Podstawa działa: przeskok w górę i lądowanie z góry. W kolejce dopracowania: pełne „nie wypadnij, gdy zatrzymasz się w połowie platformy", odporność na tunelowanie bardzo szybkich ciał, oraz platformy ruchome (windy).