Silnik gier 2D: ruch po siatce, zajętość pól i inteligentne szukanie drogi
Kolejny krok w budowie silnika gier 2D wewnątrz Moonlight Animate: dodaliśmy ruch po siatce — mechanikę znaną z klasycznych gier RPG i taktycznych, w których postać nie chodzi płynnie w dowolnym kierunku, tylko przeskakuje z pola na pole podzielonej na kratki planszy.
Krok po kratce
Nowy element ruchu doczepiasz do postaci albo NPC i wskazujesz mapę kafli. Od tej pory jeden „krok" to dokładnie jedna kratka: postać płynnie przesuwa się do środka sąsiedniego pola i się zatrzymuje. To ten charakterystyczny, planszowy rytm ruchu, który definiuje cały gatunek.
Możesz sterować z klawiatury (jeden klawisz = jeden krok) albo po prostu kazać postaci „idź do tego pola", a resztę policzy silnik. Opcjonalnie włączasz ruch na skos.
Nikt nie wejdzie na zajęte pole
Silnik pilnuje zajętości pól — pamięta, która postać stoi na którym polu. Dzięki temu dwie postaci nigdy nie wejdą na tę samą kratkę: gdy postać rusza, rezerwuje pole docelowe, a poprzednie zwalnia dopiero po dojściu. To niewidzialna szachownica z pionkami, która trzyma porządek nawet przy wielu NPC-ach jednocześnie.
Inteligentne szukanie drogi (opcja)
Zaznaczasz jedną opcję — smart-pathfinding — i postać sama znajduje drogę do celu, omijając ściany oraz zajęte pola. Jeśli przejście jest chwilowo zablokowane, poczeka i przeliczy trasę. Bez tej opcji postać idzie prosto i po prostu staje przed przeszkodą (klasyczne zachowanie, gdy chcesz pełnej kontroli nad każdym krokiem).
Dla twórców gier
To fundament pod gry RPG, taktyczne i przygodowe budowane w Moonlight Animate: rozstawianie NPC-ów na mapie, ruch bohatera po kratkach, patrole i pościgi, które same omijają przeszkody. Wszystko sterowalne ze skryptów oraz z wizualnego edytora węzłów — bez pisania od zera logiki ruchu czy wyszukiwania drogi.
Ruch po siatce to czysta logika gry (nie korzysta z silnika fizyki), więc jest lekki i w pełni deterministyczny — ta sama plansza zachowa się tak samo za każdym razem, także po wczytaniu zapisu gry. Ustawienie postaci w dowolnym miejscu „przyciąga" ją do najbliższej kratki, więc rozstawianie jednostek jest bezbolesne.
Następny przystanek: gotowy szablon mapy widzianej „z góry" oraz system dialogów.