Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Filozofie návrhu Godota

Teď, když jste si ušpinili ruce, pojďme si promluvit o tom, jak byl Godot navržen.

Každý herní engine je jiný a vyhovuje různým potřebám. Nejenže nabízejí celou řadu funkcí, ale i design každého enginu je unikátní. To vede k různým pracovním postupům a různým způsobům tvorby struktury vašich her. Vše tedy vychází z příslušné filozofie návrhu enginu.

Tato stránka vám pomůže pochopit, jak Godot a některé jeho základní pilíře fungují. Nejedná se tedy o seznam dostupných funkcí, ani o porovnání enginů. Chcete-li vědět, zda je nějaký engine pro váš projekt vhodný, musíte si jej vyzkoušet a pochopit jeho konstrukci a omezení.

Pokud hledáte přehled funkcí enginu, podívejte se prosím na Godot vysvětlený v 5 minutách.

Objektově orientovaný návrh a kompozice

Godot zahrnuje objektově orientovaný design ve svém jádru díky flexibilnímu systému scén a hierarchii uzlů. Snaží se držet dál od přísných programovacích vzorů a nabízí intuitivní způsob, jak strukturovat vaši hru.

Pro jednu, Godot vám umožňuje komponovat nebo agregovat scény. Je to jako vnořené montované panely: můžete vytvořit scénu BlinkingLight a scénu BrokenLantern, která používá BlinkingLight. Poté vytvořte město plné BrokenLanterns. Změňte barvu, uložte BlinkingLight a všechny BrokenLanterns ve městě se okamžitě aktualizují.

Navíc můžete dědit z jakékoliv scény.

Godotová scéna může být zbraň, postava, položka, dveře, úroveň, část úrovně ... cokoli, co budete chtít. Funguje to jako třída v čistém kódu, kromě toho, že si ji můžete navrhnout pomocí editoru nebo pouze kódem anebo smícháním a porovnáním obou.

Je to odlišné od prefabrikátů, které najdete v některých 3D enginech, protože tyto scény pak můžete zdědit a rozšířit. Můžete si vytvořit Kouzelníka, který rozšíří vaši Postavu. Upravte Postavu v editoru a Kouzelník se také aktualizuje. Godot vám pomáhá vytvářet vaše projekty tak, aby jejich struktura odpovídala designu hry.

| image0 |

Také si všimněte, že Godot nabízí mnoho různých typů objektů zvaných uzly, každý se specifickým účelem. Uzly jsou součástí stromu a vždy dědí od svých rodičů až po základní třídu Node. Ačkoli engine obsahuje některé uzly, jako jsou kolizní tvary, které jsou využívány rodičovským uzlem, zde fyzikálním tělesem (physic body), většina uzlů pracuje nezávisle na sobě.

In other words, Godot's nodes do not work like components in some other game engines.

image1

Sprite2D is a Node2D, a CanvasItem and a Node. It has all the properties and features of its three parent classes, like transforms or the ability to draw custom shapes and render with a custom shader.

All-inclusive balíček

Godot se snaží poskytnout své vlastní nástroje k řešení nejběžnějších potřeb. Má vyhrazený skriptovací pracovní prostor, animační editor, tilemap editor, shader editor, debugger, profiler, schopnost znovu se načíst lokálně a na vzdálených zařízeních atd.

image2

The goal is to offer a full package to create games and a continuous user experience. You can still work with external programs as long as there is an import plugin available in Godot for it. Or you can create one, like the Tiled Map Importer.

That is also partly why Godot offers its own programming language GDScript along with C#. GDScript is designed for the needs of game developers and game designers, and is tightly integrated in the engine and the editor.

GDscript vám umožňuje psát jednoduchý kód pomocí syntaxe podobné Pythonu, přesto detekuje typy a nabízí automatické doplňování v kvalitě statického jazyka. Je také optimalizován pro herní kód s vestavěnými typy, jako jsou vektory a barvy.

Note that with GDExtension, you can write high-performance code using compiled languages like C, C++, Rust, D, Haxe, or Swift without recompiling the engine.

Všimněte si, že 3D pracovní prostor nemá tolik nástrojů jako 2D pracovní prostor. K úpravám terénů, animaci složitých postav atd. budete potřebovat externí programy nebo doplňky. Godot poskytuje kompletní API pro rozšíření funkčnosti editoru pomocí herního kódu. Viz Editor Godot je hra Godot níže.

image4

Doplněk editoru State Machine v Godot 2 od kubecz3k. Umožňuje vizuální správu stavů a přechodů.

Open source

Godot nabízí plně otevřený zdrojový kód pod licencí MIT. To znamená, že všechny technologie, které se s ním dodávají, musí být také zdarma (jako ve svobodě). Z velké části jsou vyvíjeny od základu přispěvateli.

Každý může připojit proprietární nástroje pro potřeby svých projektů - prostě je nebude dodávat spolu s enginem. To může zahrnovat Google AdMob, nebo FMOD. Každý z nich může být užíván jako plugin třetích stran.

Na druhé straně, otevřená kódová základna znamená, že se můžete učit od enginu a rozšiřovat jej co hrdlo ráčí. Můžete také snadno ladit hry, protože Godot bude tisknout chyby s trasováním zásobníku, i když pocházejí z enginu samotného.

Poznámka

To nijak neovlivňuje práci, kterou provádíte s Godotem: k enginu nejsou připojeny žádné další podmínky a omezení a ani nic, co s ním vytvoříte.

Řízený komunitou

Godot je vytvořen komunitou, pro komunitu a pro všechny tvůrce her tam venku. Je to potřeba uživatelů a diskuze, co řídí základní aktualizace. Nové funkce od hlavních vývojářů se často zaměřují na to, co přinese užitek co nejvíce uživatelům.

To znamená, že ačkoli zde pracuje několik vývojářů na plný úvazek, má v době psaní tohoto článku Godot více než 600 přispěvatelů. Dobrovolní programátoři pracují především na funkcích, které mohou potřebovat sami, takže ve všech hlavních vydáních uvidíte průběžné zlepšování všech oblastí, které engine pokrývá.

Editor Godot je Godot hra

Editor Godot běží na herním enginu. Využívá vlastní systém uživatelského rozhraní enginu, může při testování projektů znovu načíst kód a scény, nebo spustit kód hry v editoru. To znamená, že můžete použít stejný kód a scény pro své hry, nebo vytvořit doplňky a rozšířit editor.

This leads to a reliable and flexible UI system, as it powers the editor itself. With the @tool annotation, you can run any game code in the editor.

image5

RPG in a Box je voxel RPG editor vytvořený programem Godot 2. Používá nástroje UI Godota pro svůj programovací systém založený na uzlech a pro zbytek rozhraní.

Put the @tool annotation at the top of any GDScript file and it will run in the editor. This lets you import and export plugins, create plugins like custom level editors, or create scripts with the same nodes and API you use in your projects.

Poznámka

The editor is fully written in C++ and is statically compiled into the binary. This means you can't import it as a typical project that would have a project.godot file.

Oddělené 2D a 3D enginy

Godot nabízí jednoúčelové 2D a 3D vykreslovací enginy. Výsledkem je, že základní jednotkou pro 2D scény jsou pixely. Přestože jsou enginy oddělené, můžete vykreslit 2D ve 3D, 3D ve 2D a překrýt 2D sprity a rozhraní přes svůj 3D svět.