Silnik gier: szukanie drogi — wrogowie omijają ściany
Silnik gier 2D Moonlight Studio dostał szukanie drogi po siatce kafli. Wróg nie musi już biec na ślepo w stronę gracza i zderzać się ze ścianą — teraz potrafi znaleźć trasę dookoła i sprytnie do niego dojść.
Jedna linijka, gotowa trasa
Wystarczy podać mapę oraz komórkę startową i docelową:
local trasa = mp.find_path(mapa, wrog_x, wrog_y, gracz_x, gracz_y)
W odpowiedzi gra dostaje listę komórek prowadzącą dookoła solidnych kafli — dokładnie tych samych, które zatrzymują postać. Wróg idzie po kolejnych punktach tej listy i omija ściany, filary czy wąskie korytarze. Jeśli lista jest pusta, cel jest po prostu nieosiągalny (np. zamknięty w osobnym pomieszczeniu) — i gra może wtedy zrobić coś innego.
Znaleziona trasa jest zawsze najkrótsza — silnik używa sprawdzonego algorytmu przeszukiwania siatki.
Licz mądrze
Szukanie drogi warto uruchamiać z głową: raz, gdy wróg się pojawia albo gdy gracz przemieści się w nowe miejsce — a nie w każdej klatce. Policzoną trasę wystarczy zapamiętać i prowadzić po niej wroga; to trzyma grę lekką nawet przy wielu przeciwnikach.
Co dalej
Nadchodzą: ruch po skosie, wygładzanie trasy (płynne przejścia zamiast schodkowego zygzaka po komórkach) oraz wagi terenu — żeby wróg wolał suchą ścieżkę od błota.