Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 28 additions & 39 deletions about/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ The main reasons for creating a custom scripting language for Godot were:
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, matrix4, etc.), resulting in highly
4. No native vector types (Vector3, Transform3D, etc.), resulting in highly
reduced performance when using custom types (Lua, Python, Squirrel,
JavaScript, ActionScript, etc.).
5. Garbage collector results in stalls or unnecessarily large memory
Expand Down Expand Up @@ -186,6 +186,22 @@ free and open source integration, consider starting the integration work yoursel
Godot is not owned by one person; it belongs to the community, and it grows along
with ambitious community contributors like you.

How can I extend Godot?
-----------------------

For extending Godot, like creating Godot Editor plugins or adding support
for additional languages, take a look at :ref:`EditorPlugins <doc_making_plugins>`
and tool scripts.

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

* `Introducing GDNative's successor, GDExtension <https://godotengine.org/article/introducing-gd-extensions>`_

You can also take a look at the GDScript implementation, the Godot modules,
as well as the `unofficial Python support <https://github.com/touilleMan/godot-python>`_ 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)?
-------------------------------------------------------------------------

Expand Down Expand Up @@ -324,20 +340,21 @@ point and only for Apple devices, but then several Android and Apple devices
with different resolutions and aspect ratios were created, with a very wide
range of sizes and DPIs.

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 XFov or YFov.
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 2K and devices that go down to 400p, regular
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; 2D stretching while keeping aspect
ratios works best. Check the :ref:`doc_multiple_resolutions` tutorial
2. Use the stretch options in Godot; canvas items stretching while keeping
aspect ratios works best. Check the :ref:`doc_multiple_resolutions` tutorial
on how to achieve this.

3. Determine a minimum resolution and then decide if you want your game
Expand All @@ -351,27 +368,6 @@ This is mostly needed for 2D, as in 3D it's just a matter of Camera XFov or YFov

And that's it! Your game should work in multiple resolutions.

If there is a desire to make your game also work on ancient
devices with tiny screens (fewer than 300 pixels in width), you can use
the export option to shrink images, and set that build to be used for
certain screen sizes in the App Store or Google Play.

How can I extend Godot?
-----------------------

For extending Godot, like creating Godot Editor plugins or adding support
for additional languages, take a look at :ref:`EditorPlugins <doc_making_plugins>`
and tool scripts.

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

* `Introducing GDNative's successor, GDExtension <https://godotengine.org/article/introducing-gd-extensions>`_

You can also take a look at the GDScript implementation, the Godot modules,
as well as the `unofficial Python support <https://github.com/touilleMan/godot-python>`_ for Godot.
This would be a good starting point to see how another third-party library
integrates with Godot.

When is the next release of Godot out?
--------------------------------------

Expand Down Expand Up @@ -525,9 +521,9 @@ you are planning to build Godot yourself.
Why does Godot not use STL (Standard Template Library)?
-------------------------------------------------------

Like many other libraries (Qt as an example), Godot does not make use of
STL. We believe STL is a great general-purpose library, but we had special
requirements for Godot.
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.

* STL templates create very large symbols, which results in huge debug binaries. We use few
templates with very short names instead.
Expand All @@ -550,14 +546,7 @@ script), but then it will try to recover as gracefully as possible and keep
going.

Additionally, exceptions significantly increase the binary size for the
executable.

Why does Godot not enforce RTTI?
--------------------------------

Godot provides its own type-casting system, which can optionally use RTTI
internally. Disabling RTTI in Godot means considerably smaller binary sizes can
be achieved, at a little performance cost.
executable and result in increased compile times.

Does Godot use an ECS (Entity Component System)?
------------------------------------------------
Expand Down