Godot Engine Roguelike – Wprowadzenie

Dzień dobry.

W pierwszej części spróbuję Cię przekonać, dlaczego Godot świetnie się nadaje dla niezależnych developerów gier lub po prostu zabawy w domu.

Na początek chyba najważniejsza rzecz, Godot jest open source na licencji MIT, co daje nam możliwość robienia co nam się podoba, wraz z modyfikacją kodu oraz pisania własnych pluginów. Godot dopiero się rozwija, co nie znaczy że jest daleko w tyle za Unity, a nawet z poziomu 2D jest na tym samym poziomie. Jedynie 3D Godot nadrabia, pisząc od nowa cały system trójwymiaru i cieni.

Skoro 2D ma dobre, to czemu go nie użyć, więc poniżej wypiszę jeszcze podobieństwa oraz różnice Godota z Unity:

Silnik Unity Godot
Silnik 2D Brak. Unity 2D to Unity 3D z orthographic kamerą Jest. Oddzielony od 3D
Fizyka Jest. Ciała, jointy etc Jest. Tak samo jak w Unity
Shadery
Wieloplatformowość Jest, jednak na linuxie czasami występują błędy Jest. Brak wsparcia na konsole
Edytor na linuxa Brak Jest
Asset Store Jest Jest

Oraz na koniec jak wygląda Hello World w obydwu silnikach, lecz zamiast Hello World wyświetlimy obrazek.

Tak więc na szybko zrobione wyświetlanie wygląda tak (po lewej Godot, po Prawej Unity):

godot-hello

Teraz przejdziemy do podstaw obsługi Godota.

Pierwszy projekt

W pierwszej części poradnika nie zrobimy raczej nic ciekawego, ale dowiemy się jak działa Godot. Jeżeli ktoś korzystał wcześniej z Unity, nie będzie miał z tym większego problemu, poza kilkoma różniącymi się od niego rzeczami.

Najciekawszy jest system użyty w Godocie. Każdy obiekt jest sceną. Dosłownie. To daje bardzo wiele możliwości, które za bardzo nam się na ten moment nie przydadzą.

Godota można pobrać z www.godotengine.org.

Zaczniemy od stworzenia projektu.

1

Tutaj nie ma wielu rzeczy do tłumaczenia, klikamy New Project i podajemy ścieżkę do folderu, w którym będzie nasz plik projektu wraz z assetami. Otwieramy poprzez dwukrotne kliknięcie lub zaznaczamy projekt i wciskamy Edit.

I mamy nasz edytor.

2

Idąc panelami:

Pierwszy od góry z lewej, to nasz folder z projektem, a niżej podgląd plików znajdujących się w bieżącym folderze.

Po prawej na górze mamy drzewko nodesów (obiektów), a niżej inspektor bieżącego node’a.

Obiekt – Node

3

Node’ów jest naprawdę dużo, każdy na wyznaczoną rolę, i są 3 główne typy:

  • Control – służą one przede wszystkim do GUI, rzeczy takie jak checkboxy / textboxy / labele nie są Godotowi obce,
  • Node2D  – nodesy przeznaczone do gier 2D,
  • Spatial – nodesy przeznaczone do gier 3D.

Są także nodesy nadające się do wszystkich tych typów, takie jak AnimationPlayer, Tween i wszystkie inne które znajdziecie poza 3 głównymi typami.

W takim razie wyświetlimy obrazek. Mamy już ikonkę Godota w folderze projektu, więc na razie nie trzeba niczego przygotowywać.

Sceny zazwyczaj powinniśmy zaczynać od pustego node’a, ponieważ może być tylko jeden główny, w Unity można mieć wiele. Wstawimy więc pusty Node2D.

Nad drzewkiem nodesów klikamy plusik i wyskoczy nam okienko z wyborem node’a.

4

Wybieramy zwykły Node2D.

5

Teraz gdy mamy zaznaczony nasz główny node, naciskamu plusik aby podpiąć jakiegoś node’a pod niego. Dodamy więc Sprite (nie Sprite3D). Jeżeli masz problem ze znalezieniem użyj paska wyszukiwarki.

6

Naciskamy na Sprite i idziemy do inspektora node’a, który znajduje się na niższym panelu.

7

