
Unity Multiplayer Netcode in 2026: Netcode for GameObjects vs Mirror vs FishNet vs Photon
You made a singleplayer prototype, it is actually fun, and then somebody said the words "this would be great with friends." Now you are staring at six library names, four strong opinions per name, and a pricing page that talks in CCU like you already know what that means.
Here is a straight read on the four Unity netcode stacks people actually ship with in 2026: Netcode for GameObjects, Mirror, FishNet, and Photon Fusion 2. What each costs, what each is good at, and where each will make you suffer.
Pick your topology before you pick your library
Every argument about netcode libraries is downstream of one question: who gets to decide what is true?
Dedicated server. A machine you pay for runs the simulation. Hardest to cheat, best tick rates, most expensive.
Listen server (host). One player's game instance also runs the server. Free and easy, but the host gets a latency advantage and can nuke the session by alt-F4ing.
Distributed authority. Each client owns a slice of the world and a thin cloud service routes the traffic. Cheap to run and pleasant to build for. Also the easiest to cheat in.
Unity's own documentation is blunt about that last one: distributed authority is "typically not suitable for high-performance competitive games." Making a co-op farming game? Ignore that sentence. Making a shooter? It is the whole ballgame.
One more bit of vocabulary. CCU means concurrent users, the peak number of players connected at the same second. Not downloads, not monthly players. Every hosted service prices on CCU, and almost everybody overestimates their own.
Netcode for GameObjects: the default for co-op
NGO is Unity's first-party package and the 2.x line targets Unity 6. You get NetworkBehaviour, NetworkVariable, RPCs, and a spawning system that hooks into normal prefab workflow. If you have written a MonoBehaviour, the jump is small.
The big addition in the 2.x line is distributed authority as a first-class topology alongside classic client-server. Instead of checking IsServer everywhere you check HasAuthority, which works in both modes. One client becomes the session owner for global state, and if they disconnect another client is promoted automatically. For a drop-in-drop-out co-op game that is exactly the thing that takes weeks to hand-roll.
The package itself is free. What costs money is the Unity services around it. Relay gives you 3 GiB per CCU free up to 150 GiB per month, then charges $0.09 per GiB in the US and EU and $0.16 in Asia and Australia. Connectivity hours are free up to 6,000 per month, then $0.001 each. Lobby is free up to 10 GiB per month per regional group. For a small co-op game with a few hundred concurrent players, that is often still a zero dollar invoice.
The tooling is the underrated part. Multiplayer Play Mode runs several virtual players in one Editor, so you stop building standalone clients every ten minutes. Multiplayer Tools ships a network profiler. And Unity 6's Multiplayer Center window picks a stack for you from a few dropdowns.
The Multiplayer Center in Unity 6 turns "which netcode?" into a few dropdowns. Image credit: Unity
Where NGO hurts: it is not built for 64-player competitive action. That is what Netcode for Entities is for, and that one demands you learn ECS first. NGO also carries a reputation from its rough early years that the 2.x releases have mostly earned their way out of, so treat 2022 forum posts as historical fiction.
Mirror: free, boring, battle-tested
Mirror is MIT licensed, open source, and has years of shipped Unity titles behind it. The API descends from old UNET, so tutorials from a decade ago still mostly translate. Transports are swappable: KCP over UDP by default, WebSockets for browser builds, Steam and Epic transports for platform integration.
There are no CCU fees because there is no vendor. You host it, or your players host it. Mirror's Edgegap integration gives you a deploy button for containerized servers if you want managed hosting without a per-seat license.
Where Mirror hurts: no built-in client-side prediction or rollback. For a shooter you write that yourself, and writing it correctly is a hard multi-month job. Documentation is also spread across a gitbook, a Discord, and community memory.
The netcode you can debug at 2am beats the netcode with the better benchmark chart.
FishNet: free, and it does prediction for you
Fish-Networking sits in the same free and open-source bucket as Mirror, but ships the features Mirror makes you build: client-side prediction with reconciliation, lag compensation, interest management, and a free LTS branch. The 4.7.x line is current in 2026. There is a Pro tier funded through Patreon, and no CCU cap on the free version.
Practically, FishNet is the pick when you want authoritative movement with prediction but you do not want to rent a cloud. The prediction system is the main reason people migrate off Mirror.
Where FishNet hurts: smaller community than Mirror, so fewer answers waiting when something weird happens, and major version bumps have historically moved APIs around.
Photon Fusion 2: you pay, they run it
Fusion 2 is the managed option. Tick-based, with prediction, rollback, and lag compensation built in, and three modes: shared (authority spread across clients), host (one client is authoritative), and server (dedicated). You never touch a machine, matchmaking and rooms come included, and the free tier is unusually generous.
Current gaming plans: 20 CCU free for development, 100 CCU free for launch (one app, roughly 40k monthly actives, 0.3 TB traffic), $95 one-time for a second 100 CCU across 12 months, then $125 per month for 500 CCU, $250 for 1,000, and $500 for 2,000. Past that you move to Premium Cloud at $0.50 per CCU with a $1,000 monthly minimum. Traffic is bundled at roughly 3 GB per CCU.
Where Fusion hurts: your hosting bill is proportional to your success, and your matchmaking, rooms, and connection flow are wired to one vendor. Migrating off later is a rewrite, not a config change.
The actual decision, in four lines
Co-op for 2 to 8 friends, cheating is not a threat model: Netcode for GameObjects. Self-hosted or player-hosted with no platform cut and you are fine doing ops: Mirror, or FishNet if you need prediction. Competitive real-time action and you refuse to run infrastructure: Fusion 2. Turn-based strategy or card games: do not use realtime netcode at all, use a plain backend and send moves.
The things that bite everybody
Test with fake latency from day one. All four ship a network simulator. A game that only ever ran at 0ms on localhost falls apart the first time a real player joins from three timezones away, and by then the bad assumptions are load-bearing.
Do not sync what you can derive. Send inputs and authoritative state, then let clients compute the visuals. Syncing a transform every frame for every prop burns your bandwidth budget before you have gameplay.
Pool your networked spawns. Spawning costs more over the network than locally, and the allocation problems that wreck singleplayer frame rate get worse when each one also fires a spawn message to everyone. Our writeup on object pooling in Unity applies double here.
Sort out version control before the second programmer joins. Multiplayer work means two people touching the same prefabs and scenes constantly, so merge pain arrives early. Our version control comparison for game dev covers what Git LFS, Perforce, and Unity Version Control actually cost.
Finally, assume store assets are not network-ready. A character controller, inventory system, or ability kit from any marketplace, including DevLoot, is usually written for one local player. Budget time to route its state through your netcode layer, or check the listing for explicit multiplayer support before you buy.
None of these four choices is wrong. The wrong move is spending three weeks comparing them instead of shipping a two-player prototype that proves the game is fun with a friend in it.