Godot – Alternatywa dla Unity

Osoby urodzone w latach 80 – 99 stanowią pokolenie, które było zafascynowane grami komputerowymi. Mogliśmy na bieżąco obserwować rozwój tej formy rozrywki, z prostych platformówek zaczęła przeistaczać się w budzące podziw gry wideo. Popularnym marzeniem stało się stworzenie własnej gry i pochwalenie się nią wśród znajomych.  Niestety wiązało się to z koniecznością dobrej znajomości programowania oraz żmudną pracą podczas tworzenia silnika gry. Zanim będzie można bawić się w planowanie fabuły i przeszkód dla gracza programista musi opracować wiele szczegółów jak np. zachowania postaci, wykrywania kolizji, moduły grafiki które nie są ani łatwe ani ciekawe.

Na szczęście od kilku lat mamy dostępne zaawansowane silniki gier jak Unity3D bądź Unreal Engine. Narzędzia te zyskują dużą popularność ponieważ zwalniają autora ze żmudnej pracy związanej z mechaniką gry bądź przenoszenia gier na różne platformy (Linux, Windows, Mac, Android, iOS). Dziś chciał bym przedstawić Wam naprawdę godnego konkurenta dla wspomnianych już narzędzi. Zaprzyjaźnijmy się z narzędziem Godot ! 🙂

Jaki problem rozwiązuje projekt ?

Godot to kompleksowy silnik do tworzenia gier 2D oraz 3D na różne platformy. Podobnie jak popularne alternatywne oprogramowanie, Godot dostarcza użytkownikowi pełen zestaw narzędzi i rozwiązań, dzięki którym użytkownik może w całości skupić się na tworzeniu gier. W celu zapoznania się z potencjałem silnika polecam zajrzeć do portfolio z grami utworzonymi w Godot.

Istotnymi aspektem odróżniającym Godot od popularnego Unity3D jest w pełni dedykowany silnik do gier 2D. Dzięki któremu możemy tworzyć lepszej jakości gry dwuwymiarowe. W Unity jest jeden silnik do gier 2D i 3D, które różnią się jedynie perspektywą. Kolejną zaletą omawianego projektu jest odnowiony niedawno system tworzenia animacji, dzięki któremu jesteśmy w stanie animować prawie każdy element silnika od obiektów po wywoływanie funkcji.

Godot umożliwia pracę w językach C++, C# oraz autorskim języku skryptowym GDScript wzorowanym na Python. Autorzy dają jednak możliwość wzbogacenia narzędzia o dodatkowe języki (czym intensywnie zajmuje się społeczność).  Razem z silnikiem dostajemy wbudowany edytor skryptów, zaawansowany debugger, kompatybilność oprogramowania z systemami kontroli wersji.

Jak zacząć kontrybuować ?

W projekcie Godot mamy bardzo szeroki wachlarz możliwości współtworzenia dodając do niego elementy grafiki, kodując, tłumacząc bądź poszerzając dokumentację. Pracę z oprogramowaniem rozpoczynamy oczywiście od pobrania gotowych instalatorów z oficjalnej strony projektu.

Podstawową formą kontrybucji jest zgłaszanie błędów. Autorzy proszą o trzymanie się złotej zasady : “Jeden błąd na jedno zgłoszenie”.
Jeżeli chcesz dodać do silnika nowe funkcjonalności, wcześniej upewnij się czy jest ona pożądana oraz skonsultuj to ze społecznością. Podobnie możesz postępować rozwiązując błędy.

Zadania dla początkujących oznaczone są etykietą “Junior Job” i myślę że od nich powinieneś zacząć pracę z projektem. Pamiętaj aby tworzyć jeden Pull Request dla rozwiązania jednego konkretnego problemu, tak jak podczas zgłaszania błędów. Aby Twój Pull Request zakończył się sukcesem musisz je poprawnie opisywać. Krótki a treściwy tytuł jest ważną częścią ponieważ tworzy on spójną historię zmian w projekcie. Commity o nazwie “Zaktualizowano my_file.cpp” nie będą akceptowane. Na podstawie analizy zgłaszanych błędów uważam że, najłatwiej znaleźć je w edytorze, m.in. popularny problem występuje podczas przeskalowania okien gdzie elementy nie zachowują się właściwie.

Możesz również współtworzyć projekt tłumacząc bądź rozbudowując dokumentację. Szczegóły na temat aktualnych postępów tłumaczeń możesz zdobyć w portalu WebPlate. Język polski jest w czołówce tłumaczeń tego oprogramowania.

Społeczność Godot jest bardzo rozbudowana i autorzy zachęcają do udziału w dyskusji na tematy związane z rozwojem silnika w tym miejscu : https://godotengine.org/community.

Jaką technologię wykorzystują ?

Z powodu zachowania multiplatformowości w projekcie Godot znajdziesz bardzo dużo języków m.in. C, Objective-C++, C#, Python, Java. Dominującym językiem jest jednak C++ który stanowi aż 94% projektu. Wraz z najnowszą wersją projekt Godot przeniósł się z Vulcan na OpenGL ES 3.0. Pod względem grafiki silnik zmaga się z takimi problemami jak przezroczystość, normal mapping,  dynamiczne cienie przy użyciu shadow-mapping oraz pełnoekranowych efektów post-processingu, takich jak FXAA, bloom, DOF, HDR, korekcje gammy. Edytor powstał w popularnym narzędziu QTCreator. Jak wielokrotnie już wspomniałem w projekcie możemy podpatrzeć jak wygląda portowanie aplikacji na różne platformy (Android, iOS, Windows, Linux, Web).

Na jakim etapie jest projekt ?

Godot to bardzo aktywny i prężnie rozwijany projekt. Wspierany jest przez Software Freedom Conservancy. 29 stycznia została udostępniona wersja 3.0 silnika a w najbliższych tygodniach spodziewana jest wersja 3.1. Z listą planowanych zmian możecie zapoznać się pod tym linkiem. Autorzy często udzielają się w wydarzeniach organizowanych przez GitHub, zachęcając nowych użytkowników do rozwijania projektu. Tworzą również lokalne wydarzenia promujące silnik, także w Polsce (ostatnie 10 – 11 październik w Poznaniu).

Podsumowanie

Przez wiele lat studiów byłem sympatykiem narzędzia Unity3D. Podobała mi się łatwość jego użycia. Często jednak elementy gry zachowywały się w sposób który nie do końca byłem w stanie zrozumieć. Gdyby Unity posiadało otwarty kod źródłowy mógłbym podejrzeć i zrozumieć pewne zachowania, a następnie dostosować do swoich potrzeb. Z tego powodu po zaznajomieniu się z projektem Godot, zdecydowanie zmieniły się moje preferencję. Gdybym dzisiaj miał tworzyć indie gierkę wybrał bym właśnie Godot Game Engine.

daxter
marcinek44@windowslive.com

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *