Browse Source

Update List of features for Godot 4.0.rc1

Hugo Locurcio 2 years ago
parent
commit
8dc01d24dc

+ 121 - 83
about/list_of_features.rst

@@ -3,12 +3,12 @@
 List of features
 List of features
 ================
 ================
 
 
-This page aims to list all features currently supported by Godot.
+This page aims to list **all** features currently supported by Godot.
 
 
 .. note::
 .. note::
 
 
     This page lists features supported by the current development version of
     This page lists features supported by the current development version of
-    Godot (4.0.alpha). Some of these features may not be available in the
+    Godot (4.0.rc). Some of these features may not be available in the
     `current stable release series (3.x) <https://docs.godotengine.org/en/stable/about/list_of_features.html>`__.
     `current stable release series (3.x) <https://docs.godotengine.org/en/stable/about/list_of_features.html>`__.
 
 
 Features
 Features
@@ -28,10 +28,13 @@ Platforms
    - Official binaries are compiled on Ubuntu 14.04.
    - Official binaries are compiled on Ubuntu 14.04.
    - 32-bit binaries can be compiled from source.
    - 32-bit binaries can be compiled from source.
 
 
+- Android 6.0 and later (editor support is experimental).
+- :ref:`Web browsers <doc_using_the_web_editor>`. Experimental in 4.0,
+  using Godot 3.x is recommended instead when targeting HTML5.
+
 **Runs exported projects:**
 **Runs exported projects:**
 
 
-- Android 4.4 and later.
-- iOS 10.0 and later.
+- iOS 11.0 and later.
 - :ref:`Consoles <doc_consoles>`.
 - :ref:`Consoles <doc_consoles>`.
 
 
 Godot aims to be as platform-independent as possible and can be ported to new
 Godot aims to be as platform-independent as possible and can be ported to new
@@ -78,32 +81,47 @@ Editor
 - :ref:`Download projects from the asset library <doc_using_assetlib_editor>`
 - :ref:`Download projects from the asset library <doc_using_assetlib_editor>`
   in the project manager and import them directly.
   in the project manager and import them directly.
 
 
+Rendering
+^^^^^^^^^
+
+3 rendering *methods* (running over 2 rendering *drivers*) are available:
+
+- **Forward+**, running over Vulkan 1.0 (with optional Vulkan 1.1 and 1.2
+  features). The most advanced graphics backend, suited for desktop platforms
+  only. Used by default on desktop platforms.
+- **Forward Mobile**, running over Vulkan 1.0 (with optional Vulkan 1.1 and 1.2
+  features). Less features, but renders simple scenes faster. Suited for mobile
+  and desktop platforms. Used by default on mobile platforms.
+- **Compatibility**, running over OpenGL 3.3 / OpenGL ES 3.0 / WebGL 2.0. The least
+  advanced graphics backend, suited for low-end desktop and mobile platforms.
+  Used by default on the web platform.
+
 2D graphics
 2D graphics
 ^^^^^^^^^^^
 ^^^^^^^^^^^
 
 
-Vulkan renderer.
-
 - Sprite, polygon and line rendering.
 - Sprite, polygon and line rendering.
 
 
-   - High-level tools to draw lines and polygons such as Polygon2D and Line2D.
+   - High-level tools to draw lines and polygons such as
+     :ref:`class_Polygon2D` and :ref:`class_Line2D`, with support for texturing.
 
 
 - AnimatedSprite2D as a helper for creating animated sprites.
 - AnimatedSprite2D as a helper for creating animated sprites.
 - Parallax layers.
 - Parallax layers.
 
 
    - Pseudo-3D support including preview in the editor.
    - Pseudo-3D support including preview in the editor.
 
 
-- 2D lighting with normal maps and specular maps.
+- :ref:`2D lighting <doc_2d_lights_and_shadows>` with normal maps and specular maps.
 
 
    - Point (omni/spot) and directional 2D lights.
    - Point (omni/spot) and directional 2D lights.
    - Hard or soft shadows (adjustable on a per-light basis).
    - Hard or soft shadows (adjustable on a per-light basis).
    - Custom shaders can access a real-time :abbr:`SDF (Signed Distance Field)`
    - Custom shaders can access a real-time :abbr:`SDF (Signed Distance Field)`
-     representation of the 2D scene, which can be used for improved 2D lighting
-     effects including 2D global illumination.
+     representation of the 2D scene based on :ref:`class_LightOccluder2D` nodes,
+     which can be used for improved 2D lighting effects including 2D global illumination.
 
 
-- Font rendering using bitmaps, rasterization using FreeType or
-  multi-channel signed distance fields (MSDF).
+- :ref:`Font rendering <doc_gui_using_fonts>` using bitmaps, rasterization using FreeType
+  or multi-channel signed distance fields (MSDF).
 
 
-   - Bitmap fonts can be exported using tools like BMFont.
+   - Bitmap fonts can be exported using tools like BMFont, or imported from images
+     (for fixed-width fonts only).
    - Dynamic fonts support monochrome fonts as well as colored fonts (e.g. for emoji).
    - Dynamic fonts support monochrome fonts as well as colored fonts (e.g. for emoji).
      Supported formats are TTF, OTF, WOFF1 and WOFF2.
      Supported formats are TTF, OTF, WOFF1 and WOFF2.
    - Dynamic fonts support optional font outlines with adjustable width and color.
    - Dynamic fonts support optional font outlines with adjustable width and color.
@@ -112,24 +130,26 @@ Vulkan renderer.
      those styles.
      those styles.
    - Dynamic fonts support oversampling to keep fonts sharp at higher resolutions.
    - Dynamic fonts support oversampling to keep fonts sharp at higher resolutions.
    - Dynamic fonts support subpixel positioning to make fonts crisper at low sizes.
    - Dynamic fonts support subpixel positioning to make fonts crisper at low sizes.
+   - Dynamic fonts support LCD subpixel optimizations to make fonts even crisper at low sizes.
    - Signed distance field fonts can be scaled at any resolution without
    - Signed distance field fonts can be scaled at any resolution without
      requiring re-rasterization. Multi-channel usage makes SDF fonts scale down
      requiring re-rasterization. Multi-channel usage makes SDF fonts scale down
      to lower sizes better compared to monochrome SDF fonts.
      to lower sizes better compared to monochrome SDF fonts.
 
 
-- GPU-based particles with support for custom particle shaders.
+- GPU-based :ref:`particles <doc_particle_systems_2d>` with support for
+  :ref:`custom particle shaders <doc_particle_shader>`.
 - CPU-based particles.
 - CPU-based particles.
 
 
 2D tools
 2D tools
 ^^^^^^^^
 ^^^^^^^^
 
 
+- :ref:`TileMaps <doc_using_tilemaps>` for 2D tile-based level design.
 - 2D camera with built-in smoothing and drag margins.
 - 2D camera with built-in smoothing and drag margins.
 - Path2D node to represent a path in 2D space.
 - Path2D node to represent a path in 2D space.
 
 
    - Can be drawn in the editor or generated procedurally.
    - Can be drawn in the editor or generated procedurally.
    - PathFollow2D node to make nodes follow a Path2D.
    - PathFollow2D node to make nodes follow a Path2D.
 
 
-- 2D geometry helper class.
-- Line2D node to draw textured 2D lines.
+- :ref:`2D geometry helper class <class_Geometry2D>`.
 
 
 2D physics
 2D physics
 ^^^^^^^^^^
 ^^^^^^^^^^
@@ -137,35 +157,30 @@ Vulkan renderer.
 **Physics bodies:**
 **Physics bodies:**
 
 
 - Static bodies.
 - Static bodies.
+- Animatable bodies (for objects moving only by script or animation, such as doors and platforms).
 - Rigid bodies.
 - Rigid bodies.
-- Kinematic bodies.
+- Character bodies.
 - Joints.
 - Joints.
 - Areas to detect bodies entering or leaving it.
 - Areas to detect bodies entering or leaving it.
 
 
 **Collision detection:**
 **Collision detection:**
 
 
-- Built-in shapes: line, box, circle, capsule.
+- Built-in shapes: line, box, circle, capsule, world boundary (infinite plane).
 - Collision polygons (can be drawn manually or generated from a sprite in the editor).
 - Collision polygons (can be drawn manually or generated from a sprite in the editor).
 
 
 3D graphics
 3D graphics
 ^^^^^^^^^^^
 ^^^^^^^^^^^
 
 
-Vulkan renderer compatible with desktop and mobile platforms. Requires full support for
-Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
-
 - HDR rendering with sRGB.
 - HDR rendering with sRGB.
 - Perspective, orthographic and frustum-offset cameras.
 - Perspective, orthographic and frustum-offset cameras.
-- When using the Vulkan Clustered backend (default on desktop), a depth prepass
-  is used to improve performance in complex scenes by reducing the cost of overdraw.
-
-- `OpenGL support planned for a future Godot 4.x release <https://godotengine.org/article/about-godot4-vulkan-gles3-and-gles2>`__.
-
-  - If you need OpenGL support, use Godot 3.x which remains supported.
+- When using the Forward+ backend, a depth prepass is used to improve
+  performance in complex scenes by reducing the cost of overdraw.
+- :ref:`doc_variable_rate_shading` on supported GPUs in Forward+ and Forward Mobile.
 
 
 **Physically-based rendering (built-in material features):**
 **Physically-based rendering (built-in material features):**
 
 
 - Follows the Disney PBR model.
 - Follows the Disney PBR model.
-- Supports Lambert, Lambert Wrap (half-Lambert) and Toon diffuse shading modes.
+- Supports Burley, Lambert, Lambert Wrap (half-Lambert) and Toon diffuse shading modes.
 - Supports Schlick-GGX, Toon and Disabled specular shading modes.
 - Supports Schlick-GGX, Toon and Disabled specular shading modes.
 - Uses a roughness-metallic workflow with support for ORM textures.
 - Uses a roughness-metallic workflow with support for ORM textures.
 - Uses horizon specular occlusion (Filament model) to improve material appearance.
 - Uses horizon specular occlusion (Filament model) to improve material appearance.
@@ -187,10 +202,10 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 - Specular energy can be adjusted on a per-light basis.
 - Specular energy can be adjusted on a per-light basis.
 - Adjustable light "size" for fake area lights (will also make shadows blurrier).
 - Adjustable light "size" for fake area lights (will also make shadows blurrier).
 - Optional distance fade system to fade distant lights and their shadows, improving performance.
 - Optional distance fade system to fade distant lights and their shadows, improving performance.
-- When using the Vulkan Clustered backend (default on desktop), lights are
+- When using the Forward+ backend (default on desktop), lights are
   rendered with clustered forward optimizations to decrease their individual cost.
   rendered with clustered forward optimizations to decrease their individual cost.
   Clustered rendering also lifts any limits on the number of lights that can be used on a mesh.
   Clustered rendering also lifts any limits on the number of lights that can be used on a mesh.
-- When using the Vulkan Mobile backend, up to 8 omni lights and 8 spot lights can
+- When using the Forward Mobile backend, up to 8 omni lights and 8 spot lights can
   be displayed per mesh resource. Baked lighting can be used to overcome this limit
   be displayed per mesh resource. Baked lighting can be used to overcome this limit
   if needed.
   if needed.
 
 
@@ -230,7 +245,7 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 - Screen-space indirect lighting (SSIL) at half or full resolution.
 - Screen-space indirect lighting (SSIL) at half or full resolution.
   Fully real-time and supports any kind of emissive light source (including decals).
   Fully real-time and supports any kind of emissive light source (including decals).
 - VoxelGI and SDFGI use a deferred pass to allow for rendering GI at half
 - VoxelGI and SDFGI use a deferred pass to allow for rendering GI at half
-  resolution to improve performance (while still having working MSAA support).
+  resolution to improve performance (while still having functional MSAA support).
 
 
 **Reflections:**
 **Reflections:**
 
 
@@ -240,10 +255,10 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
   Parallax box correction can optionally be enabled.
   Parallax box correction can optionally be enabled.
 - Screen-space reflections with support for material roughness.
 - Screen-space reflections with support for material roughness.
 - Reflection techniques can be mixed together for greater accuracy or scalability.
 - Reflection techniques can be mixed together for greater accuracy or scalability.
-- When using the Vulkan Clustered backend (default on desktop), reflection probes are
+- When using the Forward+ backend (default on desktop), reflection probes are
   rendered with clustered forward optimizations to decrease their individual cost.
   rendered with clustered forward optimizations to decrease their individual cost.
   Clustered rendering also lifts any limits on the number of reflection probes that can be used on a mesh.
   Clustered rendering also lifts any limits on the number of reflection probes that can be used on a mesh.
-- When using the Vulkan Mobile backend, up to 8 reflection probes can be displayed per mesh
+- When using the Forward Mobile backend, up to 8 reflection probes can be displayed per mesh
   resource.
   resource.
 
 
 **Decals:**
 **Decals:**
@@ -256,17 +271,17 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
   complex skinned meshes with no performance penalty, even if the decal moves every frame.
   complex skinned meshes with no performance penalty, even if the decal moves every frame.
 - Support for nearest, bilinear, trilinear or anisotropic texture filtering (configured globally).
 - Support for nearest, bilinear, trilinear or anisotropic texture filtering (configured globally).
 - Optional distance fade system to fade distant lights and their shadows, improving performance.
 - Optional distance fade system to fade distant lights and their shadows, improving performance.
-- When using the Vulkan Clustered backend (default on desktop), decals are
+- When using the Forward+ backend (default on desktop), decals are
   rendered with clustered forward optimizations to decrease their individual cost.
   rendered with clustered forward optimizations to decrease their individual cost.
   Clustered rendering also lifts any limits on the number of decals that can be used on a mesh.
   Clustered rendering also lifts any limits on the number of decals that can be used on a mesh.
-- When using the Vulkan Mobile backend, up to 8 decals can be displayed per mesh
+- When using the Forward Mobile backend, up to 8 decals can be displayed per mesh
   resource.
   resource.
 
 
 **Sky:**
 **Sky:**
 
 
 - Panorama sky (using an HDRI).
 - Panorama sky (using an HDRI).
 - Procedural sky and Physically-based sky that respond to the DirectionalLights in the scene.
 - Procedural sky and Physically-based sky that respond to the DirectionalLights in the scene.
-- Support for custom sky shaders, which can be animated.
+- Support for :ref:`custom sky shaders <doc_sky_shader>`, which can be animated.
 - The radiance map used for ambient and specular light can be updated in
 - The radiance map used for ambient and specular light can be updated in
   real-time depending on the quality settings chosen.
   real-time depending on the quality settings chosen.
 
 
@@ -279,7 +294,7 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 
 
 **Volumetric fog:**
 **Volumetric fog:**
 
 
-- Global volumetric fog that reacts to lights and shadows.
+- Global :ref:`volumetric fog <doc_volumetric_fog>` that reacts to lights and shadows.
 - Volumetric fog can take indirect light into account when using VoxelGI or SDFGI.
 - Volumetric fog can take indirect light into account when using VoxelGI or SDFGI.
 - Fog volume nodes that can be placed to add fog to specific areas (or remove fog from specific areas).
 - Fog volume nodes that can be placed to add fog to specific areas (or remove fog from specific areas).
 - Each fog volume can have its own custom shader.
 - Each fog volume can have its own custom shader.
@@ -288,11 +303,13 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 **Particles:**
 **Particles:**
 
 
 - GPU-based particles with support for subemitters (2D + 3D), trails (2D + 3D),
 - GPU-based particles with support for subemitters (2D + 3D), trails (2D + 3D),
-  attractors (3D only) and collision (3D only).
+  attractors (3D only) and collision (2D + 3D).
 
 
-  - Particle attractor shapes supported: box, sphere and 3D vector fields.
-  - Particle collision shapes supported: box, sphere, baked signed distance field
+  - 3D particle attractor shapes supported: box, sphere and 3D vector fields.
+  - 3D particle collision shapes supported: box, sphere, baked signed distance field
     and real-time heightmap (suited for open world weather effects).
     and real-time heightmap (suited for open world weather effects).
+  - 2D particle collision is handled using a signed distance field generated in real-time
+    based on :ref:`class_LightOccluder2D` nodes in the scene.
   - Trails can use the built-in ribbon trail and tube trail meshes, or custom
   - Trails can use the built-in ribbon trail and tube trail meshes, or custom
     meshes with skeletons.
     meshes with skeletons.
   - Support for custom particle shaders with manual emission.
   - Support for custom particle shaders with manual emission.
@@ -326,7 +343,7 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 
 
 **Anti-aliasing:**
 **Anti-aliasing:**
 
 
-- Temporal antialiasing (TAA).
+- Temporal :ref:`antialiasing <doc_3d_antialiasing>` (TAA).
 - Multi-sample antialiasing (MSAA), for both :ref:`doc_2d_antialiasing` and :ref:`doc_3d_antialiasing`.
 - Multi-sample antialiasing (MSAA), for both :ref:`doc_2d_antialiasing` and :ref:`doc_3d_antialiasing`.
 - Fast approximate antialiasing (FXAA).
 - Fast approximate antialiasing (FXAA).
 - Super-sample antialiasing (SSAA) using bilinear 3D scaling and a 3D resolution scale above 1.0.
 - Super-sample antialiasing (SSAA) using bilinear 3D scaling and a 3D resolution scale above 1.0.
@@ -334,29 +351,31 @@ Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
 
 
 **Resolution scaling:**
 **Resolution scaling:**
 
 
-- Support for rendering 3D at a lower resolution while keeping 2D rendering at
-  the original scale. This can be used to improve performance on low-end systems
-  or improve visuals on high-end systems.
+- Support for :ref:`rendering 3D at a lower resolution <doc_resolution_scaling>`
+  while keeping 2D rendering at the original scale. This can be used to improve
+  performance on low-end systems or improve visuals on high-end systems.
 - Resolution scaling uses bilinear filtering or AMD FidelityFX Super Resolution
 - Resolution scaling uses bilinear filtering or AMD FidelityFX Super Resolution
   1.0 (FSR).
   1.0 (FSR).
 - Texture mipmap LOD bias is adjusted automatically to improve quality at lower
 - Texture mipmap LOD bias is adjusted automatically to improve quality at lower
   resolution scales. It can also be modified with a manual offset.
   resolution scales. It can also be modified with a manual offset.
 
 
 Most effects listed above can be adjusted for better performance or to further
 Most effects listed above can be adjusted for better performance or to further
-improve quality. This can be helpful when using Godot for offline rendering.
+improve quality. This can be helpful when
+:ref:`using Godot for offline rendering <doc_creating_movies>`.
 
 
 3D tools
 3D tools
 ^^^^^^^^
 ^^^^^^^^
 
 
-- Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad, ribbon, tube.
-- Tools for :ref:`procedural geometry generation <doc_procedural_geometry>`.
+- Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad, torus, ribbon, tube.
+- :ref:`GridMaps <doc_using_gridmaps>` for 3D tile-based level design.
 - :ref:`Constructive solid geometry <doc_csg_tools>` (intended for prototyping).
 - :ref:`Constructive solid geometry <doc_csg_tools>` (intended for prototyping).
+- Tools for :ref:`procedural geometry generation <doc_procedural_geometry>`.
 - Path3D node to represent a path in 3D space.
 - Path3D node to represent a path in 3D space.
 
 
    - Can be drawn in the editor or generated procedurally.
    - Can be drawn in the editor or generated procedurally.
    - PathFollow3D node to make nodes follow a Path3D.
    - PathFollow3D node to make nodes follow a Path3D.
 
 
-- 3D geometry helper class.
+- :ref:`3D geometry helper class <class_Geometry3D>`.
 - Support for exporting the current scene as a glTF 2.0 file, both from the editor
 - Support for exporting the current scene as a glTF 2.0 file, both from the editor
   and at run-time from an exported project.
   and at run-time from an exported project.
 
 
@@ -366,8 +385,9 @@ improve quality. This can be helpful when using Godot for offline rendering.
 **Physics bodies:**
 **Physics bodies:**
 
 
 - Static bodies.
 - Static bodies.
+- Animatable bodies (for objects moving only by script or animation, such as doors and platforms).
 - Rigid bodies.
 - Rigid bodies.
-- Kinematic bodies.
+- Character bodies.
 - Vehicle bodies (intended for arcade physics, not simulation).
 - Vehicle bodies (intended for arcade physics, not simulation).
 - Joints.
 - Joints.
 - Soft bodies.
 - Soft bodies.
@@ -376,7 +396,7 @@ improve quality. This can be helpful when using Godot for offline rendering.
 
 
 **Collision detection:**
 **Collision detection:**
 
 
-- Built-in shapes: cuboid, sphere, capsule, cylinder.
+- Built-in shapes: cuboid, sphere, capsule, cylinder, world boundary (infinite plane).
 - Generate triangle collision shapes for any mesh from the editor.
 - Generate triangle collision shapes for any mesh from the editor.
 - Generate one or several convex collision shapes for any mesh from the editor.
 - Generate one or several convex collision shapes for any mesh from the editor.
 
 
@@ -398,7 +418,7 @@ Scripting
 - Object-oriented design pattern with scripts extending nodes.
 - Object-oriented design pattern with scripts extending nodes.
 - Signals and groups for communicating between scripts.
 - Signals and groups for communicating between scripts.
 - Support for :ref:`cross-language scripting <doc_cross_language_scripting>`.
 - Support for :ref:`cross-language scripting <doc_cross_language_scripting>`.
-- Many 2D and 3D linear algebra data types such as vectors and transforms.
+- Many 2D, 3D and 4D linear algebra data types such as vectors and transforms.
 
 
 :ref:`GDScript: <toc-learn-scripting-gdscript>`
 :ref:`GDScript: <toc-learn-scripting-gdscript>`
 
 
@@ -426,11 +446,14 @@ Scripting
    - For scripting game logic, GDScript or C# are recommended if their
    - For scripting game logic, GDScript or C# are recommended if their
      performance is suitable.
      performance is suitable.
 
 
-- Official bindings for C and C++.
+- Official GDExtension bindings for `C <https://github.com/godotengine/godot-headers>`__
+  and `C++ <https://github.com/godotengine/godot-cpp>`__.
 
 
    - Use any build system and language features you wish.
    - Use any build system and language features you wish.
 
 
-- Maintained D, Kotlin, Python, Nim, and Rust bindings provided by the community.
+- Actively developed GDExtension bindings for `D <https://github.com/godot-dlang/godot-dlang>`__,
+  `Haxe <https://hxgodot.github.io/>`__, `Python <https://github.com/touilleMan/godot-python>`__, and `Rust <https://github.com/godot-rust/gdextension>`__
+  bindings provided by the community. (Some of these bindings may be experimental and not production-ready.)
 
 
 Audio
 Audio
 ^^^^^
 ^^^^^
@@ -445,10 +468,12 @@ Audio
 - Support for re-routable :ref:`audio buses <doc_audio_buses>` and effects
 - Support for re-routable :ref:`audio buses <doc_audio_buses>` and effects
   with dozens of effects included.
   with dozens of effects included.
 - Support for polyphony (playing several sounds from a single AudioStreamPlayer node).
 - Support for polyphony (playing several sounds from a single AudioStreamPlayer node).
-- Support for real-time pitch scaling and random pitch.
+- Support for random volume and pitch.
+- Support for real-time pitch scaling.
 - Support for sequential/random sample selection, including repetition prevention
 - Support for sequential/random sample selection, including repetition prevention
   when using random sample selection.
   when using random sample selection.
 - Listener2D and Listener3D nodes to listen from a position different than the camera.
 - Listener2D and Listener3D nodes to listen from a position different than the camera.
+- Support for :ref:`procedural audio generation <class_AudioStreamGenerator>`.
 - Audio input to record microphones.
 - Audio input to record microphones.
 - MIDI input.
 - MIDI input.
 
 
@@ -478,7 +503,7 @@ Import
 
 
    - glTF 2.0 *(recommended)*.
    - glTF 2.0 *(recommended)*.
    - ``.blend`` (by calling Blender's glTF export functionality transparently).
    - ``.blend`` (by calling Blender's glTF export functionality transparently).
-   - FBX (by calling fbx2gltf transparently).
+   - FBX (by calling `FBX2glTF <https://github.com/godotengine/FBX2glTF>`__ transparently).
    - Collada (.dae).
    - Collada (.dae).
    - Wavefront OBJ (static scenes only, can be loaded directly as a mesh or imported as a 3D scene).
    - Wavefront OBJ (static scenes only, can be loaded directly as a mesh or imported as a 3D scene).
 
 
@@ -489,7 +514,8 @@ Import
 Input
 Input
 ^^^^^
 ^^^^^
 
 
-- Input mapping system using hardcoded input events or remappable input actions.
+- :ref:`Input mapping system <doc_input_examples>` using hardcoded input events
+  or remappable input actions.
 
 
    - Axis values can be mapped to two different actions with a configurable deadzone.
    - Axis values can be mapped to two different actions with a configurable deadzone.
    - Use the same code to support both keyboards and gamepads.
    - Use the same code to support both keyboards and gamepads.
@@ -510,29 +536,30 @@ Input
 Navigation
 Navigation
 ^^^^^^^^^^
 ^^^^^^^^^^
 
 
-- A* algorithm in 2D and 3D.
-- Navigation meshes with dynamic obstacle avoidance.
+- A* algorithm in :ref:`2D <class_AStar2D>` and :ref:`3D <class_AStar3D>`.
+- Navigation meshes with dynamic obstacle avoidance in
+  :ref:`2D <doc_navigation_overview_2d>` and :ref:`3D <doc_navigation_overview_3d>`.
 - Generate navigation meshes from the editor or at run-time (including from an exported project).
 - Generate navigation meshes from the editor or at run-time (including from an exported project).
 
 
 Networking
 Networking
 ^^^^^^^^^^
 ^^^^^^^^^^
 
 
-- Low-level TCP networking using StreamPeer and TCP_Server.
-- Low-level UDP networking using PacketPeer and UDPServer.
-- Low-level HTTP requests using HTTPClient.
-- High-level HTTP requests using HTTPRequest.
+- Low-level TCP networking using :ref:`class_StreamPeer` and :ref:`class_TCPServer`.
+- Low-level UDP networking using :ref:`class_PacketPeer` and :ref:`class_UDPServer`.
+- Low-level HTTP requests using :ref:`class_HTTPClient`.
+- High-level HTTP requests using :ref:`class_HTTPRequest`.
 
 
    - Supports HTTPS out of the box using bundled certificates.
    - Supports HTTPS out of the box using bundled certificates.
 
 
-- High-level multiplayer API using UDP and ENet.
+- :ref:`High-level multiplayer <doc_high_level_multiplayer>` API using UDP and ENet.
 
 
    - Automatic replication using remote procedure calls (RPCs).
    - Automatic replication using remote procedure calls (RPCs).
    - Supports unreliable, reliable and ordered transfers.
    - Supports unreliable, reliable and ordered transfers.
 
 
-- WebSocket client and server, available on all platforms.
-- WebRTC client and server, available on all platforms.
-- Support for UPnP to sidestep the requirement to forward ports when hosting
-  a server behind a NAT.
+- :ref:`WebSocket <doc_websocket>` client and server, available on all platforms.
+- :ref:`WebRTC <doc_webrtc>` client and server, available on all platforms.
+- Support for :ref:`UPnP <class_UPNP>` to sidestep the requirement to forward ports
+  when hosting a server behind a NAT.
 
 
 Internationalization
 Internationalization
 ^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^
@@ -546,28 +573,28 @@ Internationalization
 - Use localized strings in your project automatically in GUI elements or by
 - Use localized strings in your project automatically in GUI elements or by
   using the ``tr()`` function.
   using the ``tr()`` function.
 - Support for pluralization and translation contexts when using gettext translations.
 - Support for pluralization and translation contexts when using gettext translations.
-- Support for bidirectional typesetting, text shaping and OpenType localized forms.
+- Support for :ref:`bidirectional typesetting <doc_internationalizing_games_bidi>`,
+  text shaping and OpenType localized forms.
 - Automatic UI mirroring for right-to-left locales.
 - Automatic UI mirroring for right-to-left locales.
 - Support for pseudolocalization to test your project for i18n-friendliness.
 - Support for pseudolocalization to test your project for i18n-friendliness.
 
 
 Windowing and OS integration
 Windowing and OS integration
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 
+- Spawn multiple independent windows within a single process.
 - Move, resize, minimize, and maximize windows spawned by the project.
 - Move, resize, minimize, and maximize windows spawned by the project.
 - Change the window title and icon.
 - Change the window title and icon.
 - Request attention (will cause the title bar to blink on most platforms).
 - Request attention (will cause the title bar to blink on most platforms).
 - Fullscreen mode.
 - Fullscreen mode.
 
 
-   - Doesn't use exclusive fullscreen, which allows for fast alt-tabbing. The
-     downside is that the screen resolution can't be changed this way. For 3D
-     resolution scaling, use the appropriate project settings or the equivalent
-     Viewport property. For 2D resolution scaling, use a second Viewport node
-     to render the game world with a different size.
+   - Uses borderless fullscreen by default on Windows for fast alt-tabbing,
+     but can optionally use exclusive fullscreen to reduce input lag.
 
 
 - Borderless windows (fullscreen or non-fullscreen).
 - Borderless windows (fullscreen or non-fullscreen).
 - Ability to keep a window always on top.
 - Ability to keep a window always on top.
 - Global menu integration on macOS.
 - Global menu integration on macOS.
-- Execute commands in a blocking or non-blocking manner.
+- Execute commands in a blocking or non-blocking manner (including running
+  multiple instances of the same project).
 - Open file paths and URLs using default or custom protocol handlers (if registered on the system).
 - Open file paths and URLs using default or custom protocol handlers (if registered on the system).
 - Parse custom command line arguments.
 - Parse custom command line arguments.
 - Any Godot binary (editor or exported project) can be
 - Any Godot binary (editor or exported project) can be
@@ -578,13 +605,14 @@ Windowing and OS integration
 Mobile
 Mobile
 ^^^^^^
 ^^^^^^
 
 
-- In-app purchases on Android and iOS.
+- In-app purchases on :ref:`Android <doc_android_in_app_purchases>`
+  and :ref:`iOS <doc_plugins_for_ios>`.
 - Support for advertisements using third-party modules.
 - Support for advertisements using third-party modules.
 
 
 XR support (AR and VR)
 XR support (AR and VR)
 ^^^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^^^
 
 
-- Out of the box support for OpenXR.
+- Out of the box :ref:`support for OpenXR <doc_setting_up_xr>`.
 
 
    - Including support for popular headsets like the Meta Quest and the Valve Index.
    - Including support for popular headsets like the Meta Quest and the Valve Index.
 
 
@@ -601,14 +629,16 @@ The editor UI can easily be extended in many ways using add-ons.
 
 
 - Buttons.
 - Buttons.
 - Checkboxes, check buttons, radio buttons.
 - Checkboxes, check buttons, radio buttons.
-- Text entry using LineEdit (single line) and TextEdit (multiple lines).
-- Dropdown menus using PopupMenu and OptionButton.
+- Text entry using :ref:`class_LineEdit` (single line) and :ref:`class_TextEdit` (multiple lines).
+  TextEdit also supports code editing features such as displaying line numbers
+  and syntax highlighting.
+- Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`.
 - Scrollbars.
 - Scrollbars.
 - Labels.
 - Labels.
-- RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`.
+- RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`,
+  with support for animated custom effects.
 - Trees (can also be used to represent tables).
 - Trees (can also be used to represent tables).
 - Color picker with RGB and HSV modes.
 - Color picker with RGB and HSV modes.
-- Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).
 - Controls can be rotated and scaled.
 - Controls can be rotated and scaled.
 
 
 **Sizing:**
 **Sizing:**
@@ -618,11 +648,13 @@ The editor UI can easily be extended in many ways using add-ons.
 
 
    - :ref:`Stack <class_BoxContainer>` layouts.
    - :ref:`Stack <class_BoxContainer>` layouts.
    - :ref:`Grid <class_GridContainer>` layouts.
    - :ref:`Grid <class_GridContainer>` layouts.
-   - :ref:`Margin <class_MarginContainer>` and :ref:`centered <class_CenterContainer>`
-     layouts.
+   - :ref:`Flow <class_FlowContainer>` layouts (similar to autowrapping text).
+   - :ref:`Margin <class_MarginContainer>`, :ref:`centered <class_CenterContainer>`
+     and :ref:`aspect ratio <class_AspectRatioContainer>` layouts.
    - :ref:`Draggable splitter <class_SplitContainer>` layouts.
    - :ref:`Draggable splitter <class_SplitContainer>` layouts.
 
 
-- Scale to multiple resolutions using the ``canvas_items`` or ``viewport`` stretch modes.
+- Scale to :ref:`multiple resolutions <doc_multiple_resolutions>` using the
+  ``canvas_items`` or ``viewport`` stretch modes.
 - Support any aspect ratio using anchors and the ``expand`` stretch aspect.
 - Support any aspect ratio using anchors and the ``expand`` stretch aspect.
 
 
 **Theming:**
 **Theming:**
@@ -667,6 +699,7 @@ File formats
    - Can (de)serialize any Godot datatype, including Vector2/3, Color, ...
    - Can (de)serialize any Godot datatype, including Vector2/3, Color, ...
 
 
 - Read XML files using :ref:`class_XMLParser`.
 - Read XML files using :ref:`class_XMLParser`.
+- Read and write ZIP files using :ref:`class_ZIPReader` and :ref:`class_ZIPPacker`.
 - Pack game data into a PCK file (custom format optimized for fast seeking),
 - Pack game data into a PCK file (custom format optimized for fast seeking),
   into a ZIP archive, or directly into the executable for single-file distribution.
   into a ZIP archive, or directly into the executable for single-file distribution.
 - :ref:`Export additional PCK files<doc_exporting_pcks>` that can be read
 - :ref:`Export additional PCK files<doc_exporting_pcks>` that can be read
@@ -675,6 +708,9 @@ File formats
 Miscellaneous
 Miscellaneous
 ^^^^^^^^^^^^^
 ^^^^^^^^^^^^^
 
 
+- :ref:`Video playback <doc_playing_videos>` with built-in support for Ogg Theora.
+- :ref:`Movie Maker mode <doc_creating_movies>` to record videos from a running
+  project with synchronized audio and perfect frame pacing.
 - :ref:`Low-level access to servers <doc_using_servers>` which allows bypassing
 - :ref:`Low-level access to servers <doc_using_servers>` which allows bypassing
   the scene tree's overhead when needed.
   the scene tree's overhead when needed.
 - :ref:`Command line interface <doc_command_line_tutorial>` for automation.
 - :ref:`Command line interface <doc_command_line_tutorial>` for automation.
@@ -682,6 +718,8 @@ Miscellaneous
    - Export and deploy projects using continuous integration platforms.
    - Export and deploy projects using continuous integration platforms.
    - `Shell completion scripts <https://github.com/godotengine/godot/tree/master/misc/dist/shell>`__
    - `Shell completion scripts <https://github.com/godotengine/godot/tree/master/misc/dist/shell>`__
      are available for Bash, zsh and fish.
      are available for Bash, zsh and fish.
+   - Print colored text to standard output on all platforms using
+     :ref:`print_rich <class_@GlobalScope_method_print_rich>`.
 
 
 - Support for :ref:`C++ modules <doc_custom_modules_in_c++>` statically linked
 - Support for :ref:`C++ modules <doc_custom_modules_in_c++>` statically linked
   into the engine binary.
   into the engine binary.

+ 2 - 0
tutorials/3d/resolution_scaling.rst

@@ -1,3 +1,5 @@
+.. _doc_resolution_scaling:
+
 Resolution scaling
 Resolution scaling
 ==================
 ==================
 
 

+ 2 - 0
tutorials/i18n/internationalizing_games.rst

@@ -208,6 +208,8 @@ called the :ref:`TranslationServer <class_TranslationServer>`.
 Translations can be added or removed during run-time;
 Translations can be added or removed during run-time;
 the current language can also be changed at run-time.
 the current language can also be changed at run-time.
 
 
+.. _doc_internationalizing_games_bidi:
+
 Bidirectional text and UI Mirroring
 Bidirectional text and UI Mirroring
 -----------------------------------
 -----------------------------------