Network Integration Overview

Universal Friend List supports multiple networking backends through a consistent interface. This page explains the different integration options and how to choose the right approach for your project.

Backend Comparison

BackendNative FriendsCustom ServerIdentity SourceBest For
Photon PUNYes ✓YesPhoton UserIdTurn-based, FPS, general multiplayer
Photon FusionYes ✓YesFusion PlayerIdReal-time action, sports, VR
MirrorNoYesYour auth systemMMORPG, open world, dedicated servers
Unity NetcodeVariesYesClientId / AuthCo-op, party games, small sessions
FishNetVariesYesFishNet ClientIdHigh-performance multiplayer
CustomN/AYesYour auth systemYour own backend solution

Native vs Custom Implementation

Native Implementation

Uses the networking platform's built-in friends system. For Photon, this means Photon Friends.

ProsCons
Fastest setupLimited to single network type
No server deployment neededCannot have friends across different networks
Built-in authenticationLimited moderation capabilities
Official support from network providerMay have platform-specific limitations

Custom Implementation (ElderWorldStudio Server)

Uses the included Node.js or PHP server for friend management.

ProsCons
Works across all network backendsRequires server deployment
Full server-side moderationMore complex initial setup
Cross-platform friends (if desired)Server hosting costs
Real-time WebSocket updates
Custom business logic

Which Option Should You Choose?

For Non-Developers / Fast Setup

  1. Using Photon PUN or Fusion? → Use Native Implementation (simplest)
  2. Using Mirror, NGO, or FishNet? → Use Custom Server (required for full features)
  3. Need friends across platforms? → Use Custom Server
Quick Recommendation: If you're using Photon, start with Native. You can switch to Custom Server later if needed.

For Developers - Decision Matrix

ScenarioRecommended Approach
Single network, fast prototypeNative Implementation
Multiplayer-only game (no cross-network)Native for Photon, Custom for others
Need server-side moderationCustom Server (Node.js with WebSocket)
MMO or open-world gameCustom Server (Mirror/FishNet + Node.js)
Cross-platform friendsCustom Server
Have existing backend infrastructureCustom Backend (implement interface)

How Network Integration Works

The network layer uses a adapter pattern to provide a consistent interface regardless of the underlying networking platform:

FriendManager └── Uses INetworkFriendSystem interface ├── PhotonPunNativeFriendSystem native PUN ├── PhotonPunCustomFriendSystem PUN + server ├── PhotonFusionNativeFriendSystem native Fusion ├── PhotonFusionCustomFriendSystem Fusion + server ├── MirrorCustomFriendSystem Mirror + server ├── UnityNetcodeCustomFriendSystem NGO + server ├── FishNetCustomFriendSystem FishNet + server └── CustomBackendFriendSystem custom Each implementation translates common friend operations to the specific network's APIs or custom server protocol.

Backend-Specific Setup

Select your networking backend for detailed setup instructions:

Next Steps

  • Choose your backend based on the comparison above
  • Follow the specific setup page for your network
  • If using custom server, see Server Setup
  • Configure FriendManagerSettings with your chosen options