Up to date

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

Často kladené otázky

Co mohu dělat s Godot? Kolik to stojí? Jaké jsou licenční podmínky?

Godot je Svobodný software s otevřeným zdrojovým kódem dostupný pod OSI-approved MIT licencí. To znamená, že je zdarma jako "svoboda projevu" nebo jako "pivo zdarma."

Ve zkratce:

  • Můžete si zdarma stáhnout a používat Godot pro jakékoliv účely: osobní, neziskový, komerční nebo jakkoli jinak.

  • Můžete volne modifikovat, distribuovat, předávat a upravovat Godot tak jak uznáte za vhodné a to z jakéhokoli důvodu, ať už nekomerčně nebo komerčně.

Veškerý obsah této doprovodné dokumentace je zveřejněn pod volnou licencí Creative Commons Attribution 3.0 ( CC-BY 3.0 ), s přiřazením licence k „Juan Linietsky, Ariel Manzur a komunitě Godot Engine. "

Loga a ikony jsou obecně pod stejnou licencí Creative Commons. Upozorňujeme, že některé knihovny třetích stran zahrnuté ve zdrojovém kódu Godota mohou mít různé licence.

Veškeré podrobnosti naleznete v souborech COPYRIGHT.txt, LICENSE.txt a LOGO_LICENSE.txt v úložišti Godot.

Viz také licenční stránka na webu Godot.

Které platformy podporuje Godot?

Pro editor:

  • Windows

  • macOS

  • Linux, *BSD

  • Android (experimentální)

  • Webové stránky (experimentální)

Pro export vašich her:

  • Windows

  • macOS

  • Linux, *BSD

  • Android

  • Ios

  • Web

Obě 32-bit a 64-bit bitové verze jsou podporovány všude, kde to dává smysl, s tím že 64 je defaultní. Oficiální macOS sestavení přirozeně podporuje Apple Silicon stejně jako x86_64.

Někteří uživatelé také hlásí úspěšné sestavení a použití Godot na systémech založených na ARM s Linuxem, jako je Raspberry Pi.

Tým enginu Godot nemůže poskytovat export open-source projektů na konzole kvůli licenčním podmínkám stanovených jejich výrobci. Bez ohledu na engine, který použijete, znamená vydání her pro konzole vždy hodně práce. Více se můžete dočíst na Console support in Godot.

Pro více informací se podívejte na sekce exportování a kompilování Godot.

Poznámka

Godot 3 měl také podporu pro Universal Windows Platform (UWP). Tento port platformy byl v Godot 4 odstraněn kvůli nedostatečné údržbě a Microsoft ho zavrhl. Pro zainteresované uživatele je stále k dispozici v aktuální stabilní verzi Godot 3.

Které programovací jazyky jsou podporovány v Godot?

Oficiálně podporované jazyky pro Godot jsou GDScript, C# a C++. Více v podkategoriích pro každý jazyk v sekci skriptování.

Pokud teprve začínáte s Godot nebo s vývojem her obecně, doporučujeme se naučit a používat GDScript, protože je v Godotu přirozeně podporován. Zatímco skriptovací jazyky mají v dlouhodobém horizontu tendenci být méně výkonné než jazyky nižší úrovně, pro prototypování, vývoj minimálních životaschopných produktů (MVP) a zaměřování se na TTM (Time-To-Market), GDScript poskytne rychlý, uživatelsky přívětivý a výkonný prostředek pro rozvoj vašich her.

Všimněte si, že podpora C # je stále relativně nová, a proto se můžete setkat s některými problémy. Podpora C#také cyhbí na webové platformě. Naše přátelská a pracovitá komunita vývojářů je vždy připravena řešit nové problémy jakmile se objeví, ale protože se jedná o projekt s otevřeným zdrojovým kódem, doporučujeme vám nejprve udělat si vlastní hloubkový průzkum. Prohledávání diskusí o otevřených problémech je skvělý způsob, jak začít s řešením vlastních problémů.

Pokud jde o nové jazyky, podpora je možná prostřednictvím třetích stran pomocí GDExtensions. (Více v otázce o pluginech níže.) V současné době například probíhají práce na neoficiálním propojení Godot s`Pythonem <https://github.com/touilleMan/godot-python>`_ a Nimem.

Co je GDScript a proč bych jej měl používat?

GDScript je integrovaný skriptovací jazyk pro Godot. Byl postaven od základů tak, aby maximalizoval potenciál enginu při využití minimálního množství kódu. To umožňuje jak začínajícím, tak i pokročilým vývojářům co nejrychleji ovládnout silné stránky Godota. Pokud jste někdy napsali něco v jazyce jako je Python, budete se zde cítit jako doma. Pro příklady a úplný přehled možností které GDScipt nabízí zjistíte v GDScript skriptovací příručka GDScript.

Existuje několik důvodů proč používat GDScript, zejména když prototypujete, v alfa/beta fázích vašeho projektu nebo pokud nevytváříte další AAA titul. Nejvýznamějším důvodem je celkové snížení složitosti..

Původní záměr vytvořit těsně integrovaný, vlastní skriptovací jazyk pro Godot byl dvojí: zaprvé, snižit množství času potřebného k poznání a ovládnutí Godotu, což potenciálním vývojářům poskytuje rychlý způsob, jak se seznámit s enginem a používat ho produktivně; za druhé, redukovat celkové břemeno údržby, zmenšit složitost problémů a umožnit vývojářům enginu soustředit se na odstraňování chyb a vylepšování funkcí souvisejících s jádrem enginu, spíše než utápět spoustu času prací na malých přírůstkových funkcích pro velké množství jazyků.

Jelikož Godot je projekt s otevřeným zdrojovým kódem, bylo od počátku nezbytné upřednostňovat integrovanější a bezproblémovou zkušenost před získáváním dalších uživatelů podporou známějších programovacích jazyků - zejména pokud by podpora těchto známých jazyků vedla k horším zkušenostem. Chápeme, že byste v Godotu raději používali jiný jazyk (viz výše uvedený seznam podporovaných možností). Jak již bylo řečeno, pokud jste nezkoušeli GDScript, zkuste to na tři dny. Stejně jako Godot, jakmile uvidíte, jak silný je a jak rychle se váš vývoj postupuje, myslíme si, že GDScript si vás získá.

Více informací jak pohodlně používat GDScript nebo dynamicky typované jazyky najdete v tutoriálu GDScript: Úvod do dynamických jazyků.

Jaká byla motivace pro vytvořeníí GDScript?

V začátcích používal engin skriptovací jazyk Lua . Lua umí být ychlý, díky LuaJIT, ale vytváření vazeb na objektově orientovaný systém (pomocí fallbacks) bylo složité a pomalé a vyžadovalo enormní množství kódu. Po několika experimentech s Pythonem se i toto řešení ukázalo jako problematické.

Hlavní důvody pro vytvoření vlastního skriptovacího jazyka pro Godot byly:

  1. Špatná podpora vláken ve většiny VM skriptů a Godot používá vlákna(Lua, Python, Squirrel, JavaScript, ActionScript atd.).

  2. Špatná podpora rozšíření tříd ve většině VM skriptů a přizpůsobení se způsobu, jakým Godot pracuje, je vysoce neefektivní (Lua, Python, JavaScript).

  3. Mnoho existujících jazyků má otřesná rozhraní pro vazbu na C ++, což vede k velkému množství kódu, chybám, bottlenecks (efekt hrdla lahve) a obecně neefektivnosti (Lua, Python, Squirrel, JavaScript atd.) Chtěli jsme se zaměřit na skvělý engine, ne na velké množství integrovaných jazyků.

  4. Žádné nativní typy vektorů (vector3, Transform3D atd.), kterou vedou k velmkému snížené výkonu při používání vlastních typů (Lua, Python, Squirrel, JavaScript, ActionScript atd.).

  5. Automatická správa paměti (Garbage Collector) má za následek prodlevy nebo zbytečně velké využití paměti (Lua, Python, JavaScript, ActionScript atd.).

  6. Potíže při integraci script editoru s automatickým navrhováním doplňování kódu (code completion), úpravou prováděného kódu atd. (Všechny).

GDScript byl navržen tak, aby omezil výše uvedené problémy a jiné další.

Jaké typy formátů 3D modelů Godot podporuje?

Podrobné informace o podporovaných formátech, jak je exportovat z vašeho softwaru pro 3D modelování a jak je importovat do Godotu, naleznete v dokumentaci Import 3D scén.

Budou [insert closed SDK, jako je FMOD, GameWorks atd.] v Godot podporovány?

