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