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í? Co jsou licenční podmínky?

Godot is Free and open source Software available under the OSI-approved MIT license. This means it is free as in "free speech" as well as in "free beer."

Ve zkratce:

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

  • Máte možnost modifikovat, distribuovat, redistribuovat a remixovat Godot , tak jak uznáte za vhodné, a to z jakéhokoli důvodu, a to jak nekomerčně, tak komerčně.

All the contents of this accompanying documentation are published under the permissive Creative Commons Attribution 3.0 (CC BY 3.0) license, with attribution to "Juan Linietsky, Ariel Manzur and the Godot Engine community."

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.

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 podporuje Godot?

Pro editora:

  • Windows

  • macOS

  • Linux, *BSD

  • Android (experimentální)

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

Pro export vašich her:

  • Windows

  • macOS

  • Linux, *BSD

  • Android

  • Ios

  • Web

Both 32- and 64-bit binaries are supported where it makes sense, with 64 being the default. Official macOS builds support Apple Silicon natively as well as x86_64.

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

The Godot team can't provide an open source console export due to the licensing terms imposed by console manufacturers. Regardless of the engine you use, though, releasing games on consoles is always a lot of work. You can read more about Console support in Godot.

Pro více informací o tom, viz oddíly na export a Godot vlastní kompilace.

Poznámka

Godot 3 also had support for Universal Windows Platform (UWP). This platform port was removed in Godot 4 due to lack of maintenance, and it being deprecated by Microsoft. It is still available in the current stable release of Godot 3 for interested users.

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

The officially supported languages for Godot are GDScript, C#, and C++. See the subcategories for each language in the scripting section.

Pokud teprve začínáte s vývojem v Godotu nebo s vývojem her obecně, GDScript je jazyk právě pro vás a to protože je v Godotu nativné 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.

Note that C# support is still relatively new, and as such, you may encounter some issues along the way. C# support is also currently missing on the web platform. Our friendly and hard-working development community is always ready to tackle new problems as they arise, but since this is an open source project, we recommend that you first do some due diligence yourself. Searching through discussions on open issues is a great way to start your troubleshooting.

As for new languages, support is possible via third parties with GDExtensions. (See the question about plugins below). Work is currently underway, for example, on unofficial bindings for Godot to Python and Nim.

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

GDScript is Godot's integrated scripting language. It was built from the ground up to maximize Godot's potential in the least amount of code, affording both novice and expert developers alike to capitalize on Godot's strengths as fast as possible. If you've ever written anything in a language like Python before, then you'll feel right at home. For examples and a complete overview of the power GDScript offers you, check out the GDScript scripting guide.

There are several reasons to use GDScript, especially when you are prototyping, in alpha/beta stages of your project, or are not creating the next AAA title. The most salient reason is the overall reduction of complexity.

The original intent of creating a tightly integrated, custom scripting language for Godot was two-fold: first, it reduces the amount of time necessary to get up and running with Godot, giving developers a rapid way of exposing themselves to the engine with a focus on productivity; second, it reduces the overall burden of maintenance, attenuates the dimensionality of issues, and allows the developers of the engine to focus on squashing bugs and improving features related to the engine core, rather than spending a lot of time trying to get a small set of incremental features working across a large set of languages.

Since Godot is an open source project, it was imperative from the start to prioritize a more integrated and seamless experience over attracting additional users by supporting more familiar programming languages, especially when supporting those more familiar languages would result in a worse experience. We understand if you would rather use another language in Godot (see the list of supported options above). That being said, if you haven't given GDScript a try, try it for three days. Just like Godot, once you see how powerful it is and rapid your development becomes, we think GDScript will grow on you.

Více informací o pohodlném používání GDScriptu nebo dynamicky jazyků najdete v tutoriálu doc_gdscript_more_efffully.

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