Są tutaj wartości które są dostępne dla wszystkich nodesów z danej kategorii (np. Node2D: Pos, Rot, Scale) lub tylko dla danego typu node’a, tak jak tutaj mamy grupę Sprite. Zawiera ona zmienną z teksturą, offset i inne różne duperele. Naciskamy na strzałkę w dół obok „Texture <null>” , klikamy load i wybieramy ikonkę naszego Godota.

8

I jest on na scenie w pozycji (0,0) oraz jest wyśrodkowany gdyż ma zaznaczoną w inskeptorze flagę centered.

Po edytorze sceny możemy poruszać się za pomocą środkowego kółka myszy, zoom in/out trzymając Ctrl+kółko myszy, a do manipulacji nodesami mamy 3 narzędzia:

9

  • Kursor – nim można skalować, przemieszczać, obracać (trzymając Ctrl) oraz zaznaczać obiekty. Jednak polecam to narzędzie tylko, gdy musimy coś ręcznie ustawić, np. punkty wielokąta, gdyż jeżeli kilka obiektów leży na sobie nie będziemy w stanie nic zrobić z tym niżej, gdyż zawsze zaznaczy nam ten na górze.
  • Strzałeczki – można przenosić aktualnie wybrany node, bez zaznaczania innych. Najlepiej wybrać node w drzewku nodesów, a potem przemieszczać tym narzędziem, nic nam wtedy nie przeszkodzi.
  • Obracanie – obraca aktualnie zaznaczony obiekt, ale zazwyczaj i tak lepiej wpisać dokładną wartość w inspektorze niż ustawiać „na oko”.

Więc możemy sobie naszego sprite’a przesunąć oraz zeskalować:

10

Uruchamianie gry

E to izi, tam taka szczałka jest u góry.

No niestety wywali nam pop-upa, że scena jest nie zapisana. Możemy ją zapisać wchodząc w lewym górnym rogu w Scene->save scene lub przy tym komunikacie wcisnąć Yes. Zapiszmy scenę pod nazwą mainscene.tscn.

Teraz jest zapisana, ale dalej mu coś nie pasi, bo znowu coś wywala przy próbie włączenia. Godot potrzebuje Głównej sceny, którą będzie uruchamiał przy każdym włączeniu gry. Możemy odpalić aktualnie wybraną scenę, naciskając tą ikonkę:

11

Lecz aby ustawić główną scenę, możemy wcisnąć select na pop-upie, który nam wyskoczy przy próbie włączenia gry normalną strzałką, tą z samej lewej strony, lub wejść w Scene->Project Settings.

Tutaj znajdziemy wszystkie dane dotyczące naszego projektu. W zakładce „Application”, po prawej jest zmienna main_scene. Aby wybrać główną scenę naciskamy na ikonkę folderu, i podajemy ścieżkę do sceny. Teraz możemy odpalić grę.

12

To tyle w pierwszej części poradnika. Omówiłem tu najważniejsze rzeczy w edytorze poza skryptami, czym zajmę się w następnej części, w której napiszemy poruszanie się w 4 kierunkach.

Vunnysher

Lubie robić gry, ale jeszcze nie zrobiłem żadnej.

Zobacz wszystkie posty tego autora →

Komentarze

  • Franek Madej

    Fajnie, że ktoś porusza ten temat. Akurat ten artykuł to jeszcze nie to na co czekam, ale oby skrypty oraz sama praca nad grą pojawiły się jak najszybciej. 🙂

    • Rafał Michałuszek

      Niedługo kolejny, tylku musze pomyśleć co zrobić

  • rivFox

    Ten SS z Unity wygląda słabo. Cały wstęp brzmi jak „Unity3D słabe, buuu… GODOT!!!”, a prawda jest taka, że w rzeczywistości między silnikami jest spora przepaść. Chociaż to nie znaczy, że Godot jest złe, to świetnie zapowiadający się silnik, który może namieszać na scenie indie games.
    A co do Unity3D, to tryb 2D to nie tylko inny widok kamery! Pomijając, że tą kamerę można zmienić aby uzyskać inny efekt 2D (kilka z możliwości zostało wymienionych na oficjalnej stronie), ale też automatyczna zamiana tekstur na spirte (co jest mało ważne) i komponenty jak Colider2D i Rigidbody2D, które przyśpieszają operacje fizyczne kilkukrotnie. Oraz widok 2D, który blokuje trzeci wymiar. Czy to złe? Czego brakuje?