Cílem Godot je vytvořit bezplatný a open-source MIT-licencovaný engine, který je modulární a rozšiřitelný. Neexistují žádné plány na to, aby komunita vyvyjející jádro enginu podporovala jakékoli SDK třetích stran s uzavřeným kódem/proprietární, protože jejich integrace by byla v rozporu s etikou Godot.

Vzhledem k tomu, že Godot je open-source a modulární, nic nebrání vám ani komukoli jinému přidat tyto knihovny jako moduly a distribuovat s nimi hru ať už formou open či closed source.

Chcete-li zjistit, jak by mohla být podpora pro vaše vybrané SDK poskytována, se podívejte níže na otázku týkající se pluginů.

Pokud víte o sadě SDK třetích stran, kterou Godot nepodporuje, ale která nabízí bezplatnou a open-source integraci, zvažte zahájení integrační práce vlastní silou. Godot není jen ve vlastnictví jedné osoby; patří komunitě a roste spolu s ambicemi komunitních přispěvatelů, jako jste vy.

Jak mohu rozšířit Godot?

Chcete-li rozšířit Godot, například vytvořit pluginy editoru Godot nebo přidat podporu pro další jazyky, podívejte se na Editor pluginů a skripty nástrojů.

Podívejte se také na oficiální blogové příspěvky na GDExtension, možnost jak vyvíjet nativní doplňky pro Godot:

Můžete se také podívat na implementaci GDScriptu, moduly Godotu a také na integraci Jolt physics enginu pro Godot. To je dobrým začátečním bodem pro pochopení, jak se knihovny třetích stran do Godot integrují.

Jak nainstaluji editor Godot na svém systému (pro integraci na desktopové počítače)?

Vzhledem k tomu, že nepotřebujete Godot instalovat na svůj systém abyste jej spustili, znamená, že se integrace desktopového rozhraní neprovádí automaticky. Existují dva způsoby, jak toto překonat. Godot si můžete nainstalovat ze Steamu (všechny platformy), Scoop (Windows), Homebrew (macOS) nebo Flathub (Linux). Tím se automaticky provedou požadované kroky pro integraci desktopového rozhraní.

Případně můžete ručně provést kroky, které by za vás udělal instalační program:

Windows

  • Přesuňte spustitelný soubor Godot na pevné umístění (tj. mimo složku Stažené soubory), abyste jej omylem nepřesunuli a v budoucnu nerozbili zástupce.

  • Klikněte pravým tlačítkem myši na spustitelný soubor Godot a vyberte Vytvořit zástupce.

  • Přesuňte vytvořeného zástupce do %APPDATA%\Microsoft\Windows\Start Menu\Programs. Toto je uživatelské místo pro zástupce, které se zobrazí v nabídce Start. Godot můžete také připnout na hlavní panel kliknutím pravého tlačítka myši na spustitelný soubor a výběrem Připnout na hlavní panel.

macOS

Přetáhněte rozbalenou aplikaci Godot do /Applications/Godot.app a poté ji podle potřeby přetáhněte do Docku. Spotlight bude moci najít Godot, dokud bude v /Applications nebo ~/Applications.

Linux

  • Přesuňte soubor Godot na pevné umístění (tj. mimo vaši složku Stažené soubory), abyste jej omylem nepřesunuli a v budoucnu nerozbili zástupce.

  • Přejmenujte a přesuňte soubor Godot do umístění ve vaší proměnné prostředí PATH. Obvykle je to /usr/local/bin/godot nebo /usr/bin/godot. To vyžaduje administrátorská práva, ale také vám umoží spustit editor Godot z terminálu zadáním godot.

    • Pokud nemůžete soubor editoru Godot přesunout na chráněné umístění, můžete si binární soubor ponechat někde ve svém domovském adresáři a upravit řádek Path= v níže odkazovaném souboru .desktop tak, aby obsahoval úplnou absolutní cestu ke Godot souboru.

  • Uložte soubor this.desktop do $HOME/.local/share/applications/. Pokud máte administrátorská práva, můžete také uložit soubor .desktop do /usr/local/share/applications aby byl zástupce k dispozici pro všechny uživatele.

Je editor Godot přenosná aplikace?

V základní konfiguraci je Godot polo-přenosný. Jeho spouštěcí soubor může být spuštěn z kterékoliv lokace (všetně lokací do kterých nelze zapisovat) a nikdy nevyžaduje administrátorská práva.

Nicméně, konfigurační soubory budou zapsány do konfigurace pro všechny uživatele nebo datového úložiště. Toto je většinou dobrý přístup, ale znamená to, že konfigurační soubory se nepřenáší mezi stroji pokud zkopírujete složku obsahující spustitelný soubor Godot. Čtěte :re:`doc_data_paths` pro více informací.

Pokud je vyžadován skutečně přenosný provoz (např. pro použití na USB klíčence), postupujte podle kroků v Self-contained mode.

Proč Godot používá Vulkan nebo OpenGL namísto Direct3D?

Godot staví prvně a především na mezi platformní kompatibilitě a otevřených standardech. OpenGL a Vulkan jsou technologie, které jsou otevřené a dostupné (téměř) na všech platformách. Díky tomuto návrhovému rozhodnutí bude projekt vyvinutý s Godot pro Windows fungovat ihned po rozbalení na Linuxu, macOS a dalších.

Vzhledem k tomu, že Godot má jen málo lidí pracujích na svém rendereru(vykreslovač), upřednostňujeme mít méně vykreslovacích back-endů k údržbě. Kromě toho umožňuje použití jediného API rozhraní na všech platformách k větší soudržnosti s menším počtem problémů specifických pro jednotlivé platformy.

Z dlouhodobého hlediska můžeme vyvinout vykreslovací modul Direct3D 12 pro Godot (hlavně pro účely Xboxu), ale Vulkan a OpenGL zůstanou výchozím vykreslovacím back-endem na všech platformách, včetně Windows.

Proč se Godot snaží udržet svou základní sadu funkcí malou?

Godot záměrně neobsahuje funkce, které lze implementovat pomocí doplňků, pokud nejsou používány velmi často. Příkladem něčeho co není užíváno moc často pokročilé funkce umělé inteligence.

Existuje pro to několik důvodů:

  • Údržba kódu a vyhledávání chyb. Pokaždé, když do úložiště Godot přijmeme nový kód, stávající přispěvatelé často přebírají odpovědnost za jeho údržbu. Někteří přispěvatelé po začlenění svého kódu nejsou často po ruce po začlenění jejich kódu, což nám může ztížit údržbu daného kódu. To může vést ke špatně udržovaným funkcím s chybami, které nejsou nikdy opraveny. Kromě toho "API rozhraní", které je třeba testovat a kontrolovat, zda nedošlo k regresi, se v průběhu času neustále zvětšuje.

  • Snadné přispívání. Díky tomu, že je kódová základna malá a přehledná, tak zůstává nadále rychle a snadno sestavitelná ze zdrojových kódů. Noví přispěvatelé tak mohou s Godotem snáze začít pracovat, aniž by museli kupovat špičkový hardware.

  • Udržování malé velikosti binárního souboru pro editor. Ne každý má rychlé připojení k internetu. Zajištění, aby si každý mohl stáhnout editor Godot, rozbalit jej a spustit za méně než 5 minut, činí Godot přístupnějším pro vývojáře ve všech zemích.

  • Zachování malé velikosti binárních souborů pro exportní šablony. Toto přímo ovlivňuje velikost projektů exportovaných pomocí Godot. U mobilních a webových platforem je udržení nízké velikosti souborů prvořadé pro zajištění rychlé instalace a načítání na málo výkonných zařízeních. Opět, existuje mnoho zemí, kde není snadno dostupný vysokorychlostní internet. Navíc v těchto zemích často platí přísné limity pro využívání dat.

Kvůli všecm výše uvedeným důvodům si musíme vybírat, co můžeme v Godotu přijmout za základní funkce. Proto se snažíme přesunout některé základní funkce pro oficiálně podporované doplňky do příštích verzí Godot. Z hlediska velikosti binárních souborů to má také tu výhodu, že budete platit pouze za to, co ve svém projektu skutečně používáte. (Tím je myšleno kompilovat vlastní exportní šablony s vypnutými nepoužívanými funkcemi a optimalizovat tak distribuční velikost svého projektu.)

Jak by měly být vytvořeny zdroje, aby zvládaly vícenásobná rozlišení a poměry stran?

