Skip to content

Commit

Permalink
Merge pull request #90 from Spartan322/merge/da1ef85
Browse files Browse the repository at this point in the history
  • Loading branch information
Spartan322 authored Dec 22, 2024
2 parents a61e2aa + c9aae51 commit 42fac8b
Show file tree
Hide file tree
Showing 217 changed files with 9,747 additions and 1,274 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Report incorrect or outdated documentation
title: ''
labels: bug
labels: ''
assignees: ''
---

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/enhancement_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Enhancement request
about: Suggest new documentation or improving existing documentation
title: ''
labels: enhancement
labels: ''
assignees: ''
---

Expand Down
16 changes: 4 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

- name: Install dependencies
run: |
# Install tools used by `_tools/format.sh`.
sudo apt-get -qq update
sudo apt-get -qq install dos2unix recode
sudo pip3 install -r requirements.txt
sudo pip3 install codespell
- name: Style checks via pre-commit
uses: pre-commit/[email protected]

- name: Linter checks
run: |
bash _tools/format.sh
codespell -D- -D _tools/codespell-dict.txt -I _tools/codespell-ignore.txt -x _tools/codespell-ignore-lines.txt -S tutorials/i18n/locales.rst {about,community,contributing,getting_started,tutorials}/{*.rst,**/*.rst,**/**/*.rst,**/**/**/*.rst}
- name: Install dependencies
run: sudo pip3 install -r requirements.txt

- name: Migrate to Redot
run: |
Expand Down
17 changes: 17 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
default_language_version:
python: python3

