Moonlight Animate — wizualny edytor gier 2D jest gotowy
Silnik gier 2D wbudowany w Moonlight Animate przez ostatnie tygodnie dorobił się kompletnego wizualnego edytora scen. To sześć faz pracy, które razem dają jedno: świat gry składasz i układasz myszą — od struktury sceny, przez właściwości obiektów, po mapy i rozstawienie postaci — bez zaglądania do plików. Ten wpis podsumowuje, co edytor potrafi.
Drzewo sceny, które się edytuje
Sercem edytora jest żywe drzewo sceny — cała hierarchia węzłów odświeżana na bieżąco. Węzły przeciąga się myszą, żeby zmienić rodzica; domyślnie obiekt zostaje tam, gdzie był na ekranie (zmieniamy tylko, komu podlega), a z Shiftem jedzie razem z nowym rodzicem. Z menu kontekstowego dodajesz węzeł dowolnego typu, zmieniasz nazwę albo usuwasz. Pasek narzędzi ma pauzę logiki gry (żeby edytować „na stole") i zapis sceny.
Inspektor, który pisze do obiektu
Zaznaczenie węzła buduje property-grid — siatkę kontrolek dobranych do typu każdego pola: pola liczbowe dla pozycji, skali i rotacji, przełączniki dla flag, pole tekstowe dla nazwy. Każda zmiana zapisuje się wprost do obiektu na żywo, więc efekt widać natychmiast w podglądzie. Grid pilnuje, żeby odświeżanie nie kradło tego, co właśnie wpisujesz. Pod nim zostaje podgląd „tablicy" węzła i informacja o skrypcie.
Malowanie map kafelkowych
Warstwy kafelkowe maluje się myszą na kanwie. Wybierasz kafel z palety miniatur (ciętych wprost z atlasu projektu), lewym przyciskiem malujesz, prawym ścierasz, a przeciąganie kładzie ciągłą kreskę. Jest narzędzie wypełniania (jedno kliknięcie zalewa spójny obszar) oraz oznaczanie kafla jako solidnego — wtedy każda komórka z tym kaflem staje się ścianą, o którą gracz się odbija. Trafienie w komórkę jest dokładne niezależnie od tego, jak przesunięta czy przybliżona jest kamera.
Rozstawianie i przesuwanie obiektów
Ostatni element to stawianie obiektów prosto na kanwie. W trybie „Postaw" wybierasz typ węzła, a półprzezroczysty duszek podąża za kursorem z przyciąganiem do siatki (którą regulujesz, a Ctrl ją omija). Kliknięcie stawia obiekt dokładnie tam, gdzie widać duszka. Tryb „Zaznacz" pozwala kliknąć dowolny obiekt na scenie (nie tylko te z fizyką) — zaznacza go w drzewie i inspektorze — a przeciągnięcie go przesuwa. Postawiony obiekt od razu trafia do drzewa, a jego pozycja do zapisanej sceny.
Pod spodem siedzi trochę matematyki, która musiała być dokładna: przeliczenie kursora z pikseli okna na współrzędną świata (odwrócenie pełnego łańcucha kamery i transformacji), hit-test dowolnego węzła po jego granicach (z poprawnym rozstrzyganiem, który obiekt jest „na wierzchu") oraz ustawianie pozycji świata świadome fizyki — przesunięty obiekt fizyczny nie „ucieka" z powrotem po wznowieniu gry. Rdzeń tej logiki jest przetestowany automatycznie, niezależnie od interfejsu.
Wszystko w jednym miejscu
Całość spina obszar roboczy „Gra": panel edytora (drzewo, inspektor, paleta, malarz kafli, rozstawianie) dokuje się do okna, a podgląd gry działa obok. Panel przeżywa restarty podglądu i sam się do nich przepina.
Co dalej
Wizualny edytor scen to fundament. Świadomie zostawiliśmy sobie na później kilka rzeczy: cofanie/ponawianie edycji sceny, przeglądarkę gotowych prefabów, rozbicie panelu na osobne doki i teksturowany duszek. Kolejny duży kierunek to tekst gry w każdym języku (polski, znaki azjatyckie i inne) jako podkład pod system dialogów — czyli droga w stronę gier fabularnych składanych w całości w Moonlight Animate.