Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[stable] Merge commit godotengine/godot-docs@4b616e1 #91

Merged
merged 119 commits into from
Dec 22, 2024
Merged
Changes from 30 commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
5b4c353
Add multiple renderer support to Advanced Postprocessing
tetrapod00 Nov 11, 2024
cf7c654
Merge pull request #10248 from tetrapod00/advanced-postprocessing-43
mhilbrunner Nov 12, 2024
8835289
Add info about layer mask exporting to physics_introduction.rst (#10242)
notPelf Nov 17, 2024
d57d5f8
[GDScript] Clarify initialization of enum values
AThousandShips Aug 31, 2024
f8e4fa5
Merge pull request #9828 from Lukas-Fletcher/patch-2
skyace65 Sep 5, 2024
5aeaed3
Merge pull request #9929 from akien-mga/release-support-3.6
mhilbrunner Sep 9, 2024
fad8412
Add 3->4 upgrading information about NDC, light(), and reverse-z
tetrapod00 Sep 10, 2024
7be942a
Update Default editor shortcuts for Godot 4.3+
Calinou Oct 4, 2024
ef9d2db
Add a gdextension online documentation guide. (#9966)
Ivorforce Oct 8, 2024
a04b7d9
Add a note about GDScript format strings in C++ (#10061)
aaronfranke Oct 8, 2024
e06cef2
Clarify that the Better Collada addon is unmaintained in 4.x
tetrapod00 Oct 11, 2024
40bdaac
Remove note in Submitting to Asset Library
tetrapod00 Oct 15, 2024
c86adb0
Clarify restrictions on nested array types in Static typing in GDScript
Calinou Oct 16, 2024
b5e097d
Document Variant not being nullable
Calinou Oct 15, 2024
f2ea201
Add warning about uninitialized variables in shaders
tetrapod00 Oct 17, 2024
6c43491
Document filename requirements in C# global classes
Calinou Oct 12, 2024
9e89c10
Clarify section on using the file browser
tetrapod00 Oct 18, 2024
92c3c63
Add W4 Games to porting support list
shana Oct 9, 2024
bb4190a
Adding Visual Studio Code Mac launch.json example
pafuent Oct 12, 2024
73bfde3
Add note about flat shading and Grow in Standard Material page
tetrapod00 Oct 18, 2024
fb43d4a
Add link from Rendering to 2D and 3D rendering sections
tetrapod00 Oct 19, 2024
0b495a6
Fix docstring written as comment
tetrapod00 Oct 19, 2024
9af9d35
Fix shader language matrix row/col convention
Flarkk Aug 27, 2024
698771c
Fix HDR 2D mention in Upgrading to Godot 4 page
tetrapod00 Oct 21, 2024
18a8113
Remove reference to 3.1 as a minimum version
tetrapod00 Oct 20, 2024
14cd307
Remove references to 3.x minor versions
tetrapod00 Oct 20, 2024
d7fb01c
Update Release Policy for release of 3.6
tetrapod00 Oct 21, 2024
def9753
Removed unnecessary note, as this page got rid of "$" signs in below …
Jedrzej1940518 Oct 21, 2024
3813790
Remove references to Phong and Blinn specular
tetrapod00 Oct 22, 2024
f1dde51
Fix typo "exists" to "exits"
DanielGSilva Oct 22, 2024
5a3789a
Typo fix for Interpolation gif description
ScarfKat Oct 23, 2024
06bc5c0
Update URL to Microsoft codesigning guide in Exporting for Windows
Calinou Oct 22, 2024
50ba383
Clarify cherry-picking workflow in Contributing to the Documentation
tetrapod00 Oct 27, 2024
253baa6
Fix unreachable pages in sidebar under C# Diagnostics
tetrapod00 Oct 27, 2024
35d4c16
Add Web export file name section
adamscott Oct 25, 2024
88601c2
Improve GDScript Basics sidebar navigation by changing header levels
tetrapod00 Oct 13, 2024
df4c27e
Mention callback argument count in The JavaScript bridge singleton
Calinou Oct 29, 2024
a5b086a
Use negative index for `get_child()` in Singletons (Autoload)
Calinou Oct 27, 2024
92aa6f1
Correctly name enum type
Brederodes Oct 29, 2024
1ee040e
Remove usages of "LTS"
tetrapod00 Oct 29, 2024
2a96350
Fix unreachable pages under 3D Particles by using fake headers
tetrapod00 Oct 18, 2024
10ca7b1
Made edits to match GDScript code order
comminux Oct 31, 2024
51f0d5a
Update documentation changelog for 4.3
tetrapod00 Nov 2, 2024
cc32ace
Replace broken link to official discord
tetrapod00 Nov 2, 2024
9bd0882
Improve Customizing the mouse cursor
tetrapod00 Nov 3, 2024
b71ff5c
Improve display of rubric fake headers with heading-level option
tetrapod00 Nov 2, 2024
bf6c72c
Mention a way to get development snapshots' source code in Getting th…
Calinou Nov 3, 2024
9f1060b
Add documentation for themed icons (monochrome)
syntaxerror247 Oct 2, 2024
0f3b28f
Update Editor icons page to reflect usage of `svgo` (#10195)
tetrapod00 Nov 4, 2024
203c5d7
Clarify when fragcoord z is used as depth output
Flarkk Oct 31, 2024
ffff2e7
Link to Getting Started Input tutorial from Input examples page (#10200)
tetrapod00 Nov 4, 2024
d8039bd
Fix code sample for add_autoload_singleton in plugin
Hilderin Sep 19, 2024
12efc92
Add spring arm third-person camera tutorial (#10156)
TranquilMarmot Nov 4, 2024
f6b7d83
Fix link to Windows platform port in Custom platform ports
Calinou Nov 5, 2024
ea02eb4
Fix "or_greater"/"or_less" code example
KleidonBD Oct 12, 2024
b40f92e
CI: Skip class ref. sync and offline docs on forks
mhilbrunner Nov 5, 2024
097c7ec
Remove canonical/hreflang tags, let RTD I18N do it
mhilbrunner Nov 5, 2024
e336118
Improve GDScript format strings tutorial
tetrapod00 Nov 7, 2024
21bd5e0
Fix codespell not running on some files
tetrapod00 Nov 7, 2024
302aa47
Improve Bug triage guidelines
tetrapod00 Nov 6, 2024
d651092
Update list of debugging settings
tetrapod00 Nov 9, 2024
1ff691d
Update "Size and anchors" to reflect Godot 4.3 terminology (#10216)
mikael-ros Nov 8, 2024
57fb2ff
Remove unneeded C# comment from First 2D Game
tetrapod00 Nov 9, 2024
5b73d70
Fix typo in Using signals (#10246)
enarve Nov 11, 2024
d9f223a
Document `@export_custom` and additional range hints in GDScript exports
Calinou Sep 23, 2024
70969b1
Add custom codespell dictionary
tetrapod00 Nov 7, 2024
39bb9f4
Update Random number generation for Godot 4.2+ (#9822)
Calinou Nov 13, 2024
73e706c
Document exporting as progressive web app in Exporting for the web
Calinou Nov 8, 2024
b2b3ea5
C# exports: Fix semicolon syntax error
mhilbrunner Nov 17, 2024
70f703a
Update Sphinx version
Piralein Oct 28, 2024
e5e896f
Merge pull request #10346 from mhilbrunner/4.3-cherrypicks
mhilbrunner Nov 30, 2024
d94727f
Update using_transforms.rst to clarify rotate_local() axis usage
furkanCalik7 Oct 6, 2024
32705a4
Update handling_quit_requests.rst
ztc0611 Aug 15, 2024
bb8c89f
Update android export page for AAB requirement (#9637)
skyace65 Nov 17, 2024
3c0106b
Update vectors_advanced.rst
ntlblpm Nov 17, 2024
fec6259
Update matrices_and_transforms.rst
ntlblpm Nov 17, 2024
e163152
Document `rand_weighted()` in Random number generation (#10283)
Calinou Nov 18, 2024
8b1a1b6
Improved style for cross-language examples.
wlsnmrk Oct 8, 2023
eb2a0a0
Fix wrong editor setting in Overview of Debugging Tools
tetrapod00 Nov 19, 2024
4f1c986
Remove performance comparison from C# Basics
tetrapod00 Nov 19, 2024
d104230
Add dev_build and dev_mode flags to scons compilation instructions fo…
jonathansekela Sep 29, 2024
3eb1469
Add FAQ entry "Which programming language is fastest?"
tetrapod00 Nov 19, 2024
032be9e
Clarify Area2D warning behavior (#10173)
Kushal-Dev94 Nov 21, 2024
ce1be2c
Add GDScript naming convention summary table
tetrapod00 Nov 20, 2024
d560aac
Update PackedArray explanation to match Godot 4.0 behavior (#10304)
mechalynx Nov 22, 2024
250aefc
Delete mention of OpenGL ES 2
dustdfg Nov 22, 2024
d9964f7
Mention documentation comments in GDScript basics
Calinou Oct 16, 2024
7b0674e
Document focus StyleBox caveats in Introduction to GUI skinning
Calinou Nov 23, 2024
13a47e3
Remove link to Reddit list of tutorials
tetrapod00 Nov 24, 2024
54dd8c1
Use Stretch Ratio instead of prior Ratio terminology
tgnottingham Nov 23, 2024
627bd0e
Remove wiki reference in Introduction to 3D
tetrapod00 Nov 24, 2024
ccf9538
update groups image in saving_games tutorial
syntaxerror247 Nov 25, 2024
c66f811
Document `generate_bundle=yes` SCons option in Compiling for macOS an…
Calinou Oct 16, 2024
4302a98
Fix wording of OpenGL ES support on desktop in Internal rendering arc…
danila-zol Nov 26, 2024
68eb940
Update C# Rider install steps for now built-in plugin "Godot Support"…
RB35 Nov 27, 2024
dc92545
Remove instructions on setting up Pyston for faster development
Calinou Nov 29, 2024
83d7bb5
Fix outdated reference to `godot.tools.html` in Compiling for the Web
Calinou Nov 29, 2024
43ef9a7
Update saving_games.rst
ntlblpm Nov 29, 2024
4ba3e37
Replace mentions of Reference with RefCounted
quinnyo Nov 29, 2024
3489cc5
Update file_access.h location
esainane Nov 28, 2024
5dd44e6
Merge pull request #10347 from mhilbrunner/4.3-cherrypicks
mhilbrunner Nov 30, 2024
f9e72e2
CI: Integrate pre-commit for style checks
mhilbrunner Nov 30, 2024
522bc83
Merge pull request #10348 from mhilbrunner/pre-commit
mhilbrunner Nov 30, 2024
50f2139
Merge pull request #10349 from godotengine/4.3
mhilbrunner Nov 30, 2024
f911b13
Add note about uniform buffer size limit to Shading Language
tetrapod00 Oct 27, 2024
c2d0206
Tweak constant example in Shading language to avoid referring to rese…
Calinou Oct 29, 2024
4fd1d23
Clarify COLOR and TEXTURE in CanvasItem shaders
tetrapod00 Oct 18, 2024
95a3d64
Merge pull request #10356 from tetrapod00/cherrypick-shader
tetrapod00 Nov 30, 2024
9add6a4
Merge pull request #10357 from tetrapod00/update-stable
tetrapod00 Nov 30, 2024
7a79288
Restore old menu
Piralein Nov 2, 2024
8b18832
Mark Haxe GDExtension bindings as archived (#10330)
esainane Dec 2, 2024
9d6eb2b
Fix grammar in Using tilesets (#10360)
ntlblpm Dec 1, 2024
c24ffc1
Document physics spiral of death performance issue in Troubleshooting…
Calinou Oct 16, 2024
4b58306
a new intro to 2d content, similar to 3d
vgezer Jul 14, 2024
ab47627
Add color constants reference to BBCode in RichTextLabel
Calinou Oct 10, 2024
faac424
Add links to project setting mentions
tetrapod00 Oct 14, 2024
47831b0
Merge pull request #10363 from mhilbrunner/4.3-cherry-picks
mhilbrunner Dec 3, 2024
4b616e1
Merge pull request #10364 from godotengine/4.3
mhilbrunner Dec 3, 2024
a270225
Merge commit godotengine/godot-docs@4b616e14445484bda9a82b8b7db7af952…
Spartan322 Dec 22, 2024
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
32 changes: 32 additions & 0 deletions about/faq.rst
Original file line number Diff line number Diff line change
@@ -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?
-----------------------------------------

5 changes: 4 additions & 1 deletion community/tutorials.rst
Original file line number Diff line number Diff line change
@@ -3,7 +3,10 @@
Tutorials and resources
=======================

This is a list of third-party tutorials and resources created by the Godot community. For resources, remember that there is the official `Godot Asset Library <https://godotengine.org/asset-library/asset>`_ full of official and community resources too! Also, have a look at this `huge list over at Reddit <https://www.reddit.com/r/godot/comments/an0iq5/godot_tutorials_list_of_video_and_written/>`_.
This is a list of third-party tutorials and resources created by the Godot
community. For resources, remember that there is the official
`Godot Asset Library <https://godotengine.org/asset-library/asset>`_ full of
official and community resources too!

Think there is something missing here? Feel free to submit a `Pull Request <https://github.com/godotengine/godot-docs/blob/master/community/tutorials.rst>`_ as always.

45 changes: 18 additions & 27 deletions contributing/development/compiling/compiling_for_ios.rst
Original file line number Diff line number Diff line change
@@ -20,9 +20,6 @@ Requirements
Xcode and need to install iOS support, go to *Xcode -> Settings... -> Platforms*.
- Go to *Xcode -> Settings... -> Locations -> Command Line Tools* and select
an installed version. Even if one is already selected, re-select it.

If you are building the ``master`` branch:

- Download and follow README instructions to build a static ``.xcframework``
from the `MoltenVK SDK <https://github.com/KhronosGroup/MoltenVK#fetching-moltenvk-source-code>`__.

@@ -49,46 +46,40 @@ If you are building the ``master`` branch:
Compiling
---------

Open a Terminal, go to the root dir of the engine source code and type:
Open a Terminal, go to the root folder of the engine source code and type
the following to compile a debug build:

::

scons platform=ios target=template_debug
scons platform=ios target=template_debug generate_bundle=yes

for a debug build, or:
To compile a release build:

::

scons platform=ios target=template_release

for a release build (check ``platform/ios/detect.py`` for the compiler
flags used for each configuration).
scons platform=ios target=template_release generate_bundle=yes

Alternatively, you can run
Alternatively, you can run the following command for Xcode simulator libraries (optional):

::

scons platform=ios target=template_debug ios_simulator=yes arch=x86_64
scons platform=ios target=template_debug ios_simulator=yes arch=arm64
scons platform=ios target=template_debug ios_simulator=yes arch=x86_64 generate_bundle=yes

for a Simulator libraries.
These simulator libraries cannot be used to run the exported project on the
target device. Instead, they can be used to run the exported project directly on
your Mac while still testing iOS platform-specific functionality.

To create an Xcode project like in the official builds, you need to use the
template located in ``misc/dist/ios_xcode``. The release and debug libraries
should be placed in ``libgodot.ios.debug.xcframework`` and ``libgodot.ios.release.xcframework`` respectively.

::

cp -r misc/dist/ios_xcode .

cp libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
lipo -create libgodot.ios.template_debug.arm64.simulator.a libgodot.ios.template_debug.x86_64.simulator.a -output ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a

cp libgodot.ios.template_release.arm64.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
lipo -create libgodot.ios.template_release.arm64.simulator.a libgodot.ios.template_release.x86_64.simulator.a -output ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a

The MoltenVK static ``.xcframework`` folder must also be placed in the ``ios_xcode``
folder once it has been created.
should be placed in ``libgodot.ios.debug.xcframework`` and
``libgodot.ios.release.xcframework`` respectively. This process can be automated
by using the ``generate_bundle=yes`` option on the *last* SCons command used to
build export templates (so that all binaries can be included).

The MoltenVK static ``.xcframework`` folder must also be placed in the
``ios_xcode`` folder once it has been created. MoltenVK is always statically
linked on iOS; there is no dynamic linking option available, unlike macOS.

Run
---
37 changes: 6 additions & 31 deletions contributing/development/compiling/compiling_for_linuxbsd.rst
Original file line number Diff line number Diff line change
@@ -248,6 +248,12 @@ Start a terminal, go to the root dir of the engine source code and type:
``linuxbsd``. If you are looking to compile Godot 3.x, make sure to use the
`3.x branch of this documentation <https://docs.godotengine.org/en/3.6/development/compiling/compiling_for_x11.html>`__.

.. tip::
If you are compiling Godot to make changes or contribute to the engine,
you may want to use the SCons options ``dev_build=yes`` or ``dev_mode=yes``.
See :ref:`doc_introduction_to_the_buildsystem_development_and_production_aliases`
for more info.

If all goes well, the resulting binary executable will be placed in the
"bin" subdirectory. This executable file contains the whole engine and
runs without any dependencies. Executing it will bring up the Project
@@ -573,34 +579,3 @@ running ``scons -h``, then looking for options starting with ``builtin_``.
across Linux distributions anymore. Do not use this approach for creating
binaries you intend to distribute to others, unless you're creating a
package for a Linux distribution.

Using Pyston for faster development
-----------------------------------

You can use `Pyston <https://www.pyston.org/>`__ to run SCons. Pyston is a JIT-enabled
implementation of the Python language (which SCons is written in). It is currently
only compatible with Linux. Pyston can speed up incremental builds significantly,
often by a factor between 1.5× and 2×. Pyston can be combined with Clang and LLD
to get even faster builds.

- Download the `latest portable Pyston release <https://github.com/pyston/pyston/releases/latest>`__.
- Extract the portable ``.tar.gz`` to a set location, such as ``$HOME/.local/opt/pyston/`` (create folders as needed).
- Use ``cd`` to reach the extracted Pyston folder from a terminal,
then run ``./pyston -m pip install scons`` to install SCons within Pyston.
- To make SCons via Pyston easier to run, create a symbolic link of its wrapper
script to a location in your ``PATH`` environment variable::

ln -s ~/.local/opt/pyston/bin/scons ~/.local/bin/pyston-scons

- Instead of running ``scons <build arguments>``, run ``pyston-scons <build arguments>``
to compile Godot.

If you can't run ``pyston-scons`` after creating the symbolic link,
make sure ``$HOME/.local/bin/`` is part of your user's ``PATH`` environment variable.

.. note::

Alternatively, you can run ``python -m pip install pyston_lite_autoload``
then run SCons as usual. This will automatically load a subset of Pyston's
optimizations in any Python program you run. However, this won't bring as
much of a performance improvement compared to installing "full" Pyston.
74 changes: 28 additions & 46 deletions contributing/development/compiling/compiling_for_macos.rst
Original file line number Diff line number Diff line change
@@ -59,6 +59,12 @@ To support both architectures in a single "Universal 2" binary, run the above tw

lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal

.. tip::
If you are compiling Godot to make changes or contribute to the engine,
you may want to use the SCons options ``dev_build=yes`` or ``dev_mode=yes``.
See :ref:`doc_introduction_to_the_buildsystem_development_and_production_aliases`
for more info.

If all goes well, the resulting binary executable will be placed in the
``bin/`` subdirectory. This executable file contains the whole engine and
runs without any dependencies. Executing it will bring up the Project
@@ -119,70 +125,46 @@ To build macOS export templates, you have to compile using the targets without
the editor: ``target=template_release`` (release template) and
``target=template_debug``.

Official templates are universal binaries which support both Intel x86_64 and
ARM64 architectures. You can also create export templates that support only one
of those two architectures by leaving out the ``lipo`` step below.
Official templates are *Universal 2* binaries which support both ARM64 and Intel
x86_64 architectures.

- For Intel x86_64::
- To support ARM64 (Apple Silicon) + Intel x86_64::

scons platform=macos target=template_release arch=x86_64
scons platform=macos target=template_debug arch=arm64
scons platform=macos target=template_release arch=arm64
scons platform=macos target=template_debug arch=x86_64
scons platform=macos target=template_release arch=x86_64 generate_bundle=yes

- For Arm64 (Apple M1)::
- To support ARM64 (Apple Silicon) only (smaller file size, but less compatible with older hardware)::

scons platform=macos target=template_release arch=arm64
scons platform=macos target=template_debug arch=arm64

To support both architectures in a single "Universal 2" binary, run the above
two commands blocks and then use ``lipo`` to bundle them together::

lipo -create bin/godot.macos.template_release.x86_64 bin/godot.macos.template_release.arm64 -output bin/godot.macos.template_release.universal
lipo -create bin/godot.macos.template_debug.x86_64 bin/godot.macos.template_debug.arm64 -output bin/godot.macos.template_debug.universal
scons platform=macos target=template_release arch=arm64 generate_bundle=yes

To create an ``.app`` bundle like in the official builds, you need to use the
template located in ``misc/dist/macos_template.app``. The release and debug
builds should be placed in ``macos_template.app/Contents/MacOS`` with the names
``godot_macos_release.universal`` and ``godot_macos_debug.universal`` respectively. You can do so
with the following commands (assuming a universal build, otherwise replace the
``.universal`` extension with the one of your arch-specific binaries)::

cp -r misc/dist/macos_template.app .
mkdir -p macos_template.app/Contents/MacOS
cp bin/godot.macos.template_release.universal macos_template.app/Contents/MacOS/godot_macos_release.universal
cp bin/godot.macos.template_debug.universal macos_template.app/Contents/MacOS/godot_macos_debug.universal
chmod +x macos_template.app/Contents/MacOS/godot_macos*
template located in ``misc/dist/macos_template.app``. This process can be automated by using
the ``generate_bundle=yes`` option on the *last* SCons command used to build export templates
(so that all binaries can be included). This option also takes care of calling ``lipo`` to create
an *Universal 2* binary from two separate ARM64 and x86_64 binaries (if both were compiled beforehand).

.. note::

If you are building the ``master`` branch, you also need to include support
for the MoltenVK Vulkan portability library. By default, it will be linked
statically from your installation of the Vulkan SDK for macOS.
You can also choose to link it dynamically by passing ``use_volk=yes`` and
including the dynamic library in your ``.app`` bundle::
You also need to include support for the MoltenVK Vulkan portability
library. By default, it will be linked statically from your installation of
the Vulkan SDK for macOS. You can also choose to link it dynamically by
passing ``use_volk=yes`` and including the dynamic library in your ``.app``
bundle::

mkdir -p macos_template.app/Contents/Frameworks
cp <Vulkan SDK path>/macOS/libs/libMoltenVK.dylib macos_template.app/Contents/Frameworks/libMoltenVK.dylib

In most cases, static linking should be preferred as it makes distribution
easier. The main upside of dynamic linking is that it allows updating
MoltenVK without having to recompile export templates.

You can then zip the ``macos_template.app`` folder to reproduce the ``macos.zip``
template from the official Godot distribution::

zip -q -9 -r macos.zip macos_template.app

Using Pyston for faster development
-----------------------------------

You can use `Pyston <https://www.pyston.org/>`__ to run SCons. Pyston is a
JIT-enabled implementation of the Python language (which SCons is written in).
Its "full" version is currently only compatible with Linux, but Pyston-lite is
also compatible with macOS (both x86 and ARM). Pyston can speed up incremental
builds significantly, often by a factor between 1.5× and 2×. Pyston can be
combined with alternative linkers such as LLD or Mold to get even faster builds.

To install Pyston-lite, run ``python -m pip install pyston_lite_autoload`` then
run SCons as usual. This will automatically load a subset of Pyston's
optimizations in any Python program you run. However, this won't bring as much
of a performance improvement compared to installing "full" Pyston (which
currently can't be done on macOS).
zip -r9 macos.zip macos_template.app

Cross-compiling for macOS from Linux
------------------------------------
2 changes: 1 addition & 1 deletion contributing/development/compiling/compiling_for_web.rst
Original file line number Diff line number Diff line change
@@ -125,7 +125,7 @@ server requirements.
python platform/web/serve.py

This will serve the contents of the ``bin/`` folder and open the default web
browser automatically. In the page that opens, access ``godot.tools.html``
browser automatically. In the page that opens, access ``godot.editor.html``
and you should be able to test the web editor this way.

Note that for production use cases, this Python-based web server should not
6 changes: 6 additions & 0 deletions contributing/development/compiling/compiling_for_windows.rst
Original file line number Diff line number Diff line change
@@ -146,6 +146,12 @@ the engine source code (using ``cd``) and type:
.. note:: When compiling with multiple CPU threads, SCons may warn about
pywin32 being missing. You can safely ignore this warning.

.. tip::
If you are compiling Godot to make changes or contribute to the engine,
you may want to use the SCons options ``dev_build=yes`` or ``dev_mode=yes``.
See :ref:`doc_introduction_to_the_buildsystem_development_and_production_aliases`
for more info.

If all goes well, the resulting binary executable will be placed in
``C:\godot\bin\`` with the name ``godot.windows.editor.x86_32.exe`` or
``godot.windows.editor.x86_64.exe``. By default, SCons will build a binary matching
Original file line number Diff line number Diff line change
@@ -139,6 +139,8 @@ run projects but does not include the editor or the Project Manager.

scons platform=<platform> target=editor/template_debug/template_release

.. _doc_introduction_to_the_buildsystem_development_and_production_aliases:

Development and production aliases
----------------------------------

Original file line number Diff line number Diff line change
@@ -269,7 +269,7 @@ calls into ``std::istream``.

.. code-block:: cpp
#include "core/os/file_access.h"
#include "core/io/file_access.h"
#include <istream>
#include <streambuf>
@@ -304,7 +304,7 @@ References

- `istream <https://cplusplus.com/reference/istream/istream/>`_
- `streambuf <https://cplusplus.com/reference/streambuf/streambuf/?kw=streambuf>`_
- `core/io/file_access.h <https://github.com/godotengine/godot/blob/master/core/os/file_access.h>`_
- `core/io/file_access.h <https://github.com/godotengine/godot/blob/master/core/io/file_access.h>`_

Registering the new file format
-------------------------------
Original file line number Diff line number Diff line change
@@ -228,8 +228,8 @@ support Vulkan. OpenGL 3.3 Core Profile is used on desktop platforms to run this
driver, as most graphics drivers on desktop don't support OpenGL ES.
WebGL 2.0 is used for web exports.

It is possible to use the use of OpenGL ES 3.0 directly on desktop platforms
using the ``--rendering-driver opengl3_es`` command line argument, although this
It is possible to use OpenGL ES 3.0 directly on desktop platforms
by passing the ``--rendering-driver opengl3_es`` command line argument, although this
will only work on graphics drivers that feature native OpenGL ES support (such
as Mesa).

2 changes: 1 addition & 1 deletion contributing/development/core_and_modules/object_class.rst
Original file line number Diff line number Diff line change
@@ -274,7 +274,7 @@ References:
Resources
----------

:ref:`Resource <class_resource>` inherits from Reference, so all resources
:ref:`Resource <class_resource>` inherits from RefCounted, so all resources
are reference counted. Resources can optionally contain a path, which
reference a file on disk. This can be set with ``resource.set_path(path)``,
though this is normally done by the resource loader. No two different
15 changes: 13 additions & 2 deletions getting_started/first_2d_game/02.player_scene.rst
Original file line number Diff line number Diff line change
@@ -20,8 +20,16 @@ what the object *is*. Click the "Other Node" button and add an :ref:`Area2D

.. image:: img/add_node.webp

Godot will display a warning icon next to the node in the scene tree. You can
ignore it for now. We will address it later.
When you add the ``Area2D`` node, Godot will display the following **warning icon**
next to it in the scene tree:

.. image:: img/no_shape_warning.webp

This warning tells us that the ``Area2D`` node requires a shape to detect collisions or overlaps.
We can **ignore the warning temporarily** because we will first set up the player's visuals
(using an animated sprite). Once the visuals are ready, we will add a collision shape as a child
node. This will allow us to accurately size and position the shape based on the sprite’s appearance.


With ``Area2D`` we can detect objects that overlap or run into the player.
Change the node's name to ``Player`` by double-clicking on it. Now that we've
@@ -98,6 +106,9 @@ When you're finished, your ``Player`` scene should look like this:

.. image:: img/player_scene_nodes.webp

Once this is done, the warning on the ``Area2D`` node will disappear, as it now has
a shape assigned and can interact with other objects.

Make sure to save the scene again after these changes.

In the next part, we'll add a script to the player node to move and animate it.
Binary file not shown.
7 changes: 3 additions & 4 deletions tutorials/3d/introduction_to_3d.rst
Original file line number Diff line number Diff line change
@@ -19,10 +19,9 @@ which are almost identical to their 2D counterparts.
`Github repository <https://github.com/godotengine/tps-demo>`__ or the
:ref:`Asset Library <doc_project_manager_downloading_demos>`.

In 3D, math is a little more complex than in 2D, so also checking the
:ref:`doc_vector_math` entry in the wiki (which was especially created for game
developers, not mathematicians or engineers) will help pave the way for you
to develop 3D games efficiently.
In 3D, math is a little more complex than in 2D. For an introduction to the
relevant math written for game developers, not mathemeticians or engineers,
check out :ref:`doc_vector_math` and :ref:`doc_using_transforms`.

3D workspace
~~~~~~~~~~~~
Loading