Silnik gier: logika gry — graf zdarzeń i skrypty (Faza 4)
Silnik gier Moonlight ma już oczy (viewport), ręce (sterowanie) i ciało (fizykę). Faza 4 daje mu mózg: pełną warstwę logiki gry — programowanie wizualne grafem zdarzeń i skrypty Lua, zbudowane na jednym wspólnym API.
Graf zdarzeń: logika bez pisania kodu
Dla twórców wizualnych — a to oni są sercem Moonlight — najważniejsza wiadomość: logikę gry można składać z klocków.
- Zdarzenia uruchamiają przepływ: „przy starcie", „co klatkę", „przy sygnale" (np. kolizji albo wejściu w strefę).
- Klocki przepływu — gałąź (jeśli/inaczej), pętla, sekwencja.
- Klocki działania — zmienne i matematyka, odczyt i zapis właściwości obiektów, pozycje, tworzenie i usuwanie obiektów, emitowanie sygnałów.
- Wykonanie płynie od zdarzenia po połączeniach zawsze w tej samej kolejności — przewidywalność jest częścią kontraktu, potwierdzoną testem.
Skrypty Lua: pełna moc, przeładowanie na gorąco
Kto woli pisać kod, dostaje pełne API silnika w Lua — łącznie z hot-reloadem: edytujesz skrypt, a gra działa dalej ze swoim stanem, bez restartu sceny.
Jedno API — dowód, nie obietnica
Graf i skrypty nie są dwoma silnikami: oba wołają dokładnie te same funkcje. Zapisaliśmy tę samą mini-grę — zbierz monety, licznik punktów, warunek wygranej, nowa runda — raz w Lua i raz w grafie. Test potwierdza identyczny wynik obu wersji. Obie warstwy współpracują też na żywo: graf potrafi wywołać kod Lua, skrypt reaguje na sygnały emitowane przez graf, a obie strony dzielą tablicę zmiennych obiektów.
Drobiazgi, które robią grę
- Grupy obiektów — „monety", „wrogowie": jedno zapytanie zamiast ręcznych list.
- Maszyna stanów — obiekt trzyma nazwany stan, każda zmiana emituje sygnały wyjścia/wejścia. Idle → bieg → skok bez spaghetti.
- Minutnik (z poprzedniej fazy) dopełnia zestaw podstawowych klocków logiki.
Demo: pierwsza grywalna pętla
W oknie Play silnika biega już postać sterowana WASD lub padem, zbiera pięć monet (strefy-sensory z fizyki), licznik rośnie, a po skompletowaniu zaczyna się nowa runda. Mała rzecz — ale to pierwsza kompletna pętla rozgrywki wykonana w całości przez silnik: wejście → fizyka → logika → obraz.
Co dalej?
Faza 5: dźwięk, interfejs gry i animacja — w tym odtwarzanie scen Moonlight Animate bezpośrednio wewnątrz gier. Rysujesz i animujesz w tym samym programie, w którym powstaje gra.