repos:
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
files: ^(about|community|contributing|getting_started|tutorials)/.*\.rst$
additional_dependencies: [tomli]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: fix-byte-order-marker
- id: mixed-line-ending
args: ['--fix=lf']
28 changes: 28 additions & 0 deletions _static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ a.btn:hover {

/* Style self-links to make them appear only on hover. */
.classref-method > a[href*="-method-"].reference,
.classref-method > a[href*="-func-"].reference,
.classref-property > a[href*="-property-"].reference,
.classref-signal > a[href*="-signal-"].reference,
.classref-annotation > a[href*="-annotation-"].reference,
Expand All @@ -412,6 +413,7 @@ a.btn:hover {
padding-right: 20px;
}
.classref-method:hover > a[href*="-method-"].reference,
.classref-method:hover > a[href*="-func-"].reference,
.classref-property:hover > a[href*="-property-"].reference,
.classref-signal:hover > a[href*="-signal-"].reference,
.classref-annotation:hover > a[href*="-annotation-"].reference,
Expand Down Expand Up @@ -810,6 +812,31 @@ html.writer-html5 .rst-content table.docutils th {
.wy-table-responsive table.wrap-normal th {
white-space: normal;
}
/* Turn nowrap on per-column */
.wy-table-responsive table.nowrap-col1 td:nth-child(1),
.wy-table-responsive table.nowrap-col1 th:nth-child(1) {
white-space: nowrap;
}
.wy-table-responsive table.nowrap-col2 td:nth-child(2),
.wy-table-responsive table.nowrap-col2 th:nth-child(2) {
white-space: nowrap;
}
.wy-table-responsive table.nowrap-col3 td:nth-child(3),
.wy-table-responsive table.nowrap-col3 th:nth-child(3) {
white-space: nowrap;
}
.wy-table-responsive table.nowrap-col4 td:nth-child(4),
.wy-table-responsive table.nowrap-col4 th:nth-child(4) {
white-space: nowrap;
}
.wy-table-responsive table.nowrap-col5 td:nth-child(5),
.wy-table-responsive table.nowrap-col5 th:nth-child(5) {
white-space: nowrap;
}
.wy-table-responsive table.nowrap-col6 td:nth-child(6),
.wy-table-responsive table.nowrap-col6 th:nth-child(6) {
white-space: nowrap;
}

/* Make sure line blocks don't stretch tables */
.wy-table-responsive table .line-block {
Expand Down Expand Up @@ -1136,6 +1163,7 @@ kbd.compound > .kbd,
.classref-descriptions-group > p.classref-annotation,
.classref-descriptions-group > p.classref-themeproperty,
.classref-descriptions-group > p.classref-method,
.classref-descriptions-group > div.classref-method.line-block,
.classref-descriptions-group > p.classref-constructor,
.classref-descriptions-group > p.classref-operator,
.classref-descriptions-group > p.classref-constant,
Expand Down
12 changes: 2 additions & 10 deletions _templates/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,15 @@
</div>
{% endif %}

{% if godot_show_article_status and not godot_is_latest %}
<div class="admonition tip article-status">
{% if meta and meta.get('article_outdated') == 'True' %}
{% if godot_show_article_status and not godot_is_latest and meta and meta.get('article_outdated') == 'True' %}
<div class="admonition attention article-status">
<p class="first admonition-title">Work in progress</p>
<p>
The content of this page was not yet updated for Godot
<code class="docutils literal notranslate">{{ godot_version }}</code>
and may be <strong>outdated</strong>. If you know how to improve this page or you can confirm
that it's up to date, feel free to <a href="https://github.com/godotengine/godot-docs">open a pull request</a>.
</p>
{% else %}
<p class="first admonition-title">Up to date</p>
<p>
This page is <strong>up to date</strong> for Godot <code class="docutils literal notranslate">{{ godot_version }}</code>.
If you still find outdated information, please <a href="https://github.com/godotengine/godot-docs">open an issue</a>.
</p>
{% endif %}
</div>
{% endif %}
</div>
Expand Down
42 changes: 0 additions & 42 deletions _tools/format.sh

This file was deleted.

25 changes: 25 additions & 0 deletions about/docs_changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,21 @@ added since version 3.0.
New pages since version 4.3
---------------------------

2D
^^

- :ref:`doc_introduction_to_2d`

3D
^^

- :ref:`doc_spring_arm`

Debug
^^^^^

- :ref:`doc_output_panel`

Editor
^^^^^^

Expand All @@ -31,11 +41,26 @@ Performance

- :ref:`doc_pipeline_compilations`

Physics
^^^^^^^

- :ref:`doc_physics_interpolation`
- :ref:`doc_physics_interpolation_quick_start_guide`
- :ref:`doc_physics_interpolation_introduction`
- :ref:`doc_using_physics_interpolation`
- :ref:`doc_advanced_physics_interpolation`
- :ref:`doc_2d_and_3d_physics_interpolation`

Rendering
^^^^^^^^^

- :ref:`doc_renderers`

Shaders
^^^^^^^

- :ref:`doc_shader_functions`

New pages since version 4.2
---------------------------

Expand Down
34 changes: 33 additions & 1 deletion about/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,38 @@ The main reasons for creating a custom scripting language for Godot were:

GDScript was designed to curtail the issues above, and more.

.. _doc_faq_which_programming_language_is_fastest:

Which programming language is fastest?
--------------------------------------

In most games, the *scripting language* itself is not the cause of performance
problems. Instead, performance is slowed by inefficient algorithms (which are
slow in all languages), by GPU performance, or by the common C++ engine code
like physics or navigation. All languages supported by Godot are fast enough for
general-purpose scripting. You should choose a language based on other factors,
like ease-of-use, familiarity, platform support, or language features.

In general, the performance of C# and GDScript is within the same order of
magnitude, and C++ is faster than both.

Comparing GDScript performance to C# is tricky, since C# can be faster in some
specific cases. The C# *language* itself tends to be faster than GDScript, which
means that C# can be faster in situations with few calls to Godot engine code.
However, C# can be slower than GDScript when making many Godot API calls, due
to the cost of *marshalling*. C#'s performance can also be brought down by garbage
collection which occurs at random and unpredictable moments. This can result in
stuttering issues in complex projects, and is not exclusive to Godot.

C++, using :ref:`GDExtension <doc_what_is_gdextension>`, will almost always be
faster than either C# or GDScript. However, C++ is less easy to use than C# or
GDScript, and is slower to develop with.

You can also use multiple languages within a single project, with
:ref:`cross-language scripting <doc_cross_language_scripting>`, or by using
GDExtension and scripting languages together. Be aware that doing so comes with
its own complications.

What 3D model formats does Godot support?
-----------------------------------------

Expand Down Expand Up @@ -290,7 +322,7 @@ While Vulkan and OpenGL remain our primary focus for their open standard and
cross-platform benefits, Godot 4.3 introduced experimental support for Direct3D 12.
This addition aims to enhance performance and compatibility on platforms where
Direct3D 12 is prevalent, such as Windows and Xbox. However, Vulkan and OpenGL
will continue as the default rendering backends on all platforms, including Windows.
will continue as the default rendering drivers on all platforms, including Windows.

Why does Godot aim to keep its core feature set small?
------------------------------------------------------
Expand Down
51 changes: 25 additions & 26 deletions about/list_of_features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,17 +95,18 @@ Editor
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.
Godot 4 includes three renderers:

- **Forward+**. The most advanced renderer, suited for desktop platforms only.
Used by default on desktop platforms. This renderer uses **Vulkan**, **Direct3D 12**,
or **Metal** as the rendering driver, and it uses the **RenderingDevice** backend.
- **Mobile**. Fewer features, but renders simple scenes faster. Suited for mobile
and desktop platforms. Used by default on mobile platforms. This renderer uses
**Vulkan**, **Direct3D 12**, or **Metal** as the rendering driver, and it uses
the **RenderingDevice** backend.
- **Compatibility**, sometimes called **GL Compatibility**. The least advanced
renderer, suited for low-end desktop and mobile platforms. Used by default on
the web platform. This renderer uses **OpenGL** as the rendering driver.

See :ref:`doc_renderers` for a detailed comparison of the rendering methods.

Expand Down Expand Up @@ -188,9 +189,9 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.

- HDR rendering with sRGB.
- Perspective, orthographic and frustum-offset cameras.
- When using the Forward+ backend, a depth prepass is used to improve
- When using the Forward+ renderer, 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.
- :ref:`doc_variable_rate_shading` on supported GPUs in Forward+ and Mobile.

**Physically-based rendering (built-in material features):**

Expand All @@ -217,10 +218,10 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
- Specular, indirect light, and volumetric fog energy can be adjusted on a per-light basis.
- 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.
- When using the Forward+ backend (default on desktop), lights are
- When using the Forward+ renderer (default on desktop), lights are
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.
- When using the Forward Mobile backend, up to 8 omni lights and 8 spot lights can
- When using the Mobile renderer, up to 8 omni lights and 8 spot lights can
be displayed per mesh resource. Baked lighting can be used to overcome this limit
if needed.

Expand Down Expand Up @@ -276,10 +277,10 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
Parallax box correction can optionally be enabled.
- Screen-space reflections with support for material roughness.
- Reflection techniques can be mixed together for greater accuracy or scalability.
- When using the Forward+ backend (default on desktop), reflection probes are
- When using the Forward+ renderer (default on desktop), reflection probes are
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.
- When using the Forward Mobile backend, up to 8 reflection probes can be displayed per mesh
- When using the Mobile renderer, up to 8 reflection probes can be displayed per mesh
resource. When using the Compatibility renderer, up to 2 reflection probes can
be displayed per mesh resource.

Expand All @@ -294,10 +295,10 @@ See :ref:`doc_renderers` for a detailed comparison of the rendering methods.
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).
- Optional distance fade system to fade distant decals, improving performance.
- When using the Forward+ backend (default on desktop), decals are
- When using the Forward+ renderer (default on desktop), decals are
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.
- When using the Forward Mobile backend, up to 8 decals can be displayed per mesh
- When using the Mobile renderer, up to 8 decals can be displayed per mesh
resource.

**Sky:**
Expand Down Expand Up @@ -462,14 +463,12 @@ Scripting
:ref:`C#: <toc-learn-scripting-C#>`

- Packaged in a separate binary to keep file sizes and dependencies down.
- Supports .NET 6 and higher.
- Supports .NET 8 and higher.

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

- Supports Windows, Linux, and macOS. As of 4.2 experimental support for Android
and iOS is also available (requires a .NET 7.0 project for Android and 8.0 for iOS).
- Supports Windows, Linux, and macOS. Since Godot 4.2, experimental support for Android and iOS is also available.

- On the Android platform only some architectures are supported: ``arm64`` and ``x64``.
- On the iOS platform only some architectures are supported: ``arm64``.
- The web platform is currently unsupported. To use C# on that platform,
consider Godot 3 instead.
Expand All @@ -489,7 +488,7 @@ Scripting
- Use any build system and language features you wish.

- Actively developed GDExtension bindings for `D <https://github.com/godot-dlang/godot-dlang>`__,
`Haxe <https://hxgodot.github.io/>`__, `Swift <https://github.com/migueldeicaza/SwiftGodot>`__, and `Rust <https://github.com/godot-rust/gdextension>`__
`Swift <https://github.com/migueldeicaza/SwiftGodot>`__, 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
Expand Down Expand Up @@ -653,7 +652,7 @@ XR support (AR and VR)

- Including support for popular desktop headsets like the Valve Index, WMR headsets, and Quest over Link.

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

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

Expand Down
Loading

0 comments on commit 42fac8b

Please sign in to comment.