Migrating from Mirror
https://github.com/vis2k/Mirror/
The bad news is that you will need to create your project from scratch, and can’t reuse anything from the MonoBehaviour world. DOTSNET intentionally uses pure ECS, not hybrid.
The good news is that DOTSNET was optimized for ease of use. It’s very clean, simple & elegant to work with. It’s extremely stable thanks to over 90% test coverage.
In fact, it makes networking fun again!
Here is a brief overview on how the old concepts translate to DOTSNET. Please take your time to learn each one, and don’t expect to convert your full Mirror project to DOTSNET by friday.
Mirror
DOTSNET
Server-Only mode
Still exists, but in a completely separate Server World.
Client-Only mode
Still exists, but in a completely separate Client World.
Host Mode
Not needed anymore. Server & Client worlds are fully separated in memory. Simply start a server and start a client.
Yes, we have a true, fully memory separated host mode now.
NetworkServer
NetworkServerSystem + Authoring
NetworkClient
NetworkClientSystem + Authoring
NetworkIdentity
NetworkIdentity
NetworkBehaviour
Gone.
isServer
Not needed anymore. You are the server if your system is running in the server world.
isClient
Not needed anymore. You are the client if your system is running in the client world.
isLocalPlayer
NetworkEntity.owned
hasAuthority
NetworkEntity.owned
OnStartServer
OnStartRunning if [ServerWorld] and [UpdateInGroup(ServerActiveSimulationSystemGroup)]
OnStopServer
OnStopRunning if [ServerWorld] and [UpdateInGroup(ServerActiveSimulationSystemGroup)]
OnStartClient
OnStartRunning if [ClientWorld] and [UpdateInGroup(ClientConnectedSimulationSystemGroup)]
OnStopClient
OnStopRunning if [ClientWorld] and [UpdateInGroup(ClientConnectedSimulationSystemGroup)]
NetworkWriter
BitWriter
NetworkReader
BitReader
Connection.ready
ConnectionState.joinedWorld (on server)
NetworkServer.active
NetworkServerSystem.state == ACTIVE
NetworkClient.active
NetworkClientSystem.state != DISCONNECTED
Last updated