Tato otázka se objevuje často a je to pravděpodobně díky nedorozumění, když Apple původně zdvojnásobil rozlišení jeho zařízení. To přimělo lidi myslet si, že mít stejné doplňky v různých rozlišeních, je dobrý nápad a tak mnozí touto cestou pokračovali. To původně fungovalo jenom do určité míry a pouze pro zařízení Apple, ale poté bylo vytvořeno několik dalších zařízení Android a Apple s různými rozlišeními a poměry stran s velmi širokou škálou velikostí a DPI.

Nejběžnějším a nejvhodnějším způsobem jak toho dosáhnout, je použít pro hru jediné základní rozlišení a ošetřit pouze různé poměry stran obrazovky. To je většinou potřeba pro 2D, protože ve 3D je to jen záležitost horizontálního a vertikálního FOV kamery.

  1. Vyberte si jedno základní rozlišení pro vaši hru. I když existují zařízení, která mají až 1440p a zařízení, která jenom na 400p, o toto se postará pravidelné hardwarové škálování ve vašem zařízení s minimálními nebo žádnými požadavky na výkon. Nejběžnější volby jsou buď 1080p (1920x1080) nebo 720p (1280x720). Mějte na paměti, že čím vyšší rozlišení, tím větší jsou potřebné doplňky a tím více paměti zaberou a déle bude trvat jejich načítání.

  2. Použijte různé možnosti roztažení v Godot; 2D roztažení při zachování poměru stran funguje nejlépe. Podívejte se na návod Multiple resolutions , jak toho dosáhnout.

  3. Určete minimální rozlišení a poté se rozhodněte, zda chcete, aby byla vaše hra roztažená svisle nebo vodorovně pro různé poměry stran nebo zda existuje jediný poměr stran a chcete, aby se místo toho zobrazovaly černé pruhy. To je také vysvětleno v Multiple resolutions.

  4. U uživatelských rozhraní použijte ukotvení, k určení, kde by měly ovládací prvky zůstat a kam by se měly případně pohybovat. Pokud jsou uživatelská rozhraní komplexnější, zjistěte si více o kontejnerech.

A to je vše! Vaše hra by měla fungovat ve více rozlišeních.

Kdy vyjde další verze Godot?

Až bude připravena! Čtěte Kdy vyjde další verze? pro více informací.

Kterou verzi Godot mám použít pro nový projekt?

Doporučujeme pro nové projekty použít Godot 4.x, ale záleží na doplňcích které použijete. Nekdy proto může být lepší využít verzi 3.x. Čtěte Which version should I use for a new project? pro více informací.

Můžu aktualizovat projekt aby využíval novou novější verzi Godot?

Některé nové verze jsou bezpečnější pro provedení upgradu než jiné. Záleží na okolnostech vašeho projektu, zda by jste měli provést upgrade. Čtěte :ref:` doc_release_policy_should_i_upgrade_my_project` pro více informací.

Chtěl bych přispět! Jak mohu začít?

Skvělé! Jako open-source projekt, Godot vzkvétá díky inovacím a ambicím vývojářů, jako jste vy.

Nejlepším způsobem jak přispět je Godot používat a nahlásit jakékoliv problémy které zaregistrujete. Kvalitní report o problému se srozumitelným postupem jak chybu zopakovat pomáhá vaším spolupřispěvatelům opravit problém rychle a efektivně. Můžete také nahlásit chybí, kterou naleznete v online dokumentaci.

Pokud jste připraveni předložit první příspěvek, vyberte si problém který vás trápí v jednom z výše uvedených odkazů a zkuste ho vyřešit. Budete se muset naučit jak sestavit engine ze zdrojů nebo jak vytvořit dokumentaci. Také by jste měli být obeznámeni s Git, verzovacim nástrojem který vývojáři Godot používají.

Jak pracovat s enginem, jak upravovat dokumentaci a také jaké další možnosti přispívat máte vysvětlujeme v dokumentaci pro přispěvatele.

Mám skvělý nápad pro Godot. Jak se o něj mohu podělit?

Stále hledáme nové nápady jak engine vylepšit. Zpětná vazba je hlavní hybnou silou našich rozhodnutí a omezení kterým můžete čelit při práci na vašem projektu jsou skvělé ukazatelem nás, když se rozhodujeme o vylepšeních enginu.

