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

Web exports guide #15

Merged
merged 2 commits into from
Dec 12, 2023
Merged

Web exports guide #15

merged 2 commits into from
Dec 12, 2023

Conversation

Esption
Copy link
Contributor

@Esption Esption commented Nov 27, 2023

Not sure about the markdown formatting and such, but otherwise I'm happy with this. Hoping to get something out there to start some discussion/suggestions.

Copy link

@PgBiel PgBiel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job! Thanks for bringing everything together, it's looking great. 👍

Mostly nitpicks incoming now. 😄


# Intro to Web Builds

Web builds are a fair bit more to get started with compared to native builds.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this might sound a bit more natural:

Suggested change
Web builds are a fair bit more to get started with compared to native builds.
Web builds are a fair bit more difficult to get started with compared to native builds.

# Intro to Web Builds

Web builds are a fair bit more to get started with compared to native builds.
This will be a complete guide on how to get things compiled.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be a bit more descriptive:

Suggested change
This will be a complete guide on how to get things compiled.
This will be a complete guide on how to properly compile your game using `gdext` to WebAssembly, which will allow you to use `gdext` in the web.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the extension, but I think "properly" is not needed 😉

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree! Feel free to remove "properly"


Web builds are a fair bit more to get started with compared to native builds.
This will be a complete guide on how to get things compiled.
Setting up a web server is out-of-scope for this guide, and best found elsewhere.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Being a bit more precise (also I think no hyphens are needed here):

Suggested change
Setting up a web server is out-of-scope for this guide, and best found elsewhere.
Setting up a web server to host your game in is out of scope for this guide, and is best explained elsewhere.

This will be a complete guide on how to get things compiled.
Setting up a web server is out-of-scope for this guide, and best found elsewhere.

- Web support with `gdext` is experimental and should be understood as such before proceeding.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do the gdext docs have support for warning boxes? I believe that'd be ideal here. Otherwise, we could add something in bold like WARNING:.

Also, I think it may be interesting to point out explicitly here that it "may have bugs we aren't aware of".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you'll get a compile error if you don't enable the experimental-wasm feature flag. Beyond that I'm not sure.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do have warning boxes, see ```admonish tags elsewhere.

But only the 2nd bullet point is a warning. The first can also be moved up to the "This will be a complete guide..." section.

## Installing Pre-Requisites

- Install a nightly build of `rustc`, the `wasm32-unknown-emscripten` target for `rustc`, and `rust-src`.
Assuming that Rust was installed with rustup, this is quite simple.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency:

Suggested change
Assuming that Rust was installed with rustup, this is quite simple.
Assuming that Rust was installed with `rustup`, this is quite simple.

Comment on lines 74 to 76
- Edit the project's `.gdextension` to include the web path.
This is probably at `godot/EXTENSIONNAME.gdextension`.
The format will be similar to the following
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clearer (what is the "web path"?)

Suggested change
- Edit the project's `.gdextension` to include the web path.
This is probably at `godot/EXTENSIONNAME.gdextension`.
The format will be similar to the following
- Edit the project's `.gdextension` file to include the path to the compiled WASM binary.
The file to edit will probably be at `godot/EXTENSIONNAME.gdextension`.
The format will be similar to the following

```

- Compile the code.
It is necessary to both use the nightly compiler and specify to build std[^3], along with specifying the emscripten target.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotta check if the monospace doesn't break the footnote, but I believe it shouldn't

Suggested change
It is necessary to both use the nightly compiler and specify to build std[^3], along with specifying the emscripten target.
It is necessary to both use the nightly compiler and specify to build `std`[^3], along with specifying the Emscripten target.

cargo +nightly build -Zbuild-std --target wasm32-unknown-emscripten
```

[^3]: The primary reason for this is it's necessary to compile with `-sSHARED_MEMORY` enabled, but the shipped `std` is not, so building std is a requirement. Related info on about wasm support can be found [here](https://github.com/rust-lang/rust/issues/77839).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consistency and other things

Suggested change
[^3]: The primary reason for this is it's necessary to compile with `-sSHARED_MEMORY` enabled, but the shipped `std` is not, so building std is a requirement. Related info on about wasm support can be found [here](https://github.com/rust-lang/rust/issues/77839).
[^3]: The primary reason for this is it's necessary to compile with `-sSHARED_MEMORY` enabled, which the shipped `std` doesn't, so building `std` is a requirement. Related info on WASM support can be found [here](https://github.com/rust-lang/rust/issues/77839).

Comment on lines 111 to 114
- Back from the main editor screen, there's an option to run the web debug build without needing to do an export or set up a web server.
At the top-right, choose `Remote Debug > Run in Browser` and it will automatically open up a web browser.
If your default browser is not Chrome or Edge, you'll need to copy the URL and paste it into one.[^4]
![Location of built-in web server](images/web-browser_run.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Back from the main editor screen, there's an option to run the web debug build without needing to do an export or set up a web server.
At the top-right, choose `Remote Debug > Run in Browser` and it will automatically open up a web browser.
If your default browser is not Chrome or Edge, you'll need to copy the URL and paste it into one.[^4]
![Location of built-in web server](images/web-browser_run.png)
- Back to the main editor screen, there's an option to run the web debug build (_not_ release) locally without needing to fully export the game or set up a web server.
At the top right, choose `Remote Debug > Run in Browser` and it will automatically open up a web browser.
If your default browser is not Chromium-based (e.g. if you use Firefox or Safari, currently unsupported), you'll need to copy the URL (which is usually at `localhost:8060`) and open it in a supported browser, such as Chrome or Edge.[^4]
![Location of built-in web server](images/web-browser_run.png)

Comment on lines 123 to 125
- Currently the only option for wasm debugging is
[This extension](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb?pli=1)
for Chrome. It adds support for breakpoints and a memory viewer into the F12 menu.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consistency etc.

Suggested change
- Currently the only option for wasm debugging is
[This extension](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb?pli=1)
for Chrome. It adds support for breakpoints and a memory viewer into the F12 menu.
- Currently the only option for WASM debugging is
[this extension](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb?pli=1)
for Chrome. It adds support for breakpoints and a memory viewer into the F12 menu.

Copy link
Member

@Bromeon Bromeon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot, this is a great write-up! 👍
Much more in detail than my short list 😅

Do you also want to mention the dodge-the-creeps example, which is somewhat prepared already?


The entire page is now consisting of bullet points, I don't think this is necessary. Tutorial style guides have continuous flow, so I think you could de-dent most text and use regular prose.

Unordered bullet lists can be used in places where you explain multiple things, but their order doesn't really matter. Ordered lists can be used when order matters or you later want to refer back to a certain point, e.g. you analyze a code snippet and explain the symbols occurring in order of appearance in code. But I wouldn't generally use lists for tutorial steps (as the whole book is such). See also Hello World page.

src/SUMMARY.md Outdated
@@ -15,6 +15,7 @@
- [Compatibility and stability](toolchain/compatibility.md)
- [Selecting a Godot version](toolchain/godot-version.md)
- [Debugging](toolchain/debugging.md)
- [Web Target Guide](toolchain/web-guide.md)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [Web Target Guide](toolchain/web-guide.md)
- [Export to Web](toolchain/export-web.md)

# Intro to Web Builds

Web builds are a fair bit more to get started with compared to native builds.
This will be a complete guide on how to get things compiled.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the extension, but I think "properly" is not needed 😉

This will be a complete guide on how to get things compiled.
Setting up a web server is out-of-scope for this guide, and best found elsewhere.

- Web support with `gdext` is experimental and should be understood as such before proceeding.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do have warning boxes, see ```admonish tags elsewhere.

But only the 2nd bullet point is a warning. The first can also be moved up to the "This will be a complete guide..." section.

Comment on lines 23 to 24
- Install a nightly build of `rustc`, the `wasm32-unknown-emscripten` target for `rustc`, and `rust-src`.
Assuming that Rust was installed with `rustup`, this is quite simple.
Copy link
Member

@Bromeon Bromeon Nov 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add that nightly is needed for the build flag -Zbuild-std.


```sh
rustup toolchain install nightly
rustup component add rust-src --toolchain nightly
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this 2nd step really needed? AFAIR I never did this.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It wasn't necessary for me, but someone in the discord somehow didn't have rust-src. So, I think best to leave it there as a just in case? Shouldn't do anything if it's already installed, at least.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea I was installing everything from scratch in a Linux VM and rustup didn't seem to install it by default.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, it looks like it's required:

rust-src — This is a local copy of the source code of the Rust standard library. This can be used by some tools, such as RLS, to provide auto-completion for functions within the standard library; Miri which is a Rust interpreter; and Cargo's experimental build-std feature, which allows you to rebuild the standard library locally.

```

- At the same level as your `Cargo.toml`, create a `.config` directory and inside of that,
create a `config.toml` file (if one doesn't already exist). The contents of this file should be as follows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
create a `config.toml` file (if one doesn't already exist). The contents of this file should be as follows
create a `config.toml` file (if one doesn't already exist). The contents of this file should be as follows:

```

- Edit the project's `.gdextension` file to include support for web exports.
This file will probably be at `godot/EXTENSIONNAME.gdextension`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This file will probably be at `godot/EXTENSIONNAME.gdextension`.
This file will probably be at `godot/{YourCrate}.gdextension`.

to be consistent with Hello World.


- Edit the project's `.gdextension` file to include support for web exports.
This file will probably be at `godot/EXTENSIONNAME.gdextension`.
The format will be similar to the following
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The format will be similar to the following
The format will be similar to the following:

---


## **KNOWN CAVEATS**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not use SCREAMING CASE here.

Suggested change
## **KNOWN CAVEATS**
## Known caveats

Or alternatively, an ```admonish warning title="Known caveats" box.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be named web-browser-run.png (dashes)

---


## Set up and Test in the Godot Editor
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Set up and Test in the Godot Editor
## Godot Editor setup

@Esption
Copy link
Contributor Author

Esption commented Nov 28, 2023

Thanks @Bromeon, didn't know about admonish stuff before :) Hopefully all is well, and I can squash to a single commit then.

godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["experimental-wasm", "lazy-function-tables"] }
```

At the same level as your `Cargo.toml`, create a `.config` directory and inside of that,
Copy link

@PgBiel PgBiel Nov 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Edit: turns out I had already suggested this above, sorry lol
Keeping this here anyway for future reference :p

Suggested change
At the same level as your `Cargo.toml`, create a `.config` directory and inside of that,
At the same level as your `Cargo.toml`, create a `.cargo` directory and, inside of that,

Copy link
Member

@Bromeon Bromeon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rendered it now and found a few more things 😉 the footnotes are great, thanks a lot for the thorough descriptions and external links!

In this repo, no need to squash in a single commit, I can do squash-on-merge.

This will be a complete guide on how to get things compiled.
However, setting up a web server to host and share your game is considered out of scope of this guide, and is best explained elsewhere.

Information to consider before starting:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should no longer be necessary, the yellow warning box draws enough attention.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 14?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, only this part:

Information to consider before starting:

---


## Installing Pre-Requisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Installing Pre-Requisites
## Installing pre-requisites

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^

## Installing Pre-Requisites

Install a nightly build of `rustc`, the `wasm32-unknown-emscripten` target for `rustc`, and `rust-src`.
The reason that a nightly `rustc` is required is that nightly is required to build `std` (`-Zbuild-std`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The reason that a nightly `rustc` is required is that nightly is required to build `std` (`-Zbuild-std`).
The reason why nightly `rustc` is required is the unstable flag to build `std` ([`-Zbuild-std`][flag-build-std]).

With

[flag-build-std]: https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features

rustup target add wasm32-unknown-emscripten --toolchain nightly
```

Next, install Emscripten. The simplest way to achieve this is to install `emsdk` from the git repo. Recommended to use version 3.1.39 for now[^1]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Next, install Emscripten. The simplest way to achieve this is to install `emsdk` from the git repo. Recommended to use version 3.1.39 for now[^1]
Next, install Emscripten. The simplest way to achieve this is to install [`emsdk` from the git repo][emsdk-git].
We recommend version 3.1.39 for now.[^1]

with:

[emsdk-git]: https://github.com/emscripten-core/emsdk#readme

(also added trailing full-stop).

source ./emsdk.sh (or ./emsdk.bat on windows)
```

It would also be HIGHLY recommended to follow the instructions in the terminal to add `emcc`[^2] to your `PATH`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It would also be HIGHLY recommended to follow the instructions in the terminal to add `emcc`[^2] to your `PATH`.
It would also be **highly** recommended to follow the instructions in the terminal to add `emcc`[^2] to your `PATH`.

- Create a `.cargo` directory at the same level as your `Cargo.toml`.
- Inside of that directory, create a `config.toml` file.

The contents of this file need to contain the following:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The contents of this file need to contain the following:
This file needs to contain the following:

[target.wasm32-unknown-emscripten]
rustflags = [
"-C", "link-args=-sSIDE_MODULE=2",
"-C", "link-args=-sUSE_PTHREADS=1",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the new flag already supported on our suggested minimum version?

  • If yes, I don't see any reason to keep the deprecated one around.
  • If no, we should use the deprecated one with a comment, that in newer Emscripten versions, a different flag is used.

Comment on lines 84 to 85
web.debug.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/debug/EXTENSIONNAME.wasm"
web.release.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/release/EXTENSIONNAME.wasm"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
web.debug.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/debug/EXTENSIONNAME.wasm"
web.release.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/release/EXTENSIONNAME.wasm"
...
[libraries]
...
web.debug.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/debug/EXTENSIONNAME.wasm"
web.release.wasm32 = "res://../rust/target/wasm32-unknown-emscripten/release/EXTENSIONNAME.wasm"

Also, would you need to replace EXTENSIONNAME with {YourCrate} here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about the flag! Actually didn't notice that I had an older one on my personal config file.

This file will probably be at `godot/{YourCrate}.gdextension`.
The format will be similar to the following:

```gdextension
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using ```ini here would at least provide some syntax highlighting.

Comment on lines +111 to +113
Add a web export in the Godot Editor. In the top menu bar, go to `Project > Export...` and configure it there.
Make sure to turn on the `Extensions Support` checkbox.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention to download export templates if they are not yet configured?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you get a prompt if it's missing to download it, and should be downloaded at the same time you'd download templates for any other export. I'd have to intentionally trigger that and see about that.

Copy link

@PgBiel PgBiel Nov 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the last time I tried it in my VM, I believe the Export window displays some red text at the bottom suggesting you need Export Templates, but I think you still need to click some buttons to prompt the download. Could be useful to list the steps needed, but very briefly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. It's fine to not explicitly mention it then.

Comment on lines +111 to +113
Add a web export in the Godot Editor. In the top menu bar, go to `Project > Export...` and configure it there.
Make sure to turn on the `Extensions Support` checkbox.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. It's fine to not explicitly mention it then.

[target.wasm32-unknown-emscripten]
rustflags = [
"-C", "link-args=-sSIDE_MODULE=2",
"-C", "link-args=-pthread",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for changing this!
Sorry I wasn't very clear before, maybe I'd still mention the old one just in case someone is used to that (otherwise they might wonder where it is).

That is:

Suggested change
"-C", "link-args=-pthread",
"-C", "link-args=-pthread", # was -sUSE_PTHREADS=1 in earlier versions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What part not to mention? Sorry. If you mean line 112 then... that's kinda confusing. I can remove the images about the error for missing templates, I guess. They don't really add much besides push the page length; it feels like anyway.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just apply my suggestion here, so that people familiar with the old flag aren't confused 🙂

I can remove the images about the error for missing templates, I guess. They don't really add much besides push the page length; it feels like anyway.

Yeah, would be good to focus more on the WASM topic, you can remove them.

Copy link
Member

@Bromeon Bromeon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I marked some pending comments, so they're not overlooked.

After the web-missing-template.png is removed, there's still web-export.png which is 168 kB. Do you think it's possible to reduce the size without losing quality?

---


## Installing Pre-Requisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^

It is likely to due a bug, but is still being investigated. Edit the line to something like the following:

```toml
godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["experimental-wasm", "lazy-function-tables"] }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^

godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["experimental-wasm", "lazy-function-tables"] }
```

If you do not already have `.cargo/config.toml` file, do the following:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^

[target.wasm32-unknown-emscripten]
rustflags = [
"-C", "link-args=-sSIDE_MODULE=2",
"-C", "link-args=-pthread",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just apply my suggestion here, so that people familiar with the old flag aren't confused 🙂

I can remove the images about the error for missing templates, I guess. They don't really add much besides push the page length; it feels like anyway.

Yeah, would be good to focus more on the WASM topic, you can remove them.

[this extension](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb?pli=1)
for Chrome. It adds support for breakpoints and a memory viewer into the F12 menu.

---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still a horizontal line 😉

## Debugging

Currently the only option for WASM debugging is
[this extension](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb?pli=1)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add the name of the extension in the link text, and use the [<name of extension>][wasm-debugger] format (i.e. move the actual link to the end of the section)?

@Bromeon Bromeon added the new-topic New content added to the book label Dec 6, 2023
@Bromeon
Copy link
Member

Bromeon commented Dec 12, 2023

Addressed the last few remarks, reduced PNG size and linked to Godot export tutorial in place of troubleshooting images.

Thanks a lot for this great addition and everyone that contributed to it, especially @Esption for enduring the tough review! 🚀

@Bromeon Bromeon merged commit 87145ce into godot-rust:master Dec 12, 2023
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-topic New content added to the book
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants