Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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 odpowiednik "obserwatora" z wzorców projektowych używanych w grach, o którym możesz przeczytać więcej tutaj: https://gameprogrammingpatterns.com/observer.html
For example, buttons emit a signal when pressed. You can connect a piece of code to this signal which will run in reaction to this event, like starting the game or opening a 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.