In the early days, the engine used the Lua scripting language. Lua can be fast thanks to LuaJIT, but creating bindings to an object-oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with Python, that also proved difficult to embed.

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

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

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

  3. Many existing languages have horrible interfaces for binding to C++, resulting in a large amount of code, bugs, bottlenecks, and general inefficiency (Lua, Python, Squirrel, JavaScript, etc.). We wanted to focus on a great engine, not a great number of integrations.

  4. No native vector types (Vector3, Transform3D, etc.), resulting in highly reduced performance when using custom types (Lua, Python, Squirrel, JavaScript, ActionScript, etc.).

  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. Difficulty integrating with the code editor for providing code completion, live editing, etc. (all of them).

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

What 3D model formats does Godot support?

You can find detailed information on supported formats, how to export them from your 3D modeling software, and how to import them for Godot in the Import 3D scén documentation.

Bude [vložit uzavřemé SDK, jako je FMOD, GameWorks atd.] v Godotu podporováno?

The aim of Godot is to create a free and open source MIT-licensed engine that is modular and extendable. There are no plans for the core engine development community to support any third-party, closed-source/proprietary SDKs, as integrating with these would go against Godot's ethos.

That said, because Godot is open source and modular, nothing prevents you or anyone else interested in adding those libraries as a module and shipping your game with them, as either open- or closed-source.

Chcete-li zjistit, jak by mohlo být podpoporováno vámi vybrané SDK, podívejte se níže na otázku týkající se pluginů .

If you know of a third-party SDK that is not supported by Godot but that offers free and open source integration, consider starting the integration work yourself. Godot is not owned by one person; it belongs to the community, and it grows along with ambitious community contributors like you.

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 EditorPlugins a skripty nástrojů.

Also, see the official blog post on GDExtension, a way to develop native extensions for Godot:

You can also take a look at the GDScript implementation, the Godot modules, as well as the Jolt physics engine integration for Godot. This would be a good starting point to see how another third-party library integrates with Godot.

How do I install the Godot editor on my system (for desktop integration)?

Since you don't need to actually install Godot on your system to run it, this means desktop integration is not performed automatically. There are two ways to overcome this. You can install Godot from Steam (all platforms), Scoop (Windows), Homebrew (macOS) or Flathub (Linux). This will automatically perform the required steps for desktop integration.

Alternatively, you can manually perform the steps that an installer would do for you:

Windows

  • Move the Godot executable to a stable location (i.e. outside of your Downloads folder), so you don't accidentally move it and break the shortcut in the future.

  • Right-click the Godot executable and choose Create Shortcut.

  • Move the created shortcut to %APPDATA%\Microsoft\Windows\Start Menu\Programs. This is the user-wide location for shortcuts that will appear in the Start menu. You can also pin Godot in the task bar by right-clicking the executable and choosing Pin to Task Bar.

macOS

Drag the extracted Godot application to /Applications/Godot.app, then drag it to the Dock if desired. Spotlight will be able to find Godot as long as it's in /Applications or ~/Applications.

Linux

  • Move the Godot binary to a stable location (i.e. outside of your Downloads folder), so you don't accidentally move it and break the shortcut in the future.

  • Rename and move the Godot binary to a location present in your PATH environment variable. This is typically /usr/local/bin/godot or /usr/bin/godot. Doing this requires administrator privileges, but this also allows you to run the Godot editor from a terminal by entering godot.

    • If you cannot move the Godot editor binary to a protected location, you can keep the binary somewhere in your home directory, and modify the Path= line in the .desktop file linked below to contain the full absolute path to the Godot binary.

  • Save this .desktop file to $HOME/.local/share/applications/. If you have administrator privileges, you can also save the .desktop file to /usr/local/share/applications to make the shortcut available for all users.

Je editor Godot přenosná aplikace?

In its default configuration, Godot is semi-portable. Its executable can run from any location (including non-writable locations) and never requires administrator privileges.

However, configuration files will be written to the user-wide configuration or data directory. This is usually a good approach, but this means configuration files will not carry across machines if you copy the folder containing the Godot executable. See Cesty k souborům v projektech Godot for more information.

If true portable operation is desired (e.g. for use on an USB stick), follow the steps in Self-contained mode.

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

Godot aims for cross-platform compatibility and open standards first and foremost. OpenGL and Vulkan are the technologies that are both open and available on (nearly) all platforms. Thanks to this design decision, a project developed with Godot on Windows will run out of the box on Linux, macOS, and more.

Vzhledem k tomu, že Godot pracuje na svém rendereru pouze s několika lidmi, upřednostňovali bychom, aby se udržovalo méně backendů vykreslování. Kromě toho umožňuje použití jediného rozhraní API na všech platformách větší konzistenci s menším počtem problémů specifických pro jednotlivé platformy.

In the long term, we may develop a Direct3D 12 renderer for Godot (mainly for Xbox), but Vulkan and OpenGL will remain the default rendering backends on all platforms, including Windows.

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

Godot intentionally does not include features that can be implemented by add-ons unless they are used very often. One example of something not used often is advanced artificial intelligence functionality.

Existuje několik důvodů:

  • Code maintenance and surface for bugs. Every time we accept new code in the Godot repository, existing contributors often take the responsibility of maintaining it. Some contributors don't always stick around after getting their code merged, which can make it difficult for us to maintain the code in question. This can lead to poorly maintained features with bugs that are never fixed. On top of that, the "API surface" that needs to be tested and checked for regressions keeps increasing over time.

  • Snadné přispívání. Díky tomu, že je kódová základna malá a přehledná,ji lzei i nadále rychle a snadno kompilovat 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í toho, 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.

  • Keeping the binary size small for export templates. This directly impacts the size of projects exported with Godot. On mobile and web platforms, keeping file sizes low is important to ensure fast installation and loading on underpowered devices. Again, there are many countries where high-speed Internet is not readily available. To add to this, strict data usage caps are often in effect in those countries.

For all the reasons above, we have to be selective of what we can accept as core functionality in Godot. This is why we are aiming to move some core functionality to officially supported add-ons in future versions of Godot. In terms of binary size, this also has the advantage of making you pay only for what you actually use in your project. (In the meantime, you can compile custom export templates with unused features disabled to optimize the distribution size of your project.)

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í, které vytvořilo Apple, když původně zdvojnásobilo rozlišení svých zařízení. To přimělo lidi, aby si mysleli, že mít stejné zdroje v různých rozlišeních, je dobrý nápad, a tak mnozí pokračovali dál touto cestou. 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.

The most common and proper way to achieve this is to, instead, use a single base resolution for the game and only handle different screen aspect ratios. This is mostly needed for 2D, as in 3D, it's just a matter of camera vertical or horizontal FOV.

  1. Choose a single base resolution for your game. Even if there are devices that go up to 1440p and devices that go down to 400p, regular hardware scaling in your device will take care of this at little or no performance cost. The most common choices are either near 1080p (1920x1080) or 720p (1280x720). Keep in mind the higher the resolution, the larger your assets, the more memory they will take and the longer the time it will take for loading.

  2. Use the stretch options in Godot; canvas items stretching while keeping aspect ratios works best. Check the Multiple resolutions tutorial on how to achieve this.

  3. Určete minimální rozlišení a poté se rozhodněte, zda chcete, aby se vaše hra natahovala svisle nebo vodorovně pro různé poměry stran, nebo zda existuje jeden 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 kotvení, abyste určili, 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ší, zvažte poučení o kontejnerech.

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

Kdy vyjde další verze Godota?

Až bude připraven! Viz Kdy vyjde další verze? pro více informací.

Which Godot version should I use for a new project?

We recommend using Godot 4.x for new projects, but depending on the feature set you need, it may be better to use 3.x instead. See Which version should I use for a new project? for more information.

Should I upgrade my project to use new Godot versions?

Some new versions are safer to upgrade to than others. In general, whether you should upgrade depends on your project's circumstances. See Should I upgrade my project to use new engine versions? for more information.

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

Awesome! As an open source project, Godot thrives off of the innovation and the ambition of developers like you.

The best way to start contributing to Godot is by using it and reporting any issues that you might experience. A good bug report with clear reproduction steps helps your fellow contributors fix bugs quickly and efficiently. You can also report issues you find in the online documentation.

If you feel ready to submit your first PR, pick any issue that resonates with you from one of the links above and try your hand at fixing it. You will need to learn how to compile the engine from sources, or how to build the documentation. You also need to get familiar with Git, a version control system that Godot developers use.

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.

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

We are always looking for suggestions about how to improve the engine. User feedback is the main driving force behind our decision-making process, and limitations that you might face while working on your project are a great data point for us when considering engine enhancements.

If you experience a usability problem or are missing a feature in the current version of Godot, start by discussing it with our community. There may be other, perhaps better, ways to achieve the desired result that community members could suggest. And you can learn if other users experience the same issue, and figure out a good solution together.

If you come up with a well-defined idea for the engine, feel free to open a proposal issue. Try to be specific and concrete while describing your problem and your proposed solution — only actionable proposals can be considered. It is not required, but if you want to implement it yourself, that's always appreciated!

If you only have a general idea without specific details, you can open a proposal discussion. These can be anything you want, and allow for a free-form discussion in search of a solution. Once you find one, a proposal issue can be opened.

Please, read the readme document before creating a proposal to learn more about the process.

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 v nastavení projektu povolit low-processor mode, 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í Godotu.

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

Godot je určen k použití s jeho editorem. Doporučujeme vám to vyzkoušet, protože to s největší pravděpodobností ušetří čas v dlouhodobém horizontu. Neexistují žádné plány na to, aby byl Godot použitelný jako knihovna, protože by to zvyšovalo spletitost a obtížnost použití zbytku enginupro 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ší komunity ve srovnání s Godotem. To 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 z libovolného skriptovacího jazyka podporovaného systémem Godot.

Tato vlastní sada nástrojů umožňuje využívat hardwarovou 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živatelů systému 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.

Why does Godot use the SCons build system?

Godot uses the SCons build system. There are no plans to switch to a different build system in the near future. There are many reasons why we have chosen SCons over other alternatives. For example:

  • Godot can be compiled for a dozen different platforms: all PC platforms, all mobile platforms, many consoles, and WebAssembly.

  • Developers often need to compile for several of the platforms at the same time, or even different targets of the same platform. They can't afford reconfiguring and rebuilding the project each time. SCons can do this with no sweat, without breaking the builds.

  • SCons will never break a build no matter how many changes, configurations, additions, removals etc.

  • Godot's build process is not simple. Several files are generated by code (binders), others are parsed (shaders), and others need to offer customization (modules). This requires complex logic which is easier to write in an actual programming language (like Python) rather than using a mostly macro-based language only meant for building.

  • Godot 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.

Please try to keep an open mind and get at least a little familiar with SCons if you are planning to build Godot yourself.

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

Like many other libraries (Qt as an example), Godot does not make use of STL (with a few exceptions such as threading primitives). We believe STL is a great general-purpose library, but we had special requirements for Godot.

  • Šablony STL vytvářejí velmi rozsáhlé symboly, jejichž výsledkem jsou 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ý využívá kopii při zápisu a které používáme k předávání dat, nebo systému RID, který vyžaduje pro výkon (O1) 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 nepoužívá výjimky?

Věříme, že hry by se neměly zhroutit 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 krasojízdě.

Additionally, exceptions significantly increase the binary size for the executable and result in increased compile times.

Does Godot use an ECS (Entity Component System)?

Godot does not use an ECS and relies on inheritance instead. While there is no universally better approach, we found that using an inheritance-based approach resulted in better usability while still being fast enough for most use cases.

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 run-time to dynamically add and remove behaviors.

More information about Godot's design choices can be found in this article.

Why does Godot not force users to implement DOD (Data-Oriented Design)?

While Godot internally attempts to use cache coherency as much as possible, we believe users don't need to be forced to use DOD practices.

DOD is mostly a cache coherency optimization that can only provide significant performance improvements when dealing with dozens of thousands of objects which are processed every frame with little modification. That is, if you are moving a few hundred sprites or enemies per frame, DOD won't result in a meaningful improvement in performance. In such a case, you should consider a different approach to optimization.

Drtivá většina her totp nepotřebuje a Godot poskytuje šikovné pomocníky, kteří si se ctí poradí ve většině případů, které budete potřebovat.

If a game needs to process such a large amount of objects, our recommendation is to use C++ and GDExtensions for performance-heavy tasks and GDScript (or C#) for the rest of the game.

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

Viz Ways to contribute.

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

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