Skip to content

Commit 085cd03

Browse files
authored
Merge pull request #12036 from Calinou/update-list-of-features-4.7
Update List of features for 4.7
2 parents b379c02 + 225e272 commit 085cd03

3 files changed

Lines changed: 129 additions & 53 deletions

File tree

about/list_of_features.rst

Lines changed: 114 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -67,29 +67,48 @@ Editor
6767
**Features:**
6868

6969
- Scene tree editor.
70-
- Built-in script editor.
70+
- Built-in script editor. Also supports editing text files and using custom
71+
syntax highlighters.
7172
- Support for :ref:`external script editors <doc_external_editor>` such as
7273
Visual Studio Code or Vim.
7374
- GDScript :ref:`debugger <doc_debugger_panel>`.
7475

75-
- Support for debugging in threads is available since 4.2.
76+
- Supports debugging in threads.
77+
7678
- Visual profiler with CPU and GPU time indications for each step of the
7779
rendering pipeline.
7880
- Performance monitoring tools, including
7981
:ref:`custom performance monitors <doc_custom_performance_monitors>`.
82+
- Supports :ref:`tracing profilers <doc_tracing_profilers>` like
83+
:ref:`doc_profiler_tracy` and :ref:`doc_profiler_perfetto` for deeper optimization tasks.
84+
- Any script can be :ref:`run in the editor <doc_running_code_in_the_editor>`
85+
and provide custom functionality such as clickable buttons in the inspector,
86+
without needing to create an editor plugin.
8087
- Live script reloading.
8188
- Live scene editing.
8289

83-
- Changes will reflect in the editor and will be kept after closing the running project.
90+
- Changes *will* reflect in the editor and *will* be kept after closing the running project.
91+
92+
- Live camera replication (disabled by default).
93+
94+
- Move the in-editor camera and see the result in the running project.
8495

8596
- Remote inspector.
8697

87-
- Changes won't reflect in the editor and won't be kept after closing the running project.
98+
- Changes *won't* reflect in the editor and *won't* be kept after closing the running project.
8899

89-
- Live camera replication.
100+
- Run multiple simultaneous project instances from a single editor instance
101+
(useful for client/server testing).
102+
- Optional :ref:`game embedding <doc_game_embedding>` to run the project in a panel within the editor.
90103

91-
- Move the in-editor camera and see the result in the running project.
104+
- Select 2D and 3D nodes in the project's viewport to inspect them in the editor.
105+
- Move the camera within the project using the 2D and 3D camera overrides.
106+
- Supports time scale adjustments, pausing, and frame advance.
107+
- Supports muting the project.
92108

109+
- Ruler tool to measure distances in 2D and 3D.
110+
- Vertex snapping support in 3D.
111+
- Support for following the selection as it moves in 3D by using Focus Selection twice.
93112
- Built-in offline class reference documentation.
94113
- Use the editor in dozens of languages contributed by the community.
95114

@@ -118,7 +137,9 @@ Godot 4 includes three renderers:
118137
renderer, suited for low-end desktop and mobile platforms. Used by default on
119138
the web platform. This renderer uses **OpenGL** as the rendering driver.
120139

121-
See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
140+
.. seealso::
141+
142+
See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
122143

123144
2D graphics
124145
-----------
@@ -171,6 +192,8 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
171192
- CPU-based particles.
172193
- Optional :ref:`2D HDR rendering <doc_environment_and_post_processing_using_glow_in_2d>`
173194
for better glow capabilities.
195+
- Optional debanding to reduce banding artifacts in gradients.
196+
- :ref:`HDR output <doc_hdr_output>` on supported platforms and renderers.
174197

175198
2D tools
176199
--------
@@ -195,6 +218,7 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
195218
- Character bodies.
196219
- Joints.
197220
- Areas to detect bodies entering or leaving it.
221+
- :ref:`Physics interpolation <doc_physics_interpolation>`.
198222

199223
**Collision detection:**
200224

@@ -204,7 +228,9 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
204228
3D graphics
205229
-----------
206230

207-
- HDR rendering with sRGB.
231+
- Linear HDR internal lighting calculations.
232+
- Optional debanding to reduce banding artifacts in gradients.
233+
- :ref:`HDR output <doc_hdr_output>` on supported platforms and renderers.
208234
- Perspective, orthographic and frustum-offset cameras.
209235
- When using the Forward+ renderer, a depth prepass is used to improve
210236
performance in complex scenes by reducing the cost of overdraw.
@@ -229,30 +255,36 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
229255

230256
**Real-time lighting:**
231257

232-
- Directional lights (sun/moon). Up to 4 per scene.
233-
- Omnidirectional lights.
234-
- Spot lights with adjustable cone angle and attenuation.
258+
- :ref:`Directional lights <doc_lights_and_shadows_directional_light>` (sun/moon).
259+
- :ref:`Omnidirectional lights <doc_lights_and_shadows_omni_light>`.
260+
- :ref:`Spot lights <doc_lights_and_shadows_spot_light>` with adjustable cone angle and attenuation.
261+
- :ref:`Rectangular area lights <doc_lights_and_shadows_area_light>` with an optional texture
262+
to determine the shape and color.
235263
- Specular, indirect light, and volumetric fog energy can be adjusted on a per-light basis.
236-
- Adjustable light "size" for fake area lights (will also make shadows blurrier).
264+
- Adjustable light "size" for spherical omni and disc spot lights (will also make shadows
265+
blurrier with variable penumbra).
237266
- Optional distance fade system to fade distant lights and their shadows, improving performance.
238267
- When using the Forward+ renderer (default on desktop), lights are
239268
rendered with clustered forward optimizations to decrease their individual cost.
240269
Clustered rendering also lifts any limits on the number of lights that can be used on a mesh.
241-
- When using the Mobile renderer, up to 8 omni lights and 8 spot lights can
270+
- When using the Mobile renderer, up to 8 omni lights, 8 spot lights, and 8 area lights can
242271
be displayed per mesh resource. Baked lighting can be used to overcome this limit
243272
if needed.
244273

245274
**Shadow mapping:**
246275

247-
- *DirectionalLight:* Orthogonal (fastest), PSSM 2-split and 4-split.
276+
- *DirectionalLight3D:* Orthogonal (fastest), PSSM 2-split and 4-split.
248277
Supports blending between splits.
249-
- *OmniLight:* Dual paraboloid (fast) or cubemap (slower but more accurate).
278+
- *OmniLight3D:* Dual paraboloid (fast) or cubemap (slower but more accurate).
250279
Supports colored projector textures in the form of panoramas.
251-
- *SpotLight:* Single texture. Supports colored projector textures.
280+
- *SpotLight3D:* Single texture. Supports colored projector textures.
281+
- *AreaLight3D:* Single texture with dual paraboloid distortion to approximate
282+
the light's shape.
252283
- Shadow normal offset bias and shadow pancaking to decrease the amount of
253284
visible shadow acne and peter-panning.
254285
- :abbr:`PCSS (Percentage Closer Soft Shadows)`-like shadow blur based on the
255-
light size and distance from the surface the shadow is cast on.
286+
light size and distance from the surface the shadow is cast on. Supported for
287+
all light types.
256288
- Adjustable shadow blur on a per-light basis.
257289

258290
**Global illumination with indirect lighting:**
@@ -263,13 +295,17 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
263295
The bake mode can be adjusted on a per-light basis to allow for hybrid light
264296
baking setups.
265297
- Supports lighting dynamic objects using automatic and manually placed probes.
266-
- Optionally supports directional lighting and rough reflections based on spherical
267-
harmonics.
268-
- Lightmaps are baked on the GPU using compute shaders (much faster compared
269-
to CPU lightmapping). Baking can only be performed from the editor,
270-
not in exported projects.
298+
- Optionally supports directional lighting based on spherical harmonics.
299+
- Optionally supports baking a shadowmask for distant static directional shadows.
300+
- Optional supersampling at bake-time to improve quality and reduce light leaking
301+
at the cost of increased bake times and memory usage during baking.
302+
- Lightmaps are baked on the GPU using compute shaders (much faster than
303+
CPU lightmapping). Baking can only be performed from the editor, not in
304+
exported projects.
271305
- Supports GPU-based :ref:`denoising <doc_using_lightmap_gi_denoising>`
272-
with JNLM, or CPU/GPU-based denoising with OIDN.
306+
with JNLM out of the box, or higher-quality CPU/GPU-based denoising with
307+
OIDN (requires downloading OIDN separately).
308+
- Lightmaps are rendered with bicubic filtering to reduce scaling artifacts.
273309

274310
- :ref:`Voxel-based GI probes <doc_using_voxel_gi>`. Supports
275311
dynamic lights *and* dynamic occluders, while also supporting reflections.
@@ -296,7 +332,8 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
296332
- Reflection techniques can be mixed together for greater accuracy or scalability.
297333
- When using the Forward+ renderer (default on desktop), reflection probes are
298334
rendered with clustered forward optimizations to decrease their individual cost.
299-
Clustered rendering also lifts any limits on the number of reflection probes that can be used on a mesh.
335+
Clustered rendering also lifts any limits on the number of reflection probes
336+
that can be used on a mesh.
300337
- When using the Mobile renderer, up to 8 reflection probes can be displayed per mesh
301338
resource. When using the Compatibility renderer, up to 2 reflection probes can
302339
be displayed per mesh resource.
@@ -380,12 +417,13 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
380417
- Nearest, bilinear, trilinear or anisotropic filtering.
381418
- Filtering options are defined on a per-use basis, not a per-texture basis.
382419

383-
**Texture compression:**
420+
**Texture VRAM compression:**
384421

385-
- Basis Universal (slow, but results in smaller files).
386-
- BPTC for high-quality compression (not supported on macOS).
387-
- ETC2 (not supported on macOS).
388-
- S3TC (not supported on mobile/Web platforms).
422+
- BPTC (for high-quality compression targeting desktop platforms).
423+
- ASTC (for high-quality compression targeting mobile platforms).
424+
- ETC2 (for fast compression targeting mobile platforms).
425+
- S3TC (for fast compression targeting desktop platforms).
426+
- Basis Universal (slow, but only requires one encoding for all platforms).
389427

390428
**Antialiasing:**
391429

@@ -402,8 +440,9 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
402440
- Support for :ref:`rendering 3D at a lower resolution <doc_resolution_scaling>`
403441
while keeping 2D rendering at the original scale. This can be used to improve
404442
performance on low-end systems or improve visuals on high-end systems.
405-
- Resolution scaling uses bilinear filtering, AMD FidelityFX Super Resolution
406-
1.0 (FSR1) or AMD FidelityFX Super Resolution 2.2 (FSR2).
443+
- Resolution scaling uses nearest-neighbor filtering, bilinear filtering,
444+
AMD FidelityFX Super Resolution 1.0 (FSR1), or AMD FidelityFX Super Resolution 2.2.1
445+
(FSR2).
407446
- Texture mipmap LOD bias is adjusted automatically to improve quality at lower
408447
resolution scales. It can also be modified with a manual offset.
409448

@@ -441,6 +480,7 @@ improve quality. This can be helpful when
441480
- :ref:`Soft bodies <doc_soft_body>`.
442481
- :ref:`Ragdolls <doc_ragdoll_system>`.
443482
- Areas to detect bodies entering or leaving it.
483+
- :ref:`Physics interpolation <doc_physics_interpolation>`.
444484

445485
**Collision detection:**
446486

@@ -452,8 +492,12 @@ Shaders
452492
-------
453493

454494
- *2D:* Custom vertex, fragment, and light shaders.
455-
- *3D:* Custom vertex, fragment, light, and sky shaders.
495+
- *3D:* Custom vertex, fragment, light, sky, and fog shaders.
496+
- Custom shaders can procedurally generate and modify textures in real-time using
497+
:ref:`class_DrawableTexture2D`.
456498
- Text-based shaders using a :ref:`shader language inspired by GLSL <doc_shading_language>`.
499+
- Syntax highlighting is provided on GitHub by using ``gdshader``
500+
as the language name in a Markdown code block.
457501
- Visual shader editor.
458502

459503
- Support for :ref:`visual shader plugins <doc_visual_shader_plugins>`.
@@ -473,7 +517,8 @@ Scripting
473517
- :ref:`High-level interpreted language <doc_gdscript_reference>` with
474518
:ref:`optional static typing <doc_gdscript_static_typing>`.
475519
- Syntax inspired by Python. However, GDScript is **not** based on Python.
476-
- Syntax highlighting is provided on GitHub.
520+
- Syntax highlighting is provided on GitHub by using ``gdscript``
521+
as the language name in a Markdown code block.
477522
- :ref:`Use threads <doc_using_multiple_threads>` to perform asynchronous actions
478523
or make use of multiple processor cores.
479524

@@ -484,7 +529,8 @@ Scripting
484529

485530
- Full support for the C# 12.0 syntax and features.
486531

487-
- Supports Windows, Linux, and macOS. Since Godot 4.2, experimental support for Android and iOS is also available.
532+
- Supports Windows, Linux, and macOS. Since Godot 4.2, experimental support for
533+
Android and iOS is also available.
488534

489535
- On the iOS platform only some architectures are supported: ``arm64``.
490536
- The web platform is currently unsupported. To use C# on that platform,
@@ -494,7 +540,8 @@ Scripting
494540

495541
**GDExtension (C, C++, Rust, D, ...):**
496542

497-
- When you need it, link to native libraries for higher performance and third-party integrations.
543+
- When you need it, link to native libraries for higher performance and third-party
544+
integrations.
498545

499546
- For scripting game logic, GDScript or C# are recommended if their
500547
performance is suitable.
@@ -520,12 +567,14 @@ Audio
520567

521568
- Support for re-routable :ref:`audio buses <doc_audio_buses>` and effects
522569
with dozens of effects included.
523-
- Support for polyphony (playing several sounds from a single AudioStreamPlayer node).
570+
- Support for polyphony (playing several sounds from a single :ref:`class_AudioStreamPlayer`
571+
node).
524572
- Support for random volume and pitch.
525573
- Support for real-time pitch scaling.
526574
- Support for sequential/random sample selection, including repetition prevention
527575
when using random sample selection.
528-
- Listener2D and Listener3D nodes to listen from a position different than the camera.
576+
- :ref:`class_AudioListener2D` and :ref:`class_AudioListener3D` nodes to listen from a position
577+
different from the camera.
529578
- Support for :ref:`procedural audio generation <class_AudioStreamGenerator>`.
530579
- Audio input to record microphones.
531580
- :ref:`Text to speech <doc_text_to_speech>` using platform-provided TTS engines.
@@ -549,7 +598,7 @@ Import
549598
- *Images:* See :ref:`doc_importing_images`.
550599
- *Audio:*
551600

552-
- WAV with optional IMA-ADPCM compression.
601+
- WAV with optional :abbr:`QOA (Quite OK Audio)` or IMA-ADPCM compression.
553602
- Ogg Vorbis.
554603
- MP3.
555604

@@ -581,11 +630,20 @@ Input
581630
- Mouse input.
582631

583632
- The mouse cursor can be visible, hidden, captured or confined within the window.
584-
- When captured, raw input will be used on Windows and Linux to
585-
sidestep the OS' mouse acceleration settings.
633+
- The mouse cursor's appearance can be changed to a custom image or one of the
634+
system cursors.
635+
- When captured, raw input is used on Windows and Linux to sidestep the OS'
636+
mouse acceleration settings.
637+
638+
- :ref:`Gamepad input <doc_controllers_gamepads_joysticks>`
639+
(up to 8 simultaneous controllers).
640+
641+
- Support for :ref:`changing the LED color <doc_controller_features_led_color>`
642+
on supported controllers.
643+
- Support for :ref:`reading motion sensors <doc_controller_features_motion_sensors>`
644+
on supported controllers (used to implement gyro aiming).
586645

587-
- Gamepad input (up to 8 simultaneous controllers).
588-
- Pen/tablet input with pressure support.
646+
- Pen/tablet input with pressure and tilt support.
589647

590648
Navigation
591649
----------
@@ -636,7 +694,8 @@ Internationalization
636694
- Support for :ref:`bidirectional typesetting <doc_internationalizing_games_bidi>`,
637695
text shaping and OpenType localized forms.
638696
- Automatic UI mirroring for right-to-left locales.
639-
- Support for pseudolocalization to test your project for i18n-friendliness.
697+
- Support for :ref:`pseudolocalization <doc_pseudolocalization>` to test your project
698+
for i18n-friendliness.
640699

641700
Windowing and OS integration
642701
----------------------------
@@ -678,9 +737,12 @@ Windowing and OS integration
678737
Mobile
679738
------
680739

740+
- :ref:`Virtual joystick <class_VirtualJoystick>` and :ref:`buttons <class_TouchScreenButton>`
741+
for touch input.
681742
- In-app purchases on :ref:`Android <doc_android_in_app_purchases>`
682743
and `iOS <https://github.com/godot-sdk-integrations/godot-storekit2>`_.
683744
- Support for advertisements using third-party modules.
745+
- Support for picture-in-picture mode on Android.
684746

685747
.. _doc_xr_support:
686748

@@ -693,7 +755,7 @@ XR support (AR and VR)
693755

694756
- Support for :ref:`Android-based headsets <doc_deploying_to_android>` using OpenXR through a plugin.
695757

696-
- Including support for popular stand alone headsets like the Meta Quest 1/2/3 and Pro, Pico 4, Magic Leap 2, and Lynx R1.
758+
- Including support for popular standalone headsets like the Meta Quest 1/2/3 and Pro, Pico 4, Magic Leap 2, and Lynx R1.
697759

698760
- Out of the box limited support for visionOS Apple headsets.
699761

@@ -713,17 +775,19 @@ The editor UI can easily be extended in many ways using add-ons.
713775

714776
- Buttons.
715777
- Checkboxes, check buttons, radio buttons.
716-
- Text entry using :ref:`class_LineEdit` (single line) and :ref:`class_TextEdit` (multiple lines).
717-
TextEdit also supports code editing features such as displaying line numbers
718-
and syntax highlighting.
719-
- Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`.
778+
- Text entry using :ref:`class_LineEdit` (single line), :ref:`class_TextEdit`
779+
(multiple lines), and :ref:`class_CodeEdit` (supports syntax highlighting,
780+
line numbers, and more).
781+
- Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`
782+
with support for an optional search bar.
720783
- Scrollbars.
721784
- Labels.
722785
- RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`,
723786
with support for animated custom effects.
724787
- Trees (can also be used to represent tables).
725-
- Color picker with RGB and HSV modes.
788+
- Color picker with RGB, HSV, and OKHSL modes, as well as custom color palettes.
726789
- Controls can be rotated and scaled.
790+
- Drag-and-drop support.
727791

728792
**Sizing:**
729793

@@ -736,6 +800,7 @@ The editor UI can easily be extended in many ways using add-ons.
736800
- :ref:`Margin <class_MarginContainer>`, :ref:`centered <class_CenterContainer>`
737801
and :ref:`aspect ratio <class_AspectRatioContainer>` layouts.
738802
- :ref:`Draggable splitter <class_SplitContainer>` layouts.
803+
- :ref:`Foldable section <class_FoldableContainer>` layouts.
739804

740805
- Scale to :ref:`multiple resolutions <doc_multiple_resolutions>` using the
741806
``canvas_items`` or ``viewport`` stretch modes.

0 commit comments

Comments
 (0)