Przegląd podstawowych założeń Godot
Każdy silnik do tworzenia gier bazuje na pewnych pojęciach, abstrakcjach których używasz do budowy swojej aplikacji. W Godot, gra to drzewo węzłów (a tree of nodes), które grupujesz razem na scenach (scenes). Węzły mogą komunikować się między sobą za pomocą sygnałów ( signals).
Oto cztery koncepcje, których się tutaj nauczysz. Przyjrzyjmy się im pokrótce, żeby zobrazować jak silnik działa. W kolejnych rozdziałach, będziesz miał szansę zastosować je w praktyce.
Sceny
W Godot dzielisz swoją grę na sceny, które można ponownie wykorzystać. Sceną może być postać, broń, menu w interfejsie użytkownika, pojedynczy dom, cały poziom lub cokolwiek innego, co przyjdzie Ci do głowy. Sceny w Godot można elastycznie dopasować do swoich potrzeb, pełnią rolę zarówno prefabrykatów (prefabs), jak i scen rozumianych jako całość kompozycji przedstawianej graczowi (scen w ujęciu znanym z większości silników do tworzenia gier).
Sceny możesz również zagnieżdżać. Na przykład, możesz najpierw umieścić swoją postać na planszy, a następnie przeciągnąć i upuścić scenę jako dziecko dla Twojej postaci.
Węzły
Scena składa się z jednego, lub więcej węzłów (nodes). Węzły to Twoje najmniejsze cegiełki, które układasz w postaci drzewa. Oto przykład, jak za pomocą węzłów, możesz opisać swoją postać w grze.
Postać składa się z węzła CharacterBody2D nazwanego "Player", oraz Camera2D, Sprite2D i CollisionShape2D.
Informacja
Nazwa węzła kończy się sufiksem "2D", bo jest to scena dwuwymiarowa. Węzeł dla przestrzeni trójwymiarowej kończy się sufiksem "3D". Zauważ, że od wersji 4 Godota Węzły "Spatial" zostały przemianowane na "Node3D".
Zwróć uwagę na to, że węzły i sceny wyglądają tak samo w edytorze. Kiedy zapiszesz drzewo węzłów jako scenę, będzie ono wyświetlane jako pojedynczy węzeł z jego wewnętrzną strukturą ukrytą w edytorze.
Godot dostarcza obszerną bibliotekę podstawowych typów węzłów, które można łączyć i rozszerzać, aby tworzyć węzły o większych możliwościach. 2D, 3D lub interfejs graficzny dla użytkownika - większość rzeczy wykonasz właśnie za pomocą tych podstawowych węzłów.
Drzewo scen
Wszystkie sceny gry łączą się w drzewo scen (scene tree), jest to dosłownie drzewo składające się ze scen. Ponieważ sceny są drzewami złożonymi z węzłów, drzewo scen jest również drzewem węzłów. Ale łatwiej jest myśleć o grze w kategoriach scen, ponieważ mogą one opisywać postacie, broń, drzwi lub interfejs użytkownika.
Sygnały
Węzły wysyłają sygnały w reakcji na jakieś zdarzenie. Ta funkcja umożliwia komunikację między węzłami, bez konieczności dodawania wzajemnych referencji w kodzie (brak wiązania na sztywno - patrz SOLID principle). Zapewnia to dużą elastyczność w zakresie tego, jak możesz scenę ułożyć.
Informacja
Sygnały to Godotowa wersja wzorca projektowego observer (obserwator). Możesz dowiedzieć się o tym więcej tutaj: https://gameprogrammingpatterns.com/observer.html
Dla przykładu, przyciski wysyłają sygnał po ich naciśnięciu. Możesz podpiąć fragment programu do tego sygnału, aby uruchomiał się w reakcji na to zdarzenie, np. uruchomiał grę lub otwierał menu.
Inne, obecne w Godot sygnały mogą poinformować Cię, kiedy zderzyły się dwa obiekty, kiedy postać lub potwór wszedł na dany obszar i wiele, wiele więcej. Możesz także zdefiniować własne sygnały, skrojone na potrzeby Twojej gry.
Podsumowanie
Węzły, sceny, drzewo scen i sygnały to cztery podstawowe pojęcia w Godocie, którymi będziesz cały czas żonglować.
Węzły to najmniejsze elementy składowe Twojej gry. Łączysz je, aby utworzyć sceny, sceny łączysz i zagnieżdżasz na drzewie scen. Następnie używasz sygnałów, aby węzły mogły reagować na zdarzenia zaistniałe w innych węzłach bądź innych gałęziach drzewa scen.
Po tym krótkim podsumowaniu prawdopodobnie masz mnóstwo pytań. Bądź cierpliwy, bo w serii dla początkujących otrzymasz wiele odpowiedzi.