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

Feat: local scene development multiplayer #3314

Merged
merged 43 commits into from
Feb 17, 2025

Conversation

NickKhalow
Copy link
Contributor

@NickKhalow NickKhalow commented Feb 10, 2025

What does this PR change?

  • Added multiplayer testing capabilities for CreatorHub mode
  • Extra added support for multiple profiles, each new instance associated with a new profile slot that persists after instance's shutdown
  • Implemented native named mutex, process name info fetching and memory mapped files because IL2CPP doesn't support it

How to test the changes?

  1. Launch your local scene with 2 instances of Explorer client or more via CreatorHub
  2. On start of a new instance see auth screen is associated with a new profile. Each new instance has its own profile slot
  3. Verify you can interact between instances in multiplayer

Validate this flow on Windows and MacOS (Intel and Arm64)

Our Code Review Standards

https://github.com/decentraland/unity-renderer/blob/master/docs/code-review-standards.md

@NickKhalow NickKhalow self-assigned this Feb 10, 2025
# Conflicts:
#	Explorer/Assets/DCL/PluginSystem/DCL.Plugins.asmdef
@NickKhalow NickKhalow marked this pull request as ready for review February 10, 2025 06:30
@NickKhalow NickKhalow requested review from a team as code owners February 10, 2025 06:30
Copy link

@Ludmilafantaniella Ludmilafantaniella left a comment

Choose a reason for hiding this comment

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

✅ Approved

I tested the following scenarios:

  • Created 5 new instances (from the 5 accounts I have across social and web3).
  • All instances sync correctly with each other, including emotes, chat, and passports.
  • If I close an instance and reopen it, the account data persists as expected.

Everything is working as intended! ✅

5Instances.mp4

Regressions for this ticket had been performed in order to verify that the normal flow is working as expected:

  • ✔️ Log In/Log Out
  • ✔️ Backpack and wearables in world
  • ✔️ Emotes in world and in backpack
  • ✔️ Teleport with map/coordinates/Jump In
    • The Inn
    • Metadynelabs world - Pravus World
    • Metagamimall
    • Casa Roustan
    • Live Event Scenes
  • ✔️ Chat and multiplayer
  • ✔️ Profile card
  • ✔️ Camera
  • ✔️ Skybox

Copy link
Collaborator

@dalkia dalkia left a comment

Choose a reason for hiding this comment

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

I would suggest setting up a syncEntity scene to confirm that multiplayer is working correctly

@NickKhalow NickKhalow enabled auto-merge (squash) February 17, 2025 12:36
@NickKhalow NickKhalow merged commit fed803c into dev Feb 17, 2025
7 checks passed
@NickKhalow NickKhalow deleted the feat/local-scene-development-multiplayer branch February 17, 2025 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants