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...
Skriptovací jazyky
V této lekci si uděláme přehled skriptovacích jazyků dostupných v Godotu, jejich výhod a nevýhod. V další části pak napíšete svůj první skript v GDScriptu.
Skripty se připojují k uzlůn a rozšiřují tak jejich chování. To znamená, že skripty dědí všechny funkce a vlastnosti uzlu, ke kterému se připojují.
Vezměme si například hru, kde uzel Camera2D následuje loď. Uzel Camera2D následuje svého rodiče bez toho, kvůli tomu museli cokoli změnit. Řekněme však, že bychom chtěli, aby se kamera zatřásla pokaždé, když je hráč zraněn. Protože tato funkce není do Godotu sama o sobě zabudována, mohli bychom toho docílit připojením skriptu k uzlu Camera2D, do kterého bychom přidali kód pro zatřesení.
Dostupné skriptovací jazyky
Godot nabízí čtyři jazyky pro programování her: GDScript, C# a prostřednictvím své technologie GDExtension také C a C++. Komunitou podporovaných jazyků je více, ale tyto jsou oficiální.
V jednom projektu můžete použít několik jazyků. Například můžete psát herní logiku v GDScriptu, protože se v něm rychle píše a používat C# nebo C++ k implementaci složitých algoritmů a maximalizaci jejich výkonu. Nebo můžete vše psát v jednom jazyce. Volba je vaše.
Tuto flexibilitu poskytujeme, abychom pokryli potřeby různorodých herních projektů a vývojářů.
Jaký jazyk mám použít?
Pokud s programováním začínáte, doporučujeme začít s GDScriptem. Tento jazyk jsme vytvořili speciálně pro Godot a potřeby herních vývojářů. Má jednoduchou a přímočarou syntax a poskytuje nejtěsnější integraci s Godotem.
Pro C# budete potřebovat externí editor kódu, jako VSCode nebo Visual Studio. Byť je dnes podpora C# vyspělá, najdete pro něj ve srovnání s GDScriptem méně výukových zdrojů. Proto doporučujeme C# zejména uživatelům, kteří s tímto jazykem už mají zkušenosti.
Podívejme se na funkce každého z jazyků a jejich výhody a nevýhody.
GDScript
GDScript je objektově orientovaný a imperativní programovací jazyk stvořený pro Godot. Je vyvíjen herními vývojáři pro herní vývojáře, aby vám ušetřil čas při tvorbě her. Mezi jeho vlastnosti patří:
Jednodochá syntaxe vedoucí ke krátkým souborům.
Bleskově rychlé časy kompilace a načítání.
Úzká integrace s editorem, včetně dokončování kódu pro uzly, signály a další informace ze scény, ke které je připojen.
Vestavěné typy pro vektory a transformační matice, díky kterým je efektivní při častém použití lineární algebry, která je pro hry nezbytná.
Podpora více vláken stejně efektivní jako u staticky typovaných jazyků.
No tracing garbage collection, as this feature eventually gets in the way when creating games. The engine counts references and manages the memory for you in most cases by default, but you can also control memory if you need to.
Postupné typování. Proměnné mají ve výchozím režimu dynamické typy, ale použitím určení typu vynutíte silnou typovou kontrolu.
GDScript vypadá podobně jako Python, jelikož bloky kódu strukturujete pomocí odsazení, ale v praxi nefunguje stejně. Je inspirován více jazyky, mezi které patří třeba Squirrel, Lua a také Python.
Poznámka
Proč nepoužíváme přímo Python nebo Lua?
Godot před lety používal Python a poté Lua. Integrace obou jazyků vyžadovala hodně práce a měla vážná omezení. Například podpora vláken byla u Pythonu velkou výzvou.
Vývoj vyhrazeného jazyka nám v konečném důsledku nedá více práce a můžeme jej přizpůsobit potřebám vývojářů her. Nyní pracujeme na optimalizaci výkonu a funkcích, které by s jazyky třetích stran bylo obtížné nabídnout.
.NET / C #
Protože je jazyk C# od Microsoftu mezi vývojáři her velmi populární, přidali jsme pro něj oficiální podporu. C# je vyspělý jazyk se spoustou existujících knihoven. Podporu jsme pro něj mohli přidat díky štědrému daru od společnosti Microsoft.
Nabízí dobrý kompromis mezi výkonem a jednoduchostí použití, měli byste si však být vědomi jeho automatické správy paměti pomocí garbage collectoru.
Poznámka
Pro skriptování v C# musíte použít edici .NET editoru Godot. Můžete si ji stáhnout na stránce ke stažení z webu Godotu.
Jelikož Godot používá .NET 8, teoreticky v něm můžete použít jakoukoli .NET knihovnu nebo framework třetí strany, stejně jako jakýkoli programovací jazyk kompatibilní s Common Language Infrastructure, jako je F#, Boo nebo ClojureCLR. C# je však jediná oficiálně podporovaná .NET možnost.
Poznámka
Kód GDScriptu sám o sobě neběží tak rychle jako kompilovaný C# nebo C++. Většina skriptového kódu však volá funkce napsané pomocí rychlých algoritmů uvnitř enginu napsaných v C++. V mnoha případech nebude mít psaní logiky hry v GDScript, C# nebo C++ významný dopad na výkon.
Výstraha
Projekty napsané v C# používající Godot 4 momentálně nelze na webové platformy exportovat. Chcete-li použít C# na webu, zvažte raději použití Godotu 3. Podpora platforem Android a iOS je od verze 4.2 dostupná, nicméně je stále experimentální a platí pro ně určitá omezení.
Viz také
To learn more about C#, head to the C#/.NET section.
C++ přes GDExtension
GDExtension vám umožňuje psát kód hry v C++ bez nutnosti překompilovat Godot.
Můžete použít libovolnou verzi jazyka nebo volně zaměňovat verze a druhy kompilátorů pro vygenerované sdílené knihovny díky našemu použití interního C API Bridge.
GDExtension je nejlepší volbou pro části náchylné na výkon. Nemusíte ho používat napříč celou hrou, ostatní části můžete psát v GDScriptu nebo C#.
Při práci s GDExtension se dostupné typy, funke a vlastnosti blízce podobají skutečnému C++ API Godotu.
Shrnutí
Skripty jsou soubory, které obsahují kód a můžete je připojit k uzlům pro rozšíření jejich funkcí.
Godot oficiálně podporuje čtyři jazyky pro skriptování a nabízí vám tak flexibilitu mezi výkonem a jednoduchostí použití.
Můžete jazyky kombinovat, například implementovat náročné algoritmy v C nebo C++ a většinu herní logiky psát v GDScriptu nebo C#.