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

Dylan/unity-tutorials-csharp-parity #31

Merged

Conversation

dylanh724
Copy link
Contributor

Prereqs

This PR is dependent on my other PR, #28. If the other PR is still open, please review that 1st.

About

  • Overview was added to the Unity tutorial section.
  • In the Unity pt1 tutorial, a C# variant was added to parity the Rust module in a tutorial split.
  • Unity tutorial was split into Basic Multiplayer and Advanced sections.

Why?

  • Despite being a Unity tutorial (where the user likely already knows C#), the tutorial exampled only a Rust module.
  • Having Rust as the only tutorial option created 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 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 the sections 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)

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.

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)
@dylanh724 dylanh724 requested review from bfops and jdetter February 23, 2024 09:44
@dylanh724 dylanh724 changed the title Dylan/unity tutorials csharp parity Dylan/feat-unity-tutorials-csharp-parity Feb 26, 2024
@dylanh724 dylanh724 changed the title Dylan/feat-unity-tutorials-csharp-parity Dylan/unity-tutorials-csharp-parity Feb 26, 2024
@dylanh724 dylanh724 added the documentation Improvements or additions to documentation label Feb 26, 2024
@dylanh724
Copy link
Contributor Author

dylanh724 commented Mar 29, 2024

⚠️All of the Unity section is deprecated in this PR and will be replaced by spacetime-docs::Dylan/refactor/unity tutorial revamp, thanks to a new Unity tutorial that was assigned later.

There are still outside edits here worth visiting:

image

Copy link
Contributor

@bfops bfops left a 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.

dylanh724 and others added 6 commits April 24, 2024 09:19
Rust -> C#

Co-authored-by: Zeke Foppa <[email protected]>
- `--lang=rust` to `=csharp`

Co-authored-by: Zeke Foppa <[email protected]>
- Rm RustRover mention

Co-authored-by: Zeke Foppa <[email protected]>
- Rust -> C#

Co-authored-by: Zeke Foppa <[email protected]>
- Server issues shouldn't link to Client troubleshooting that has no answer
@dylanh724
Copy link
Contributor Author

All issues resolved ( @bfops )

@bfops bfops self-assigned this Apr 24, 2024
@bfops
Copy link
Contributor

bfops commented Apr 24, 2024

Thanks @dylanh724 ! I think this looks good, but possibly one last tweak?

@dylanh724
Copy link
Contributor Author

Thanks @dylanh724 ! I think this looks good, but possibly one last tweak?

Sure thing - done!

Copy link
Contributor

@bfops bfops left a 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 🎉

@bfops bfops merged commit 6ed040b into clockworklabs:master Apr 25, 2024
@dylanh724 dylanh724 deleted the dylan/unity-tutorials-csharp-parity branch April 29, 2024 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants