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
| Backend | Native Friends | Custom Server | Identity Source | Best For |
|---|---|---|---|---|
| Photon PUN | Yes ✓ | Yes | Photon UserId | Turn-based, FPS, general multiplayer |
| Photon Fusion | Yes ✓ | Yes | Fusion PlayerId | Real-time action, sports, VR |
| Mirror | No | Yes | Your auth system | MMORPG, open world, dedicated servers |
| Unity Netcode | Varies | Yes | ClientId / Auth | Co-op, party games, small sessions |
| FishNet | Varies | Yes | FishNet ClientId | High-performance multiplayer |
| Custom | N/A | Yes | Your auth system | Your own backend solution |
Native vs Custom Implementation
Native Implementation
Uses the networking platform's built-in friends system. For Photon, this means Photon Friends.
| Pros | Cons |
|---|---|
| Fastest setup | Limited to single network type |
| No server deployment needed | Cannot have friends across different networks |
| Built-in authentication | Limited moderation capabilities |
| Official support from network provider | May have platform-specific limitations |
Custom Implementation (ElderWorldStudio Server)
Uses the included Node.js or PHP server for friend management.
| Pros | Cons |
|---|---|
| Works across all network backends | Requires server deployment |
| Full server-side moderation | More 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
- Using Photon PUN or Fusion? → Use Native Implementation (simplest)
- Using Mirror, NGO, or FishNet? → Use Custom Server (required for full features)
- 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
| Scenario | Recommended Approach |
|---|---|
| Single network, fast prototype | Native Implementation |
| Multiplayer-only game (no cross-network) | Native for Photon, Custom for others |
| Need server-side moderation | Custom Server (Node.js with WebSocket) |
| MMO or open-world game | Custom Server (Mirror/FishNet + Node.js) |
| Cross-platform friends | Custom Server |
| Have existing backend infrastructure | Custom 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:
- Photon PUN Setup - Native and Custom options
- Photon Fusion Setup - Native and Custom options
- Mirror Setup - Custom server required
- Unity Netcode Setup - Custom server recommended
- FishNet Setup - Custom server recommended
- Custom Backend - Implement your own
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
FriendManagerSettingswith your chosen options