Struct NetworkProtocolVersion
The NetworkProtocolVersion is a singleton entity that is automatically created by the NetworkStreamReceiveSystem and that is used to verify client and server compatibility.
The protocol version is composed by different part:
- The NetCode package version.
- A user defined GameProtocolVersion game version, that identify the version of your game
- A unique hash of all the IRpcCommand and ICommandData that is used to verify both client and server recognize the same rpc and command and that can serialize/deserialize them in the same way
- A unique hash of all the replicated IComponentData and IBufferElementData that is used to verify both client and server can serialize/deserialize all the replicated component present in the ghosts
When a client tries to connect to the server, as part of the initial handshake, they exchange their protocol version to validate they are both using same version. If the version mismatch, the connection is forcibly closed.Inherited Members
Namespace: Unity.NetCode
Assembly: solution.dll
Syntax
public struct NetworkProtocolVersion : IComponentData, IQueryTypeParameter
Fields
Name | Description |
---|---|
ComponentCollectionVersion | A unique hash calculated on all the serialized components that can be used to check if the client can propertly decode the snapshots. |
GameVersion | The user specific game version the server and client are using. 0 by default, unless the GameProtocolVersion is used to customise it. |
NetCodeVersion | The NetCode package version |
RpcCollectionVersion | A unique hash computed of all the RPC and commands, used to check if the server and client have the same messages and with compatible data and serialization. |
k_NetCodeVersion | The integer used to determine a compatible version of the NetCode package. |