FishNet vs Netcode for GameObjects
FishNet
fish-networking.gitbook.ioNetcode for GameObjects
docs.unity.comSide by side
| Figure | FishNet | Netcode for GameObjects |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | Yes | Yes |
| Android | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 2 | 1 |
| Spec score · Game Networking Middleware | 8.7 (#3) | 8.1 (#11) |
| Purpose | FishNet is a free networking solution for Unity games. | Netcode for GameObjects is a high-level networking library for synchronizing GameObjects and world data across multiplayer sessions. |
Plans
In their own words
FishNet
FishNet is a networking solution for Unity games using a client-server model and a server-authoritative design. It supports dedicated servers, while developers can also run a server and client together for development and testing. Users may choose a host, including self-hosting or player-hosted servers, and the free plan has no CCU caps or paywalls. Its high-level API synchronizes state, logic, and objects; events and inheritance provide lower-level functionality. Built-in client-side prediction includes desynchronization smoothing and Rigidbody prediction, and Addressables support covers network scenes and prefabs. Other listed tools include buffered remote calls, area-of-interest controls, configurable SyncTypes, tick-based timing, and broadcasts. Customizable authenticators can require client authentication before server communication. Communication is unencrypted by default; FishyUnityTransport can enable DTLS for UDP or TLS for WebSocket. FishNet costs nothing. FishNet Pro costs $50, paid once and adds lag compensation and automatic removal of sensitive server logic from client builds. The documentation says prediction collider components currently support primitive shapes such as boxes, spheres, and circles.
Netcode for GameObjects
Netcode for GameObjects is Unity’s high-level networking library for synchronizing GameObjects and world data during multiplayer sessions. Unity describes it as suited to games with smaller player counts and less complex game logic, including adding multiplayer to an existing GameObject-based single-player game. Networking can use client- or server-authoritative models. NetworkBehaviour components use NetworkVariables to synchronize state and RPCs to send messages over the network. Integrated scene management is enabled by default and synchronizes scenes across connected clients. Unity Transport is the default transport, while Unity Relay can provide Relay networking for GameObject and MonoBehaviour workflows. Unity Multiplayer Services sessions are compatible with the package, which handles gameplay state replication after players connect. The package is free, but installation requires an active Unity account with a valid license, a supported Unity version, and an existing project. Supported platforms listed include Windows, macOS, Linux, iOS, Android, XR platforms on those systems, most closed platforms, and WebGL with specified package versions. There is no matchmaking functionality; developers must use third-party services for matchmaking. A full client-side prediction and reconciliation system must also be built by the developer.