Skip to content

refactor: move RpcMethodId serialization from ILPP to Core #910

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

Merged
merged 1 commit into from
Jun 17, 2021

Conversation

0xFA11
Copy link
Contributor

@0xFA11 0xFA11 commented Jun 17, 2021

previously, ILPP'd RPC method body was serializing RpcMethodId but with this PR, it is being moved from ILPP to Core.

pseudo-code breakdown

before

MyFancyNetBhv::FooServerRpc(int someNumber, string someMessage)
{
    var serializer = NetworkBehaviour::__beginServerRpc(serverRpcParams, rpcDelivery)
    {
        serializer.Serialize(ref objectId);
        serializer.Serialize(ref behaviourId);
        serializer.Serialize(ref serverRpcParams.Send.UpdateStage);
    }

    serializer.Serialize(ref rpcMethodId); // ILPP'd
    serializer.Serialize(ref someNumber); // ILPP'd
    serializer.Serialize(ref someMessage); // ILPP'd

    NetworkBehaviour::__endServerRpc(serializer, serverRpcParams, rpcDelivery)
    {
        rpcQueueContainer.EndAddQueueItemToFrame(...);
    }
}

after

MyFancyNetBhv::FooServerRpc(int someNumber, string someMessage)
{
    var serializer = NetworkBehaviour::__beginServerRpc(rpcMethodId, serverRpcParams, rpcDelivery)
    {
        serializer.Serialize(ref objectId);
        serializer.Serialize(ref behaviourId);
        serializer.Serialize(ref rpcMethodId);
        serializer.Serialize(ref serverRpcParams.Send.UpdateStage);
    }

    serializer.Serialize(ref someNumber); // ILPP'd
    serializer.Serialize(ref someMessage); // ILPP'd

    NetworkBehaviour::__endServerRpc(serializer, rpcMethodId, serverRpcParams, rpcDelivery)
    {
        rpcQueueContainer.EndAddQueueItemToFrame(...);
    }
}

Copy link
Contributor

@Rosme Rosme left a comment

Choose a reason for hiding this comment

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

LGTM

@0xFA11 0xFA11 merged commit 32da2f9 into develop Jun 17, 2021
@0xFA11 0xFA11 deleted the refactor/rpc-ilpp branch June 17, 2021 13:24
SamuelBellomo added a commit that referenced this pull request Jun 22, 2021
* develop: (21 commits)
  feat: NetworkObject Parenting (#855)
  refactor: move RpcMethodId serialization from ILPP to Core (#910)
  fix: NetworkPrefabs container's elements invalidated in the NetworkManager after relaunching Unity Project (#905)
  feat!: OnNetworkSpawn / OnNetworkDespawn (#865)
  feat: Add missing XMLdoc comment (#897)
  refactor: upgrade ILPP backend, drop 2019.4 support, rename types/fields (#895)
  fix: do not access/render runtime info if not playing in the editor (#898)
  feat: Add name property for network variables (#891)
  chore: delete PhilTestResults.xml (#894)
  feat: MultiInstanceHelpers to use fixed FrameRate by default (#893)
  test: General MultiInstanceHelper improvements (#885)
  refactor: isKinematic set to true for rigid bodies of non-authorized instances (#886)
  docs: adding more info to help debug on network transform error message (#892)
  feat: Add RPC Name Lookup Table Provided by NetworkBehaviourILPP (#875)
  fix: remove OnClientConnectedCallback registration from StatsDisplay (#882)
  feat: Add profiling decorator pattern (#878)
  refactor: Removing dead code for NETWORK_VARIABLE_UPDATE (#880)
  fix: update package version to 0.2.0 because of unity minversion change (#881)
  docs: Fix typo in changelog version title
  docs: Hotfix Changelog for 0.1.1 and manual update (#873)
  ...

# Conflicts:
#	com.unity.multiplayer.mlapi/Runtime/Core/NetworkBehaviour.cs
#	com.unity.multiplayer.mlapi/Runtime/Core/NetworkManager.cs
#	com.unity.multiplayer.mlapi/Tests/Runtime/BaseMultiInstanceTest.cs
#	com.unity.multiplayer.mlapi/Tests/Runtime/BaseMultiInstanceTest.cs.meta
SamuelBellomo added a commit that referenced this pull request Jun 22, 2021
* develop: (67 commits)
  feat: NetworkObject Parenting (#855)
  refactor: move RpcMethodId serialization from ILPP to Core (#910)
  fix: NetworkPrefabs container's elements invalidated in the NetworkManager after relaunching Unity Project (#905)
  feat!: OnNetworkSpawn / OnNetworkDespawn (#865)
  feat: Add missing XMLdoc comment (#897)
  refactor: upgrade ILPP backend, drop 2019.4 support, rename types/fields (#895)
  fix: do not access/render runtime info if not playing in the editor (#898)
  feat: Add name property for network variables (#891)
  chore: delete PhilTestResults.xml (#894)
  feat: MultiInstanceHelpers to use fixed FrameRate by default (#893)
  test: General MultiInstanceHelper improvements (#885)
  refactor: isKinematic set to true for rigid bodies of non-authorized instances (#886)
  docs: adding more info to help debug on network transform error message (#892)
  feat: Add RPC Name Lookup Table Provided by NetworkBehaviourILPP (#875)
  fix: remove OnClientConnectedCallback registration from StatsDisplay (#882)
  feat: Add profiling decorator pattern (#878)
  refactor: Removing dead code for NETWORK_VARIABLE_UPDATE (#880)
  fix: update package version to 0.2.0 because of unity minversion change (#881)
  docs: Fix typo in changelog version title
  docs: Hotfix Changelog for 0.1.1 and manual update (#873)
  ...

# Conflicts:
#	com.unity.multiplayer.mlapi/Tests/Runtime/com.unity.multiplayer.mlapi.runtimetests.asmdef
#	testproject/ProjectSettings/EditorBuildSettings.asset
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.

2 participants