-
Notifications
You must be signed in to change notification settings - Fork 42
Dylan/unity-tutorials-csharp-parity #31
Dylan/unity-tutorials-csharp-parity #31
Conversation
refactor: Whats next cleanup, +unity, -bloat Removed redundant text while there refactor: Unity quickstart fixes, impr, prettify refactor: Unity pt1 fixes, impr, prettify fix(README): Rm "see test edits below" ref * !exists refactor(minor): General onboarding cleanup * Shorter, prettier, consistent fix(sdks/c#): Broken unitypackage url feat(sdks/c#): Add OneTimeQuery api ref
- PR review change requests - Additionally: hasUpdatedRecently fix and reformatting
- Used FindBy since that was what the tutorial used, and also looking for a single Identity. - Note: There may be a similar rust discrepancy in the Unity pt1 tutorial. It'll work with Filter, but just simply less consistent. Holding off on that since my Rust syntax knowledge !exists.
* Duplicate comments found both above and within funcs
* Removed `System.Runtime.CompilerServices` * SpacetimeDB.Module seems to already include this (merged the info)
* At general quickstart for `spacetime start`
* Also, removed the "speed" loss mention of C#
- After a verbose discussion, we will eventually swap to FindBy for single-result queries, but not in this PR. - For now, the syntax err is fixed by making the var nullable and suffixing a LINQ FirstOrDefault(). Approved by Tyler in Discord. - We never *actually* created a player in the tutorial. This creates the player. Approved by Tyler in Discord.
- Why?
- Despite being a Unity tutorial (we 100% know the user knows C#), the server example used Rust.
- This creates friction when the user is already learning multiple new things: The SpacetimeDB architecture, the CLI, the client SDK and server SDK. If they previously did not know Rust, this could add some weight to the onboarding friction.
- The Unity tutorial could use an overview since it's quite lengthy and progressive.
- Part1 should be split, anyway - it covers way too much for a single section to handle (especially since it jumps between client and server). Splitting between basic multiplayer + advanced makes things more-manageable and less intimidating.
- Before:
- UNITY TUTORIAL
- Part1 (Client + Rust Server)
- Part2 (Resources and Scheduling)
- Part3 (BitCraft Mini)
- After:
- UNITY TUTORIAL - BASIC MULTIPLAYER
- Overview
- Part1 (Setup)
- Part2a (Rust Server)
- Part2b (C# Server)
- Part3 (Client)
- UNITY TUTORIAL - ADVANCED
- Part4 (Resources and Scheduling)
- Part5 (BitCraft Mini)
|
There are still outside edits here worth visiting: |
# Conflicts: # docs/unity/part-1.md
bfops
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This largely looks great, thanks @dylanh724 🙏
Left some small notes, typos etc.
Rust -> C# Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
- `--lang=rust` to `=csharp` Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
- Rm RustRover mention Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
- Rust -> C# Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
- Server issues shouldn't link to Client troubleshooting that has no answer
|
All issues resolved ( @bfops ) |
|
Thanks @dylanh724 ! I think this looks good, but possibly one last tweak? |
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Sure thing - done! |
bfops
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great! Thanks Dylan 🎉
* doc: Onboarding impr, fixes, consistency, cleanup
refactor: Whats next cleanup, +unity, -bloat
Removed redundant text while there
refactor: Unity quickstart fixes, impr, prettify
refactor: Unity pt1 fixes, impr, prettify
fix(README): Rm "see test edits below" ref
* !exists
refactor(minor): General onboarding cleanup
* Shorter, prettier, consistent
fix(sdks/c#): Broken unitypackage url
feat(sdks/c#): Add OneTimeQuery api ref
* doc: Onboarding impr, fixes, consistency, cleanup
* fix: Rm redundant 'module_bindings' mention
* fix: Floating period, "arbitrary", "important":
- PR review change requests
- Additionally: hasUpdatedRecently fix and reformatting
* fix: Mentioned FilterBy, used FindBy
- Used FindBy since that was what the tutorial used, and also looking for a single Identity.
- Note: There may be a similar rust discrepancy in the Unity pt1 tutorial. It'll work with Filter, but just simply less consistent. Holding off on that since my Rust syntax knowledge !exists.
* fix(Unity-pt1): Rm copy+paste redundant comments
* Duplicate comments found both above and within funcs
* fix(unity): Rm unused using statement +merged info
* Removed `System.Runtime.CompilerServices`
* SpacetimeDB.Module seems to already include this (merged the info)
* refactor(minor): Code spacing for grouping/clarity
* feat: 'Standalone mode runs in foreground' memo
* At general quickstart for `spacetime start`
* refactor(unity-pt1): Standalone mode foreground memo
* Also, removed the "speed" loss mention of C#
* fix(syntaxErr): Fix err, keep FilterBy, handle null
- After a verbose discussion, we will eventually swap to FindBy for single-result queries, but not in this PR.
- For now, the syntax err is fixed by making the var nullable and suffixing a LINQ FirstOrDefault(). Approved by Tyler in Discord.
- We never *actually* created a player in the tutorial. This creates the player. Approved by Tyler in Discord.
* doc!(unity-tutorial): Add C# module parity + split
- Why?
- Despite being a Unity tutorial (we 100% know the user knows C#), the server example used Rust.
- This creates friction when the user is already learning multiple new things: The SpacetimeDB architecture, the CLI, the client SDK and server SDK. If they previously did not know Rust, this could add some weight to the onboarding friction.
- The Unity tutorial could use an overview since it's quite lengthy and progressive.
- Part1 should be split, anyway - it covers way too much for a single section to handle (especially since it jumps between client and server). Splitting between basic multiplayer + advanced makes things more-manageable and less intimidating.
- Before:
- UNITY TUTORIAL
- Part1 (Client + Rust Server)
- Part2 (Resources and Scheduling)
- Part3 (BitCraft Mini)
- After:
- UNITY TUTORIAL - BASIC MULTIPLAYER
- Overview
- Part1 (Setup)
- Part2a (Rust Server)
- Part2b (C# Server)
- Part3 (Client)
- UNITY TUTORIAL - ADVANCED
- Part4 (Resources and Scheduling)
- Part5 (BitCraft Mini)
* Update docs/unity/part-2b-c-sharp.md
Rust -> C#
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
* Update docs/unity/part-2b-c-sharp.md
- `--lang=rust` to `=csharp`
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
* Update docs/unity/part-2b-c-sharp.md
- Rm RustRover mention
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
* Update docs/unity/part-2b-c-sharp.md
- Rust -> C#
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
* fix: "Next tutorial" mixups
* fix: Bad troubleshooting links
- Server issues shouldn't link to Client troubleshooting that has no answer
* Update docs/unity/part-2b-c-sharp.md
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
* Update docs/unity/part-2a-rust.md
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
---------
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>

Prereqs
This PR is dependent on my other PR, #28. If the other PR is still open, please review that 1st.
About
Why?
Before
After
Note
I linked the entire file to a public gist post. This may look more professional if this was moved to a more "official" looking account for either now (this PR) or in the future.