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...
Často kladené dotazy
Co mohu dělat s Godotem? Kolik to stojí? Jaké jsou licenční podmínky?
Godot je Svobodný software s otevřeným zdrojovým kódem dostupný pod MIT licencí schválenou OSI. To znamená, že je svobodný, tak jako "svoboda projevu" a zdarma jako "pivo zdarma."
Ve zkratce:
Můžete si Godot zdarma stáhnout a používat ho pro jakékoli účely: osobní, neziskové, komerční nebo jakkoli jinak.
Godot můžete volně upravovat, distribuovat, redistribuovat a remixovat podle vlastního uvážení, a to z jakéhokoli důvodu, nekomerčně i komerčně.
Veškerý obsah této doprovodné dokumentace je zveřejněn pod permisivní licencí Creative Commons Attribution 3.0 ( CC-BY 3.0 ), s uvedením autorství "Juan Linietsky, Ariel Manzur a komunita Godot Engine."
Loga a ikony jsou obecně pod stejnou Creative Commons licencí. Upozorňujeme, že některé knihovny třetích stran zahrnuté ve zdrojovém kódu Godotu mohou mít odlišné licence.
For full details, look at the COPYRIGHT.txt as well as the LICENSE.txt and logo LICENSE.txt files in the Godot repository.
Viz také licenční stránka na webu Godot.
Které platformy Godot podporuje?
Pro editor:
Windows
macOS
Linux, *BSD
Android (experimentální)
Webová verze (experimentální)
Pro export vašich her:
Windows
macOS
Linux, *BSD
Android
iOS
Web
32-bitové i 64-bit bitové verze jsou podporovány všude, kde to dává smysl, s tím že 64 je výchozí. Oficiální macOS sestavení nativně podporuje Apple Silicon a také 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.
For information about console support, see the Godot website.
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 Godotu 4 odstraněn kvůli nedostatečné údržbě a Microsoft ho označil za zastaralý. Pro zainteresované uživatele je stále k dispozici v aktuální stabilní verzi Godot 3.
Které programovací jazyky jsou v Godotu podporovány?
Oficiálně podporované jazyky pro Godot jsou GDScript, C# a C++. Více informací naleznete v podkategoriích pro každý jazyk v sekci o skriptování.
Pokud s Godotem nebo obecně s vývojem her teprve začínáte, doporučujeme se naučit a používat GDScript, jelikože je v Godotu nativně podporován. Přestože 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 při upřednostnění času uvedení na trh (Time-To-Market, TTM), poskytuje GDScript rychlý, uživatelsky přívětivý a výkonný prostředek pro vývoj vašich her.
Podpora C # je stále relativně nová, a proto se můžete setkat s různými problémy. Podpora C# také aktuálně 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í diskuzí o otevřených problémech je skvělý způsob, jak začít s řešením vlastních problémů.
Co se týče nových jazyků, podpora je možná prostřednictvím třetích stran pomocí GDExtension rozšíření. (Více v otázce o zásuvných modulech 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/a 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 vyžít silné stránky Godotu. Pokud jste někdy napsali něco v jazyce jako je Python, budete se zde cítit jako doma. Příklady a úplný přehled možností, které GDScipt nabízí najdete ve skriptovacím návodu pro GDScript.
Existují různé důvody, proč používat GDScript, ale tím nejvýraznějším 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žuje to množství času potřebného pro porozumění Godotu, což potenciálním vývojářům poskytuje rychlý způsob, jak se s enginem senámit a používat ho produktivně; za druhé, redukovat celkové břemeno údržby, sníž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ž je Godot 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 přilákáním dalších uživatelů podporou známějších programovacích jazyků, zejména pokud by podpora těchto 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í). Pokud jste nicméně GDScript ještě nevyzkoušeli, dejte tomu tři dny. Stejně jako s Godotem, jakmile uvidíte, jak silný je a jak rychle váš vývoj postupuje, domníváme se, že GDScript si vás získá.
Více informací jak pohodlně používat GDScript nebo dynamicky typované jazyky najdete v návodu GDScript: Úvod do dynamických jazyků.
Jaké byly motivace pro vytvoření GDScriptu?
V začátcích používal engine skriptovací jazyk Lua . Lua umí být rychlý 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:
Špatná podpora vláken ve většiny VM skriptů a Godot vlákna používá (Lua, Python, Squirrel, JavaScript, ActionScript atd.).
Š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).
Mnoho existujících jazyků má otřesná rozhraní pro vazbu na C ++, což vede k velkému množství kódu, chybám, úzkým místům 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ů.
Žádné nativní typy vektorů (Vector3, Transform3D atd.), což vede k výraznému snížení výkonu při používání vlastních typů (Lua, Python, Squirrel, JavaScript, ActionScript atd.).
Automatická správa paměti za pomoci garbage collectoru má za následek prodlevy nebo zbytečně velké využití paměti (Lua, Python, JavaScript, ActionScript atd.).
Potíže při integraci editoru kódu s automatickým doplňováním kódu, úpravou prováděného kódu atd. (všechny).
GDScript byl navržen tak, aby výše uvedené problémy a jiné další omezil.
Který programovací jazyk je nejrychlejší?
Ve většině her není příčinou problémů s výkonem samotný skriptovací jazyk. Místo toho je výkon zpomalován neefektivními algoritmy (které jsou pomalé ve všech jazycích), výkonem GPU nebo společným C++ kódem enginu, jako je fyzika nebo navigace. Všechny jazyky podporované Godotem jsou dostatečně rychlé pro univerzální skriptování. Jazyk byste měli zvolit na základě dalších faktorů, jako je snadnost použití, známost, podpora platforem nebo jeho funkce.
Obecně platí, že výkon C# a GDScript je řádově srovnatelný a C++ je rychlejší než oba tyto jazyky.
Porovnání výkonu GDScriptu s C# je složité, protože C# může být v některých specifických případech rychlejší. Samotný jazyk C# bývá rychlejší než GDScript, což znamená, že C# může být rychlejší v situacích, kdy je engine Godot volán málo. C# však může být pomalejší než GDScript při provádění mnoha volání API Godotu, kvůli nákladům na marshalling. Výkon C# může být také snížen garbage collectorem, který se spouští v náhodných a nepředvídatelných okamžicích. To může vést k problémům se zadrháváním ve složitých projektech a netýká se to jen Godotu.
C++ s použitím GDExtension bude téměř vždy rychlejší než C# nebo GDScript. C++ se však používá méně snadno než C# nebo GDScript a vývoj je v něm pomalejší.
Můžete také použít více jazyků v rámci jednoho projektu, se skriptováním napříč jazyky nebo použitím GDExtension a skriptovacích jazyků společně. Buďte si však vědomi, že to přináší své vlastní komplikace.
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.
Bude [vložte jakékoli uzavřené SDK, jako je FMOD, GameWorks apod.] v Godotu podporováno?
Cílem Godotu 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 proprietární SDK třetích stran, nebo SDK s uzavřeným kódem, protože jejich integrace by byla v rozporu s étosem Godotu.
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 zajištěna, podívejte se níže na otázku týkající se zásuvných modulů.
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í 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řením zásuvného modulu pro editoru Godotu nebo přidáním podpory pro další jazyky, podívejte se na Zásuvné moduly editoru a nástrojové skripty.
Podívejte se také na oficiální blogové příspěvky o GDExtension, což je možnost jak vyvíjet nativní rozšíření pro Godot:
Můžete se také podívat na implementaci GDScriptu, moduly Godotu a také na integraci fyzikálního enginu Jolt pro Godot. To je dobrý začáteční bod pro pochopení, jak se knihovny třetích stran do Godotu 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/godotnebo/usr/bin/godot. To vyžaduje administrátorská práva, ale také vám umoží spustit editor Godot z terminálu zadánímgodot.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.desktoptak, 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.desktopdo/usr/local/share/applicationsaby 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í.
If true portable operation is desired (e.g. for use on a USB stick), follow the steps in Self-contained mode.
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.
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í.
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.
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.
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 Jakou verzi bych měl/a použít pro nový projekt? 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í.
Měl bych používat Forward+, Mobile, nebo Compatibility renderer?
Detailní porovnání rendererů najdete v Overview of renderers.
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í.
We explain how to work with the engine source, how to edit the documentation, and what other ways to contribute are there in our documentation for contributors.
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.
See Creating applications for more information.
Je možné použít Godot jako knihovnu?
If you are looking to make a game with Godot, keep in mind Godot is designed to be used with its editor. We recommend you give it a try, as it will most likely save you time in the long term.
For more specialized applications, it can make sense to look into using Godot as a library. Since Godot 4.6, there is experimental support for using Godot as a static or shared library in the form of LibGodot. This is currently supported on Windows, macOS, and Linux. Support for Android and iOS is planned for a future release.
You can find sample applications that use Godot as a library in the migeran/libgodot_project GitHub repository.
Jaký toolkit uživatelského rozhraní Godot používá?
Godot does not use a standard GUI toolkit like GTK, Qt or wxWidgets. Instead, Godot uses its own user interface toolkit, which is always rendered using hardware acceleration. There is no built-in software fallback, although external solutions that emulate graphics APIs on the CPU can be used.
This toolkit is exposed in the form of Control nodes, which are used to render the editor (which is written in C++). These Control nodes can also be used in projects from any scripting language supported by 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.
This custom UI toolkit can be embedded into other applications (experimental). However, the preferred way to use it is to use Godot to create non-game applications with the editor.
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.
Check out Godot's container types for alternatives.
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.
That said, nothing prevents you from making use of composition in your project by creating child Nodes with individual scripts. These nodes can then be added and removed at runtime to dynamically add and remove behaviors.
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?
See How to contribute.
Kdo pracuje na Godot? Jak vás mohu kontaktovat?
See the corresponding page on the Godot website.