Skip to content

feat: authoritative multiplayer integration (aka pulse)#7291

Draft
lorux0 wants to merge 105 commits intodevfrom
feat/pulse
Draft

feat: authoritative multiplayer integration (aka pulse)#7291
lorux0 wants to merge 105 commits intodevfrom
feat/pulse

Conversation

@lorux0
Copy link
Copy Markdown
Collaborator

@lorux0 lorux0 commented Feb 27, 2026

Pull Request Description

Server project: https://github.com/decentraland/Pulse

What does this PR change?

Test Instructions

Prerequisites

  • List any required setup steps
  • Include environment/configuration requirements

Test Steps

  1. First step
  2. Second step
  3. Expected result after step 2
  4. ...

Additional Testing Notes

  • Note any edge cases to verify
  • Mention specific areas that need careful testing
  • List known limitations or potential issues

Quality Checklist

  • Changes have been tested locally
  • Documentation has been updated (if required)
  • Performance impact has been considered
  • For SDK features: Test scene is included

Code Review Reference

Please review our Code Review Standards before submitting.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 27, 2026

@lorux0 lorux0 changed the title feat: authoritative multiplayer integration aka pulse feat: authoritative multiplayer integration (aka pulse) Feb 27, 2026
@lorux0 lorux0 added force-build Used to trigger a build on draft PR and removed force-build Used to trigger a build on draft PR labels Mar 16, 2026
lorux0 and others added 6 commits April 14, 2026 15:11
# Conflicts:
#	Explorer/Assets/DCL/Infrastructure/Global/Dynamic/DynamicWorldContainer.cs
#	Explorer/Assets/DCL/Infrastructure/Global/Dynamic/GlobalWorldFactory.cs
#	Explorer/Assets/DCL/Multiplayer/Emotes/MultiplayerEmotesMessageBus.cs
# Conflicts:
#	Explorer/Assets/DCL/AvatarRendering/Emotes/Systems/Play/CharacterEmoteSystem.cs
#	Explorer/Assets/DCL/AvatarRendering/Emotes/Systems/UpdateEmoteInputSystem.cs
#	Explorer/Assets/DCL/AvatarRendering/Emotes/Tests/UpdateEmoteInputSystemShould.cs
#	Explorer/Assets/DCL/Infrastructure/CrdtEcsBridge/JsModulesImplementation/RestrictedActions/GlobalWorldActions.cs
#	Explorer/Assets/DCL/Infrastructure/CrdtEcsBridge/JsModulesImplementation/RestrictedActions/Tests/GlobalWorldActionsShould.cs
#	Explorer/Assets/DCL/Multiplayer/Emotes/IEmotesMessageBus.cs
#	Explorer/Assets/DCL/Multiplayer/Emotes/MultiplayerEmotesMessageBus.cs
#	Explorer/Assets/DCL/Multiplayer/Emotes/RemoteEmoteIntention.cs
#	Explorer/Assets/Protocol/DecentralandProtocol/Comms.gen.cs
#	Explorer/Assets/Protocol/DecentralandProtocol/RestrictedActions.gen.cs
#	scripts/package-lock.json
#	scripts/package.json
@lorux0 lorux0 added force-build Used to trigger a build on draft PR and removed force-build Used to trigger a build on draft PR labels Apr 15, 2026
@mikhail-dcl mikhail-dcl added force-build Used to trigger a build on draft PR and removed force-build Used to trigger a build on draft PR labels Apr 15, 2026
lorux0 and others added 20 commits April 15, 2026 14:51
# Conflicts:
#	Explorer/Assets/DCL/Multiplayer/Movement/Systems/PulseMultiplayerBus.Emotes.cs
- Introduce a feature flag for Pulse
- Rename previous multiplayer to "LiveKit" domain
- A bit of refactoring of DynamicWorldContainer.cs
# Conflicts:
#	Explorer/Assets/DCL/FeatureFlags/FeaturesRegistry.cs
#	Explorer/Assets/DCL/Infrastructure/Utility/DecentralandUrls/DecentralandUrl.cs
#	Explorer/Assets/DCL/NetworkDefinitions/Browser/DecentralandUrlsSource.cs
#	Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/ReportsHandlingSettingsDevelopment.asset
#	Explorer/Assets/Protocol/DecentralandProtocol/Comms.gen.cs
#	Explorer/Assets/Protocol/DecentralandProtocol/ParticleSystem.gen.cs
#	scripts/package-lock.json
#	scripts/package.json
Extract transport-neutral multiplayer content into a new multiplayer.md
hub, scope the renamed livekit-networking.md to LiveKit-specific
internals only, and add a new pulse.md covering the Pulse transport.

multiplayer.md covers the shared surface: core interfaces, transport
selection, movement encoding / send / receive pipelines, interpolation
and extrapolation, remote-player entity/profile lifecycle, dedup and
concurrency primitives, SDK propagation to scene worlds, and online-users
connectivity.

livekit-networking.md (renamed from network-synchronization.md) now
covers only LiveKit specifics: RoomHub, ConnectiveRoom, dual-room
architecture, entity availability semantics, voice chat room, and the
LiveKit*MessageBus / RemoveIntentions / RemoteMetadata / ProfileBroadcast
implementations.

pulse.md is new: ENet transport, Protobuf message model, PeerId mapping,
PulseMultiplayerBus partial-class map (PlayerState, Teleports, Profiles,
Emotes, Disconnects), profile propagation, incoming collectors,
PulseContainer wiring, and a differences-from-LiveKit table.

Also updates the multiplayer-and-network-sync skill to point at the
renamed doc and uses the current LiveKitRemoveIntentions class name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

force-build Used to trigger a build on draft PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants