PurrNet
  • 🐈Introduction
    • ‼️Unique to PurrNet
    • 💲Pricing
    • 💻Compatibility
    • 📚Addon library
    • 🗺️Roadmap
    • 🏎️Performance
      • RPC Benchmarks
      • Network Transform benchmarks
    • 🥰Support PurrNet
  • 📚Guides
    • Installation/Setup
    • Getting Started
    • Converting to PurrNet
      • Converting from Mirror
      • Converting from FishNet
    • Lobby System
    • Networking custom classes, structs & types
    • Chat system with broadcasts
    • Easy Multiplayer Physics (input Sync)
  • 🎮Full game guides
    • 🔫First Person Shooter
    • 🪓Survival Game
  • 🖥️Systems and modules
    • Network Manager
      • Network Rules
      • Network Prefabs
      • Network Visibility
        • Distance condition
      • Transports
        • Composite Transport
        • UDP Transport
        • Web Transport
        • Local Transport
        • Steam Transport
        • Purr Transport
      • Authentication
    • PlayerID (Client connection)
    • Network Identity
      • NetworkBehaviour
      • Ownership
      • Sync Types
        • SyncVar
        • SyncList
        • SyncArray
        • SyncQueue
        • SyncDictionary
        • SyncEvent
        • SyncHashset
        • SyncTimer
      • Don't destroy on load
    • Network Modules
    • Collider Rollback
    • Client Side Prediction
      • Overview
      • Predicted Identities
      • Predicted Hierarchy
      • Best Practices
      • Input Handling
      • State Handling
    • Plug n' play components
      • Network Transform
      • Network Animator
      • Network Reflection (Auto Sync)
      • State Machine (Auto Networked)
    • Spawning & Despawning
    • Remote Procedure Call (RPC)
      • Generic RPC
      • Static RPC
      • Awaitable RPC
      • Direct Local Execution of RPCs
    • Instance Handler
    • Scene Management
    • Broadcast
  • 🤓Terminology
    • Early Access
    • Channels
    • Client Auth/Everyone (Unsafe)
    • Host
    • Server Auth (Safe)
  • 💡Integrations
    • Dissonance
    • Cozy Weather
Powered by GitBook
On this page
  • Early release!
  • Our mission
  • Everyone vs Server Auth?
  • Ease of use
  • Persistent user data and connection

Introduction

Made by network game developers with experience.

NextUnique to PurrNet

Last updated 2 months ago

Early release!

PurrNet is still in the early stages! So keep in mind that things could be prone to change, have bugs, or be sub-optimal. We are using it ourselves as well, so we feel confident that it is a ready-to-use system, but it is under constant development and improvement.

Check out the to see what we are currently planning to add. This can also be a good overview of "what is missing" from the system at this point.

Our mission

Our mission has been to embrace the natural workflow of Unity rather than fight it, as we've felt other networking solutions do.

Similar to other great networking systems like Mirror, we also use the same modular transport system, allowing for easy integration to any servers, relays or similar.

Everyone vs Server Auth?

This does technically create an "unsafe" environment, allowing for easy cheating, so this is only recommended for games where cheating is not a major concern. Some good examples are co-op or friendly PvP games.

Ease of use

Spawning & Despawning

With most networking solutions you'd typically need to instantiate an object, follow that with a unique spawn call, and ensure that the instantiation and spawn call occur on the server. However, with PurrNet, you just have to follow your Unity experience and simply Instantiate the object... And that's really it!

And for despawning? It's the exact same thing! Simply call "Destroy()" as you would in Unity, and the rest is automatically networked for you.

Persistent user data and connection

Another great feature of PurrNet is the built-in cookies. This essentially allows for a server's knowledge of a player to remain beyond the connection. If a player disconnects and later connects again, the server is still aware that this is the same player, and can keep the data stored. This is modifiable as to where the data is stored and how persistent it is (Connection, Process, Machine).

PurrNet is our attempt at the purrfect networking solution... It's a 100% free Unity Networking solution with no pro or premium version, and no features locked behind a pay-gate. You can use it to release, and we ask nothing in return! Read the section to see what we offer above other solutions!

We have taken inspiration from other networking systems we've worked a lot with in the past like , and . We've tried to keep our version of what the like about these systems, and improve or innovate where we felt needed. And clearly we're doing something right as FirstGearGames (FishNet) himself said: "anything to slow down purrnet development"

Make sure to join our Discord here:

Our high-level API, allows for super easy and quick network development, with plenty of freedom for you as the developer. Use our , to define how you prefer your workflow and game to function, from fully , to full allowing for the quickest multiplayer development!

Throughout PurrNet and this knowledge base, you'll find the use of a few words quite often. Most commonly: and "".

Server Auth means that only the server can perform the desired action. So if you set the to use "", only the server can do the action. If you pick "" it means that all clients and the server are all allowed to perform the action.

The biggest focus of PurrNet is ease of use and scalability for the project. This is greatly involving the "" Here are some examples:

With the , you can allow "everyone" to handle spawning, essentially allowing all clients to spawn objects by simply instantiating them. If you only want server auth, you merely instantiate on the server, and the rest is still handled... Easy!

and

With the , you can also set up whether the orallow for to call them. This in turn means that you don't have to ensure that the logic runs over the server, like in other networking solutions. This allows for quicker code writing and an easier workflow to learn.

We even have , and RPC's which have not been seen before! (as far as we know)

When you spawn and despawn things, you can easily modify on a per-object basis who the default of the object is. If the spawning and despawning rules allow to spawn, it is easy to also make the spawning player the by simply changing this setting! No extra code is necessary.

Through the , you can also easily allow clients to change the of an object, allowing for easier use than any other current networking solution!

🐈
Unique to PurrNet
Mirror
Fish-Net
Photon Quantum
https://discord.gg/NP9tP9Qx9R
Network Rule system
safe/server auth
client auth
Server Auth
Everyone
network rules
Server
Everyone
Network Rules
network rules
RPC's
SyncVars
Network Rules
SyncVar
Rpc's
everyone
Generic
Static
Awaitable
Ownership
owner
everyone
owner
network rules
ownership
ROADMAP
Get it on the Unity Asset Store
Get it on GitHub