Silnik gier: kafelkowe poziomy
Silnik gier 2D Moonlight Studio dostał warstwę kafli — sposób na budowanie poziomów platformówek, map top-down i teł z jednego obrazka podzielonego na komórki.
Jak to działa
Warstwa kafli składa się z atlasu (jeden obraz z kafelkami ułożonymi w siatkę) i mapy — dwuwymiarowej tablicy, która dla każdej komórki trzyma numer kafla albo znacznik „pusto". Numer wybiera pole atlasu, więc cały poziom to po prostu lista liczb: taniej w pamięci i łatwo edytować.
Duże mapy bez spadku płynności
Warstwa rysuje tylko kafle widoczne w kadrze. Mapa 1000×1000 pól kosztuje dokładnie tyle, ile aktualnie mieści się na ekranie — nie tyle, ile ma pól. Można więc budować rozległe światy i przewijać po nich kamerą bez martwienia się o wydajność.
Sterowanie ze skryptu
Trzy funkcje wystarczą, by gra pracowała na mapie:
local kafel = mp.tile_at(mapa, kx, ky) -- odczyt (−1 = pusto)
mp.set_tile(mapa, kx, ky, 4) -- zmiana kafla w locie
local c = mp.world_to_cell(mapa, gracz_x, gracz_y) -- świat → komórka
world_to_cell uwzględnia pozycję warstwy, więc na tych trzech funkcjach gra buduje własną logikę „czy pod bohaterem jest podłoże" — niszczalne ściany, sekretne przejścia, zbieranie kafli.
Co dalej
Nadchodzą: wbudowana kolizja fizyczna kafli (żeby postać stawała na podłożu bez pisania własnej logiki), obracanie i odbijanie pojedynczych kafli, auto-kafelkowanie krawędzi oraz edytor poziomów w edytorze projektów gry.