Skip to main contentSkip to contact
Ocean View Games
Ocean View
Games
Blog header banner

Cross-Platform Multiplayer Networking in Unity: FishNet, Mirror, and Photon Compared

David Edgecombe

By David Edgecombe

·6 min read

What this post covers

A technical comparison of Unity multiplayer frameworks based on our hands-on experience. Server-authoritative vs P2P, bandwidth, and when to choose each.

Choosing a networking framework for a Unity multiplayer game is one of the most consequential technical decisions you will make. It affects architecture, server costs, latency, cheat prevention, and (critically) how painful the next 12 months of development will be.

At Ocean View Games, we have shipped multiplayer projects using FishNet and have evaluated Mirror and Photon in depth. Our network engineering work on Domi Online (a server-authoritative MMORPG serving a global player base) gave us extensive hands-on experience with the real-world tradeoffs.

This post is the comparison we wished existed when we started.


The Three Contenders

FishNet

An open-source networking framework built specifically for Unity. Created by FirstGearGames, it positions itself as a modern, performance-focused alternative to Mirror.

Mirror

An open-source successor to Unity's deprecated UNET. The most widely adopted Unity networking solution, with a large community and extensive documentation.

Photon (PUN / Fusion)

A commercial networking platform with both client-hosted (PUN) and server-authoritative (Fusion) options. Provides managed infrastructure so you do not run your own servers.


Architecture: Server-Authoritative vs Peer-to-Peer

This is the most fundamental decision, and it constrains your framework choice.

Server-Authoritative

The server is the single source of truth. Clients send inputs; the server validates them and broadcasts the result. Cheating is significantly harder because the client cannot unilaterally modify game state.

When you need it: Any game with competitive mechanics, real-money economies, leaderboards, or persistent worlds. For Domi Online, server authority was non-negotiable as the game has a player-driven economy where item duplication or stat manipulation would destroy the game.

Frameworks: FishNet (excellent), Mirror (good), Photon Fusion (good, managed)

Peer-to-Peer / Client-Hosted

One player acts as the host. Other players connect to them. Simpler to set up, but the host has an inherent latency advantage and can potentially cheat.

When it works: Co-op games, casual multiplayer, games where cheating has low impact.

Frameworks: Mirror (common use case), Photon PUN (designed for this), FishNet (supports it but overkill)

Key Takeaway: Choose your architecture first, then pick the framework that best supports it. Do not let framework familiarity drive an architectural decision.


FishNet: Our Framework of Choice for Domi Online

Why We Chose It

When we evaluated networking options for Domi Online, we needed:

  1. Server-authoritative architecture with full state control
  2. Efficient bandwidth usage (MMORPG with hundreds of concurrent players)
  3. Extensibility for custom serialisation of our 64-bit progression system
  4. Active development and responsive maintainer

FishNet met all four criteria.

Strengths

  • Prediction and reconciliation - FishNet's client-side prediction is mature and well-documented. Players see immediate feedback on their actions while the server validates asynchronously.
  • Object spawning - network object lifecycle management is clean. Spawning, despawning, and ownership transfer are straightforward.
  • Custom serialisers - we wrote custom serialisation for our 64-bit stat system. FishNet's serialiser API made this painless.
  • Performance - benchmarks consistently show lower bandwidth overhead than Mirror for equivalent workloads.
  • Active development - the maintainer ships regular updates and is responsive to issues.

Weaknesses

  • Smaller community - fewer tutorials, Stack Overflow answers, and third-party integrations compared to Mirror
  • Documentation gaps - improving rapidly, but some advanced features require reading source code
  • Learning curve - developers coming from PUN or Mirror will need adjustment time

Mirror: The Community Standard

Strengths

  • Massive community - the most widely used Unity networking solution. Finding answers to common problems is easy.
  • Extensive transports - supports WebSocket, KCP, Steam, and more out of the box
  • Battle-tested - used in hundreds of shipped games across diverse genres
  • Low barrier to entry - getting a basic multiplayer prototype running is fast
  • Well-documented - comprehensive documentation and numerous tutorials

Weaknesses

  • Bandwidth efficiency - Mirror's default serialisation is less efficient than FishNet's. For small-scale multiplayer (4-16 players) this is irrelevant. For MMO-scale, it adds up.
  • Prediction - client-side prediction exists but is less mature than FishNet's implementation. Requires more manual work for smooth results.
  • Host migration - limited support. If the host disconnects in a client-hosted game, recovery is complex.

When to Choose Mirror

Mirror is the right choice when:

  • Your game has 2-16 players (co-op, competitive matches)
  • Development speed matters more than bandwidth optimisation
  • Your team has existing Mirror experience
  • You need maximum community support and third-party asset compatibility

Photon: Managed Infrastructure

Strengths

  • No server management - Photon handles matchmaking, relay servers, and infrastructure scaling. You do not run your own servers.
  • Global infrastructure - data centres worldwide with automatic region selection
  • Quick prototyping - PUN (Photon Unity Networking) gets a multiplayer prototype running in hours
  • Photon Fusion - their newer framework supports server-authoritative architecture with tick-based simulation, comparable to FishNet in capability

Weaknesses

  • Cost at scale - Photon charges per CCU (concurrent user). For an MMORPG with thousands of concurrent players, costs escalate quickly. This was a decisive factor in our decision not to use Photon for Domi Online.
  • Vendor lock-in - your networking code is tied to Photon's API. Migrating away is a significant rewrite.
  • Less control - you cannot inspect or modify the server infrastructure. Debugging latency issues requires Photon's support team.
  • PUN limitations - PUN is client-hosted only. For server-authoritative, you need Fusion, which has a steeper learning curve.

When to Choose Photon

Photon is the right choice when:

  • You do not want to manage servers
  • Your CCU will stay under a few hundred (where the free/affordable tiers apply)
  • You need rapid prototyping with minimal backend work
  • Global matchmaking is a requirement and you want it out of the box

Head-to-Head Comparison

Head-to-Head Comparison
Factor FishNet Mirror Photon PUN Photon Fusion
Architecture Server-auth or P2P Server-auth or P2P Client-hosted only Server-auth
Cost Free (open-source) Free (open-source) Per-CCU pricing Per-CCU pricing
Server management Self-hosted Self-hosted Managed Managed
Bandwidth efficiency Excellent Good Good Excellent
Client prediction Mature Basic N/A Mature
Community size Growing Large Large Growing
MMO suitability Excellent Possible Poor Good (but costly)
Prototyping speed Moderate Fast Very fast Moderate

Framework Comparison at a Glance

Here is how FishNet, Mirror, and Photon compare across the factors that matter most when choosing a multiplayer framework:

Data table
Feature FishNet Mirror Photon
Server authoritative ✅ Excellent ✅ Supported ⚠️ Fusion only (PUN is client-hosted)
Free/open source ✅ MIT licence ✅ MIT licence ❌ Per-CCU pricing
Cloud hosting ❌ Self-hosted ❌ Self-hosted ✅ Managed infrastructure
MMO scale ✅ Built for large scale ⚠️ Possible with effort ⚠️ Costly at high CCU
Learning curve ⚠️ Moderate ✅ Low barrier to entry ✅ PUN is very fast to learn
Active development ✅ Regular updates ✅ Mature, stable ✅ Actively maintained
Unity integration ✅ Purpose-built for Unity ✅ Purpose-built for Unity ✅ Official Unity SDK

Our Recommendation

There is no universal "best" framework. The right choice depends on your game:

graph TD
    A[New Multiplayer Project] --> B{Server-authoritative?}
    B -->|Yes| C{Scale?}
    B -->|No| D{Need managed infra?}
    C -->|MMO / Large| E[FishNet]
    C -->|Small / Mid| F{Own servers?}
    F -->|Yes| G[Mirror]
    F -->|No| H[Photon Fusion]
    D -->|Yes| I[Photon PUN]
    D -->|No| J[Mirror]
  • Building an MMO or competitive game with a persistent world? FishNet. The bandwidth efficiency and prediction systems justify the smaller community. This is what we chose for Domi Online.
  • Building a co-op or small-scale multiplayer game? Mirror. The community support and rapid development speed outweigh its efficiency gap at small player counts.
  • Building a prototype or MVP with no backend team? Photon PUN. Get something playable fast and evaluate whether the pricing model works at your projected scale.
  • Need server-authoritative without managing infrastructure? Photon Fusion. But model your CCU costs carefully before committing.

Key Takeaway: The framework you prototype with is not necessarily the framework you ship with. Evaluate based on your production requirements, not your prototyping requirements.

Share

Stop Searching. Start Building.

Ready to start your next project? Tell us about your game and we'll get back to you with a plan.

Start by telling us what kind of help you need.

Location

London, United Kingdom

Response Time

We typically respond within 24-48 hours

1
2
3
Step 1 of 3