Silnik gier: promienie — linia wzroku i trafienia
„Czy strażnik widzi gracza?", „czy pod stopami jest grunt?", „w co trafił strzał?" — na te pytania gra odpowiada promieniem: odcinkiem rzuconym w świat fizyki, który zwraca najbliższą trafioną bryłę. Silnik gier 2D właśnie go dostał, w dwóch smakach.
Ze skryptu wystarczy jedna linijka: mp.raycast(x1, y1, x2, y2) zwraca punkt trafienia, normalną powierzchni (przydatną do rykoszetów i ustawiania się na zboczach), ułamek dystansu i sam trafiony obiekt — albo nic, jeśli droga wolna. Ta sama operacja jest dostępna jako klocek grafu logiki. Ważny szczegół kontraktu: strefy-wyzwalacze nigdy nie blokują promienia — niewidzialna czujka w drzwiach nie zasłania strażnikowi widoku.
Drugi smak to węzeł-sonda: wpinany w scenę, co krok fizyki rzuca promień od swojej pozycji wzdłuż zadanego wektora i trzyma gotowy wynik. Sonda obraca się razem ze swoim rodzicem — czujnik ściany przypięty do postaci patrzy tam, gdzie postać jest odwrócona, bez żadnej matematyki po stronie gry.
Jak zwykle całość jest pokryta testami bez okna: trafienie przez pas czujki (pominięty), zgodność punktu i normalnej z ręcznym przeliczeniem, obrót sondy razem z węzłem i identyczne wyniki ze skryptu i z kodu silnika. Audyt dorzucił też solidność na brzegach — wynik sondy nie trzyma nieaktualnych wskaźników po usunięciu trafionego obiektu, a promień zaczynający się wewnątrz bryły ma jasno opisane zachowanie.
Następny naturalny krok fizyki: warstwy i maski kolizji, żeby promienie i kontakty mogły wybierać, co ich interesuje.