Introduction

Overview

Fish-Networking(Fish-Net) is an original free versatile networking solution for Unity(https://unity.com/), built from the ground up, offering more features than any other free solution.

Fish-Net is server authoritative by design by allowing the use of dedicated servers, but does permit users to act as server and client, for faster development and testing.

Any kind of network topology is supported through the Transport system. Transports can use a variety of technologies to allow communications between server, client, and even third parties.

High-level API allows you to quickly access the ability to synchronize states, logic, objects, and more, without needing to get your hands dirty. We also believe in providing the best experience possible; you may additionally utilize low-level functionality via included events or inheritance.

No-break Promise

Developing projects can take a lot of time, and updating your networking solution along the way is often inevitable. Fish-Networking promises to not release any breaking API or behavior changes between major versions. Major releases will occur no more frequent than every six months, unless absolutely necessary.

When breaks do occur we will do our best to keep the changes simple. We also have our Break Solutions section which will describe planned breaks, the next major release, and how to remedy breaks for each version.

Long-Term Support

Fish-Networking is the only solution to offer free LTS. We will be using a unique but effective approach at creating LTS releases. Rather than the standard expectations of being locked into a version for long-term support, FishNet is providing what we refer to as 'Stable' and 'Beta'. Any version of Fish-Networking which ends in R supports switching between Stable and Beta features, for example: 3.10.7R.

While in Stable mode any features in partial development or public testing are disabled, leaving only proven stable features. You gain the advantage of having the latest stable features and bug fixes without being locked into an older version. It's even possible to code specifically for development features by utilizing #if !FISHNET_RELEASE defines! Stable updates are provided even on older versions until Beta releases have been proven reliable over several months of testing.

To toggle modes simply use the Fish-Networking menu in engine, and the option will be seen as the first item. To see which features and changes are enabled during development mode see our GitHub discussions.

GitHub: https://github.com/FirstGearGames/FishNet/

Asset Store: https://assetstore.unity.com/packages/tools/network/fish-net-networking-evolved-207815

Community Discord: https://discord.gg/Ta9HgDh4Hj

Add-ons and Example Projects

There are several add-ons and examples to aid you through your development. Add-ons may be anything from third-party assets to internal plugins. Example projects are open-source projects that you may use as a template or learning resource.

Add-ons: https://fish-networking.gitbook.io/docs/manual/general/addons

Example Projects: https://fish-networking.gitbook.io/docs/manual/tutorials/example-projects

Need more documentation?

Documentation is especially important to newcomers, and we understand this. As Fish-Networking developers it can at times be difficult to know what is expected or lacking for beginners. If you find a topic unclear, or not covered well enough, please visit our GitHub Issues and create a new issue requesting improvements.

Last updated