Document XBOX Godot NetRumble as a sample pointer - #182
Document XBOX Godot NetRumble as a sample pointer#182Zach Hooper (XBOX) (zachhooper) wants to merge 15 commits into
Conversation
Adds sample/tutorial_netrumble/README.md describing NetRumble, the full multiplayer game built on these addons, and pointing at its repository at microsoft/XBOX-Godot-NetRumble. The folder holds documentation only. It has no project.godot and nothing is mirrored into it by the CMake build, so the docs that enumerate the four tutorial sample projects keep that count and reference NetRumble separately. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new NetRumble documentation includes a direct link to a private repo (404 for most readers) and some phrasing that can mis-set expectations about a runnable local sample.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds a documentation-only “sample pointer” under sample/tutorial_netrumble/ to surface the NetRumble full-game example (hosted externally), and threads that pointer into the repo’s sample/tutorial documentation so readers can discover it alongside the existing tutorial tracks.
Changes:
- Added
sample/tutorial_netrumble/README.mddescribing NetRumble and how it relates to this repo. - Updated top-level and docs indices to mention the NetRumble pointer alongside the four tutorial sample projects.
- Added “See also” links from each tutorial sample README to the NetRumble pointer page.
File summaries
| File | Description |
|---|---|
README.md |
Adds a top-level pointer to the NetRumble documentation page as a “full game” reference. |
docs/README.md |
Documents sample/tutorial_netrumble/ as a pointer (not a committed host) within the docs index. |
docs/getting-started.md |
Notes the NetRumble pointer in the bundled samples section and repo tree listing. |
docs/tutorials/README.md |
Adds a short paragraph pointing readers to NetRumble for a full-game reference. |
docs/gdk/sample-and-tests.md |
Clarifies NetRumble is documentation-only and not part of the four tutorial sample projects. |
sample/tutorial_netrumble/README.md |
New documentation page describing NetRumble and linking to its repository. |
sample/tutorial_gdk/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_gdk_csharp/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_playfab/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_playfab_csharp/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_integrated/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_integrated_csharp/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
sample/tutorial_gameinput/README.md |
Adds a “Full game sample” link to the NetRumble pointer in “See also”. |
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 10
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The new NetRumble README has a few concrete documentation issues (incomplete bullet wording, unclear phrasing, and an internal-only access instruction) and several sample READMEs label the pointer as a “sample” inconsistently with the doc-only intent.
Review details
Suppressed comments (7)
Previously missed (1) — in code that hasn't changed since the last review.
sample/tutorial_netrumble/README.md:24
- The phrase “mute, block and avoid” is incomplete here (it reads like three verbs without the noun they apply to). Consider clarifying that these are user lists/features (mute/block/avoid lists) to make the bullet self-contained.
sample/tutorial_netrumble/README.md:28
- “constrain handling” is grammatically incorrect/unclear in this bullet; “constrained mode handling” (or similar noun phrase) reads correctly and matches common platform terminology.
- Activity publishing, join-from-guide invites, and connectivity detection
sample/tutorial_gdk/README.md:55
- This link label says “Full game sample”, but
sample/tutorial_netrumble/is documentation-only (not a runnable sample project). To avoid implying it’s an in-repo sample host, align wording with other READMEs that use “Full game reference (external)”.
- Full game reference (external): [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
sample/tutorial_playfab/README.md:68
- This link label says “Full game sample”, but
sample/tutorial_netrumble/is documentation-only (not a runnable sample project). To avoid implying it’s an in-repo sample host, align wording with other READMEs that use “Full game reference (external)”.
- Full game sample: [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
sample/tutorial_playfab_csharp/README.md:89
- This link label says “Full game sample”, but
sample/tutorial_netrumble/is documentation-only (not a runnable sample project). To avoid implying it’s an in-repo sample host, align wording with other READMEs that use “Full game reference (external)”.
- Full game sample: [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
sample/tutorial_integrated_csharp/README.md:70
- This link label says “Full game sample”, but
sample/tutorial_netrumble/is documentation-only (not a runnable sample project). To avoid implying it’s an in-repo sample host, align wording with other READMEs that use “Full game reference (external)”.
- Full game reference (external): [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
sample/tutorial_netrumble/README.md:52
- This note tells readers of a public repo to request access from an internal squad, which is not actionable for most contributors. Consider keeping the 404/private-repo warning but removing the internal escalation line.
> The NetRumble repository is currently private, so the link above will return a 404 unless
> you have been granted access. Request access from the XBOX Developer Middleware, Samples
> and Skills squad.
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new NetRumble README has a “link above” note without an actual link and includes internal/stale access-request wording, plus two sample READMEs label the docs-only pointer as a “sample” instead of an external reference.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (3)
sample/tutorial_netrumble/README.md:51
- This note includes internal access-request instructions (“XBOX Developer Middleware, Samples and Skills squad”), which won’t be actionable for most readers and is likely to become stale. Consider keeping only the 404/private-repo explanation here.
> [!NOTE]
> The NetRumble repository is currently private, so the link above will return a 404 unless
> you have been granted access. Request access from the XBOX Developer Middleware, Samples
> and Skills squad.
sample/tutorial_playfab/README.md:68
- This entry calls NetRumble a “Full game sample”, but
tutorial_netrumble/is documentation only (and the other sample READMEs label it as an external reference). Using the same “reference (external)” wording here avoids implying it’s a runnable project in this repo.
- Full game reference (external): [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
sample/tutorial_playfab_csharp/README.md:89
- This entry calls NetRumble a “Full game sample”, but
tutorial_netrumble/is documentation only (and the other sample READMEs label it as an external reference). Using the same “reference (external)” wording here avoids implying it’s a runnable project in this repo.
- Full game reference (external): [`sample/tutorial_netrumble/`](../tutorial_netrumble/README.md)
- Files reviewed: 13/13 changed files
- Comments generated: 1
- Review effort level: Lite
There was a problem hiding this comment.
🔵 Needs a closer look
The new NetRumble pointer page contains internal-only access guidance and inconsistent “link above” wording that should be corrected before merging into public-facing documentation.
Review details
Suppressed comments (2)
sample/tutorial_netrumble/README.md:4
- The repository reference is formatted as inline code rather than a link, but later the NOTE refers to “the link above” returning 404. Consider making this an actual hyperlink so the wording and navigation match.
**This folder is a pointer, not a project.** NetRumble lives in its own repository (currently private):
`microsoft/XBOX-Godot-NetRumble`
sample/tutorial_netrumble/README.md:51
- The access instructions reference an internal squad name, which isn’t actionable for external readers (and also becomes stale once the repo is public). Prefer a more general pointer for requesting access.
> The NetRumble repository is currently private, so the link above will return a 404 unless
> you have been granted access. Request access from the XBOX Developer Middleware, Samples
> and Skills squad.
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
The changes are documentation-only and consistently add a non-breaking pointer to an external full-game reference without altering sample build/test expectations.
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
NetRumble is going public, so this page should not describe its repository as private or tell readers the link will 404. - Removes "(currently private)" from the opening line. - Removes the NOTE block about the 404 and about requesting access from an internal squad. - Adds the missing blank line before "## What it is". Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
The change set is documentation-only, consistently frames NetRumble as an external pointer (not a runnable sample), and the added links are coherent across the updated indices and sample READMEs.
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
- "Join-code matchmaking with PlayFab Lobby" -> "Join-code discovery". NetRumble uses PlayFab Lobby discovery, not Matchmaking queues or tickets, and this repository ships a separate Matchmaking surface, so the old wording pointed readers at the wrong API. - "Cloud saves" -> "Console Game Save for profile, history and counters". Game Save is the console path in NetRumble; PlayFab Game Save roaming is not used by the sample. - "constraint handling" -> "constrained-mode handling". Reverts an earlier review suggestion: constrain is the GDK lifecycle term, not a typo, and matches "suspend or constrained mode" in docs/gdk. - Xbox -> XBOX in the new pointer page and in the two adjacent lines of the sample lists this PR already touches. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The new NetRumble “Requirements” text currently implies console export support in a way that conflicts with existing repo guidance that this sample is PC-focused only.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
sample/tutorial_netrumble/README.md:46
- The Requirements section implies console export support ("Exporting to XBOX Series X|S...") which conflicts with the repo-level guidance that this sample targets XBOX on PC and does not provide specific support for XBOX Series X|S / XBOX One (see README.md:23). Consider rephrasing to make it explicit that console export requirements apply to the external NetRumble repo (and/or that console export is out of scope for this repository).
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
Two factual errors in the pointer page's description of the game. The player count is four, not eight: NetRumble's shipping game mode sets player_count = 4 in assets/tuning/mode_deathmatch.tres. The count is left unstated here rather than restated, so this page does not need editing again if it moves. The arena does not wrap. It is bounded by a static barrier of four slabs that ships bounce off and can die to, and the gameplay camera clamps to those barrier bounds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
Changes are documentation-only with valid internal links; the only remaining feedback is a minor wording/grammar nit in the new NetRumble README.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
sample/tutorial_netrumble/README.md:24
- The bullet "Multiplayer and communications privilege checks, plus per-player mute, block and avoid" reads as a sentence fragment (missing what is muted/blocked/avoided), which can confuse readers skimming the list. Consider adding the implied noun (e.g., lists) and tightening punctuation.
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
The console export path is described generically instead of naming a specific middleware provider. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
Changes are documentation-only and low risk, with only minor wording/casing nits noted in review comments.
Review details
Suppressed comments (3)
Previously missed (2) — in code that hasn't changed since the last review.
docs/README.md:56
- This uses “XBOX→PlayFab” even though the same doc references the
GDK*→Xbox*rename below; using “Xbox→PlayFab” here would better match the rest of the documentation’s casing.
sample/tutorial_netrumble/README.md:25 - In the “What it demonstrates” list, one bullet ends abruptly ("avoid" what?), and the next bullet has an unnecessary comma after “Voice chat”, which reads awkwardly.
This issue also appears on line 43 of the same file.
sample/tutorial_netrumble/README.md:46
- The requirements sentence is a bit ungrammatical (“need the PC in…”) and the console name is typically styled as “Xbox Series X|S” rather than “XBOX Series X|S”.
Godot 4.6 or later on Windows, with the addons built once from the submodule. Sign-in,
multiplayer and achievements need the PC in the **XDKS.1** sandbox and a signed-in test
account. Exporting to XBOX Series X|S additionally requires a middleware console fork of
Godot.
- Files reviewed: 13/13 changed files
- Comments generated: 1
- Review effort level: Lite
| - [`sample/tutorial_gdk/`](../../sample/tutorial_gdk/README.md) — GDK-only track (`g01` → `g04`). | ||
| - [`sample/tutorial_playfab/`](../../sample/tutorial_playfab/README.md) — PlayFab-only track (`p01` → `p05`). | ||
| - [`sample/tutorial_integrated/`](../../sample/tutorial_integrated/README.md) — integrated Xbox + PlayFab track (`i01` → `i02`). | ||
| - [`sample/tutorial_integrated/`](../../sample/tutorial_integrated/README.md) — integrated XBOX + PlayFab track (`i01` → `i02`). |
Adds
sample/tutorial_netrumble/containing a singleREADME.mdthat describes XBOX Godot NetRumble and points at its repository, microsoft/XBOX-Godot-NetRumble.NetRumble is a complete Godot 4 multiplayer game built on this repository's addons, which it pins as a submodule at
external/xbox-godot-sample. Where the tutorial samples here demonstrate one surface at a time, NetRumble wires every service into real gameplay, so it is worth surfacing from the sample docs.The folder is a pointer, not a project
sample/tutorial_netrumble/holds documentation only. There is noproject.godotand nothing is mirrored into it by the CMake build. The docs that enumerate the four tutorial sample projects therefore keep saying four and reference NetRumble in a separate sentence, so no existing statement about building or opening a sample becomes untrue.For the same reason
tools/export_samples.ps1is left alone: it takes explicit sample names and there is nothing here to export.Places updated
Every doc that enumerates the samples now mentions it:
README.mddocs/README.mddocs/getting-started.md(bundled samples section and the repository tree)docs/tutorials/README.mddocs/gdk/sample-and-tests.mdSee alsosection of all seven sampleREADME.mdfilesSpecs under
spec/and the build-orienteddocs/gdk/build-and-loading.mdwere deliberately not touched: they reference sample paths as build and test targets, which NetRumble is not.Validation
No
.gd, C++, or build files are touched, so the parse gate and test orchestrator are not applicable; this is documentation only. Note thatpr-gates.ymlusespaths-ignorefor**.mdanddocs/**, so this PR intentionally starts no gate jobs.All 12 relative links to the new page were verified to resolve on disk, along with the three outbound links from it.