Pokud zaznamenáte potíže s užíváním enginu nebo vám schází funkce v současné verzi Godot, zkuste to prodiskutovat s naší komunitou. Můžete zde nalézt jiný, možná i lepší postup navrhnutý členy komunity, který povede k dosažení požadovaného výsledku. A můžete se dozvědět, zda jiní uživatele mají stejný problém a najít pak řešení společně.

Pokud budete mit dobře nadefinovaný nápad pro engine, podělte se o něj s námi otevřením návrhu řešení. Budte detailní a podrobně popište váš problém a vámi navrhované řešení - jen realizovatelné návrhy mohou být posuzovány. Není to podmínka, ale pokud bude chtít nápad implementovat sami, budeme velmi rádi!

Pokud máte všeobecný nápad bez specifických detailu, můžete otevřít diskuzi o návrhu. Ty mohou být o čemkoliv a dovoluji volnou diskuzi při hledání řešení. Jakmile se řešení nalezne, může být otevřeno řešení návrhu(issue).

Prosím přečtěte si readme dříve než vložíte nový návrh aby jste zjistili vše o tomto procesu.

Je možné použít Godot k vytváření jiných než herních aplikací?

Ano! Godot má rozsáhlý vestavěný systém uživatelského rozhraní a díky své malé distribuční velikosti může být vhodnou alternativou k frameworkům jako Electron nebo Qt.

Při vytváření neherní aplikace nezapomeňte povolit :ref:`low-processor mode <class_ProjectSettings_property_application/run/low_processor_mode>`v nastavení projektu, abyste snížili využití CPU a GPU.

Podívejte se na Material Maker a Pixelorama, kde najdete příklady open source aplikací vytvořených pomocí Godot.

Je možné použít Godot jako knihovnu?

Godot je určen k použití s jeho editorem. Doporučujeme vám to vyzkoušet, protože vám s největší pravděpodobností v dlouhodobém horizontu ušetří čas. Neexistují žádné plány na to, aby byl Godot použitelný jako knihovna, protože by se tím zvyšovala spletitost a obtížnost zbytku enginu pro příležitostné uživatele.

Pokud chcete použít vykreslovací knihovnu, prozkoumejte místo toho použití zavedeného vykreslovacího enginu. Mějte na paměti, že vykreslovací enginy mají obvykle menší komunitní základny ve srovnání s Godotem. To poté ztěžuje nalezení odpovědí na vaše otázky.

Jaký toolkit uživatelského rozhraní Godot používá?

Godot nepoužívá standardní GUI sadu nástrojů jako GTK, Qt nebo wxWidgets. Místo toho Godot používá vlastní sadu nástrojů uživatelského rozhraní vykreslovanou pomocí OpenGL ES nebo Vulkan. Tato sada nástrojů je vystavena ve formě uzlů Control, které se používají k vykreslování editoru (který je napsán v jazyce C++). Tyto uzly Control lze také použít v projektech v libovolném skriptovacím azyce podporovaného systémem Godot.

Tato vlastní sada nástrojů umožňuje těžit z hardwarové akceleraci a mít konzistentní vzhled na všech platformách. Kromě toho se nemusí potýkat s licenčními výhradami LGPL, které jsou spojeny s GTK nebo Qt. V neposlední řadě to znamená, že Godot "žere vlastní psí žrádlo", protože samotný editor je jedním z nejsložitějších uživatelkých systémů uživatelského rozhraní Godot.

Tuto vlastní sadu nástrojů uživatelského rozhraní nelze použít jako knihovnu, ale stále můžete použít Godot k vytváření neherních aplikací pomocí editoru.

Proč Godot používá sestavovací systém Scons?

Godot používá sestavovací program Scons. V blízké budoucnosti se neplánuje přechod na jiný sestavovací systém. Je mnoho důvodů proč jsme si vybrali Scons mezi různými alternativní. Například:

  • Godot může být sestaven pro desítky různých platforem: všechny PC platformy, všechny mobilní platformy, mnoho konzolých a WebAssembly.

  • Vývojáři casto potřebuji provest sestavení pro různé platformy najednou nebo dokonce různé zacílení té same platformy. Nemohou si dovolit pokaždé rekonfigurovat a přestavět projekt. Scons se u toho ani nezapotí a nezničí při tom sestavení.

  • Scon nikdy nepřeruší sestavování bez ohledu na provedené změn, konfiguracie, přídavky, odstranění atd.

  • Sestavovací proces v Godot není snadný. Několik souborů je generováno kódem (binders), jiné jsou parsovsné (stíny) a ostatní potřebují upravitelné (:ref:` moduly<doc_custom_modules_in_cpp>`). To vše vyžaduje komplexní logiku, kterou je snazší napsat v aktuálním programovacím jazyce (jako Python), než-li použít nejznámější makro jazyky jen kvůli sestavení.

  • Godot's build process makes heavy use of cross-compiling tools. Each platform has a specific detection process, and all these must be handled as specific cases with special code written for each.

Pokuste se mít otevřenou mysl a zkuste se alespoň trochu seznámit s Scons pokud plánujete sestavit si Godot sami.

Proč Godot nepoužívá STL (Standard Template Library)?

Stejně jako mnoho jiných knihoven (Qt jako příklad), Godot nevyužívá STL (až na pár vyjímek jako třeba threading primitives). Věříme, že STL je skvělá univerzální knihovna, ale pro Godot jsme měli specifické požadavky.

  • Šablony STL vytvářejí velmi rozsáhlé symboly, které ve výsledku mají obrovské debugovací binární soubory. Místo toho používáme několik šablon s velmi krátkými jmény.

  • Většina našich kontejnerů vyhovuje zvláštním potřebám, jako je Vector, který používá kopii při zápisu a které pak používáme k předávání dat nebo systému RID, který vyžaduje pro výkon O(1) přístupový čas. Naše implementace hash map jsou také navrženy tak, aby hladce spolupracovaly s interními typy enginu.

  • Naše kontejnery mají vestavěné sledování paměti, což pomáhá lépe sledovat celkové využití paměti.

  • Pro rozsáhlá pole používáme paměť alokovanou v pevných blocích, kterou lze namapovat buď na předběžně přidělenou vyrovnávací paměť nebo na virtuální paměť.

  • Používáme náš vlastní typ String, protože typ poskytovaný STL je příliš prostý a postrádá náležitou podporu internacionalizace.

Proč Godot nevyužívá výjimky?

Věříme, že hry by se neměly padat, ať už je důvod jakýkoliv. Pokud dojde k neočekávané situaci, Godot oznámí chybu (kterou lze vysledovat i ke skriptu), ale pak se pokusí co možná nejelegantněji vzpamatovat a pokračovat v v běhu programu.

Výjimky navíc výrazně zvyšují celkovou velikost spustitelného soubor a vedou ke zvýšenému času k sestavení produktu.

Používá Godot ECS (Entity Component System)?

Godot nepoužívá ECS a namísto toho se spoléhá na dědičnost. I když neexistuje žádný univerzální přístup, zjistili jsme, že využití přístupu založeného na dědičnosti vede ve většině případů k lepší použitelnosti při zachování rychlosti.

Nic vám nebrání vytvořit si sestavu ve svém projektu vytvořením podřízených uzlů s individuálními skripty. Tyto uzly pak mohou být přidávány a mazány za běhu programu k přidání nebo odebrání dynamického chovani.

Více o designových volbách Godot lze nalézt v tomto článku.

Proč Godot nenutí uživatele implementovat DOD (Datově-Orientovaný Design)?

Zatímco sebGodot interně snaží co nejlépe využít koherenci mezipaměti, věříme, že uživatelé nepotřebují být nuceni využívat postupy DOD.

DOD spočívá převážně v optimalizaci soudržnost mezipaměti, která vám může přinést pouze částečné zvýšení výkonu při práci s desítkami tisíc objektů, které mají při zpracování v každém snímku malou úpravu. V případě, že pohybujete několika stovkami spritů nebo nepřátel za snímek, DoD vám tady stějně nepomůže zlepšit výkon. V takovém případě byste měli zvážit jiný přístup k optimalizaci.

Drtivá většina her toto nepotřebuje a Godot poskytuje šikovné pomocníky, kteří toto ve většině případů zařídí.

Pokud hra skutečně potřebuje zpracovat tak velké množství objektů, doporučujeme použít C ++ a GDExtensions pro úkoly s vysokým požadavkem na výkon a GDScript (nebo C #) pro zbytek hry.

Jak mohu podpořit rozvoj Godot nebo přispět?

Čtěte Ways to contribute.

Kdo pracuje na Godot? Jak vás mohu kontaktovat?

Podívejte se na příslušnou stránku na webu Godot.