diff --git a/tutorials/export/exporting_for_web.rst b/tutorials/export/exporting_for_web.rst index d260a2932..9739665bd 100644 --- a/tutorials/export/exporting_for_web.rst +++ b/tutorials/export/exporting_for_web.rst @@ -17,14 +17,40 @@ in the user's browser. .. attention:: Projects written in C# using Godot 4 currently cannot be exported to the - web. To use C# on web platforms, use Godot 3 instead. + web. See `this blog post `__ + for more information. + + To use C# on web platforms, use Godot 3 instead. .. tip:: Use the browser-integrated developer console, usually opened - with :kbd:`F12` (:kbd:`Cmd + Option + I` on macOS), to view + with :kbd:`F12` or :kbd:`Ctrl + Shift + I` (:kbd:`Cmd + Option + I` on macOS), to view **debug information** like JavaScript, engine, and WebGL errors. + If the shortcut doesn't work, it's because Godot actually captures the input. + You can still open the developer console by accessing the browser's menu. + +.. note:: + + Due to security concerns with ``SharedArrayBuffer`` due to various exploits, + the use of multiple threads for the Web platform has multiple drawbacks, + including requiring specific server-side headers and complete cross-origin isolation + (meaning no ads, nor third-party integrations on the website hosting your game). + + Since Godot 4.3, Godot supports exporting your game on a single thread, which + solves this issue. While it has some drawbacks on its own (it cannot use threads, and is + not as performant as the multi-threaded export), it doesn't require as much overhead to install. + It is also more compatible overall with stores like `itch.io ` or Web publishers like + `Poki `__ or `CrazyGames `__. The single-threaded export + works very well on macOS and iOS too, where it always had compatibility issues with multiple threads + exports. + + For these reasons, it is the preferred and now default way to export your games on the Web. + + For more information, see `this blog post about single-threaded Web export + `__. + .. seealso:: See the @@ -232,6 +258,17 @@ player to click, tap or press a key/button to enable audio, for instance when di .. warning:: Access to microphone requires a :ref:`secure context `. +.. warning:: + + Since Godot 4.3, by default Web exports will use samples instead of streams + to play audio. + + This is due to the way browsers prefer to play audio and the lack of processing power + available when exporting Web games with the **Use Threads** export option off. + + Please note that audio effects aren't yet implemented for samples. + + Networking ~~~~~~~~~~ @@ -275,13 +312,6 @@ to remap them based on model/vendor/OS due to privacy considerations. .. warning:: Requires a :ref:`secure context `. -Boot splash is not displayed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The default HTML page does not display the boot splash while loading. However, -the image is exported as a PNG file, so :ref:`custom HTML pages ` -can display it. - .. _doc_exporting_for_web_serving_the_files: Serving the files @@ -293,8 +323,8 @@ used, see :ref:`doc_customizing_html5_shell`. .. warning:: - If either :ref:`thread support or extension support ` - are enabled, the exported project will require + Only when exporting with **Use Threads**, to ensure low audio latency and the + ability to use :ref:`class_Thread` in web exports, Godot 4 web exports use `SharedArrayBuffer `__. This requires a :ref:`secure context `, while also requiring the following CORS headers to be set when serving the files: @@ -325,9 +355,7 @@ The other exported files are served as they are, next to the ``.html`` file, names unchanged. The ``.wasm`` file is a binary WebAssembly module implementing the engine. The ``.pck`` file is the Godot main pack containing your game. The ``.js`` file contains start-up code and is used by the ``.html`` file to access -the engine. The ``.png`` file contains the boot splash image. It is not used in -the default HTML page, but is included for -:ref:`custom HTML pages `. +the engine. The ``.png`` file contains the boot splash image. The ``.pck`` file is binary, usually delivered with the MIME-type :mimetype:`application/octet-stream`. The ``.wasm`` file is delivered as