BR200 is Photon's third-person battle royale sample for up to 200 players, built on Photon Fusion 2. It can already run as a headless dedicated server. Edgegap's kit runs that server on Edgegap, one deployment per match.
The kit changes no BR200 or Fusion code. Players still find matches through Photon Cloud, with your own Photon App ID. Only the server moves: it runs on Edgegap instead of a player's machine, and clients connect to it directly instead of through a Photon relay.
Edgegap's network spans 615+ Edge Cloud locations (learn more). Each server is deployed to the best available location for its players and stops itself when the match ends, so billing stops too.
Photon's Fusion 2 documentation lists Edgegap as a game session hosting provider.
Get the kit: BR200 kit for Edgegap on GitHub
Full guide: add Edgegap to your own Fusion game with the Photon Fusion 2 integration guide
Platforms: Linux dedicated server (Docker, linux/amd64). Tested with Windows clients, built on Windows 11 with Unity 6000.3.11f1. The kit is MIT-licensed; BR200 comes from the Unity Asset Store and stays under the Asset Store EULA and Photon's terms. The repository contains no BR200 or Fusion code.
How it works
You start an Edgegap deployment with the players' public IPs. Edgegap places it near them.
The kit's start script reads Edgegap's variables and launches BR200 with its own options:
-dedicatedServer, bind address0.0.0.0, port 7777/UDP, and the deployment's address as the session name.The script picks the Photon region nearest the deployment. The server registers its session with Photon Cloud in that region.
Clients use the same Photon App ID, App Version and region, find the session by name (or in the Menu's server list), and connect Direct to the Edgegap server.
When the match ends and BR200 exits, the script asks Edgegap to stop the deployment.
What the kit adds:
Path | What it does |
|---|---|
| Adds Tools > Edgegap BR200: checks the project (IL2CPP server, Linux toolchain, unsafe code, scenes, App ID, Peer Mode) and builds the Linux Server to |
| Ubuntu 22.04 image that runs the server as a non-root user. |
| Maps Edgegap's |
| Send only the server build to Docker; keep Linux line endings. |
| Build, package and push, run locally, run the tests in a container. |
| An app version body and a deployment request for the Edgegap API. |
| 46 checks on the start script. No Unity needed. |
Photon's Fusion 2 documentation lists Edgegap as a game session hosting provider for Fusion dedicated servers.

Photon's BR200 battle royale, with each match on its own Edgegap dedicated server.
1. Before you start
A free Edgegap account.
BR200 from the Unity Asset Store. The repository is a kit and doesn't include the game.
Unity with the Linux Dedicated Server build module. Tested with Unity 6000.3.11f1, BR200 2.1.0 and Fusion 2.1.1.
Your own Photon Fusion App ID from the Photon dashboard. Each developer needs their own; the kit never ships one.
Optional: the Edgegap Unity plugin, if you'd rather build and upload from the editor.
Clone the kit.
Git: Unity needs a Git client (2.14.0 or newer) on your PATH to install packages from a Git URL, such as the Edgegap plugin. macOS usually has one already (Xcode Command Line Tools); on Windows, install Git.
2. Add the kit and set up Photon
Copy Assets/EdgegapBR200, edgegap/, scripts/, .dockerignore and .gitattributes into the BR200 project root, next to Assets/.
Then in Unity:
Tools > Fusion > Realtime Settings: paste your Fusion App ID and note the App Version. Server and clients must share the App ID, App Version and Photon region, or they won't find each other.
Tools > Fusion > Network Project Config: set Peer Mode to
Single.The server must use IL2CPP, BR200's default. On a Mono server, BR200's RPCs fail and players never get a character. To build Linux IL2CPP on Windows with Unity 6000.3 or later, add
com.unity.toolchain.win-x86_64-linuxandcom.unity.sdk.linux-x86_64in the Package Manager (+ > Add package by name).Run Tools > Edgegap BR200 > Check Project and fix what it reports.
You don't edit the Loader scene or any script: the server's mode, address, port, session and region all come from the command line.
3. Build the server and put it on Edgegap
Build the Linux server from a terminal (Git Bash works on Windows), or with Tools > Edgegap BR200 > Build Linux Server. The IL2CPP build took 56 minutes in our test:
scripts/build-server.sh
Package and push the image. Log in first with the credentials from the Container Registry page:
scripts/package.sh registry.edgegap.com/<project>/br200
If you use the Edgegap plugin instead, point its Containerize step at edgegap/Dockerfile and keep the build path Builds/EdgegapServer.
In the dashboard, create the application br200 and a version with the tag the script printed:
One port: name
gameport, 7777, UDP.Restart policy
never. The deployment ends when the match ends.Max duration a little above your longest match (60 minutes in the example).
1 vCPU and 2 GB to start. A full 200-player match hasn't been sized yet.
examples/app-version.json holds the same settings for the API.
4. Start a match and connect
Test the image on your own machine first, with the same variables a real deployment gets:
scripts/run-local.sh eu
Locally, clients show the connection type Relayed: a client on the same machine can't reach Docker Desktop's address directly. On Edgegap, the same image gives Direct.
Then start a deployment from the dashboard, the plugin or the API (examples/deploy-request.json), with the players' public IPs. Its FQDN, such as 0a1b2c3d4e5f.pr.edgegap.net, is also the BR200 session name. The first log lines show the bind address, the public address and the Photon region the server chose.
To join, open the scene set as the Loader's Batch Mode Scene, and in the Standalone Manager set Game Mode Client, Server Name and Session Name to the FQDN, and Region to the server's region. Then play. (Joining from the Menu scene's server list should work too, but wasn't tested.)
BR200 starts a 120-second waiting timer when the server boots. Connect as soon as the deployment is Ready.
In a connected client, press Tab: the overlay's CT (connection type) should say Direct.
5. Add it to your own Fusion game
The kit is a working reference: your coding agent starts from files that already ran on Edgegap, so it builds on a tested setup instead of guessing.
For BR200, the kit changes no game code (see the table in "How it works"). For your own Fusion game, these are the parts to carry over:
Run headless in
GameMode.Server. Start the runner as a dedicated server from command-line options or environment variables (edgegap/start-server.shshows the mapping).Bind
0.0.0.0. SetStartGameArgs.Addressto0.0.0.0on the fixed port (7777/UDP). Fusion finds the public address itself and clients connect Direct.127.0.0.1forces Photon relays; the deployment's public IP fails to bind.Name the session after the deployment. Use the FQDN (
<ARBITRIUM_REQUEST_ID>.pr.edgegap.net) so clients can find it through Photon.Pick the Photon region near the deployment, from
ARBITRIUM_DEPLOYMENT_LOCATION(the script'sautomode).Stop when the match ends. Call
ARBITRIUM_DELETE_URLwithARBITRIUM_DELETE_TOKENwhen the server exits, and never print the environment.Build the server with IL2CPP and containerize it with
edgegap/Dockerfileas a model.
With your agent:
"Load the edgegap skill, then edgegap-fusion. Using github.com/edgegap/netcode-game-sample-photon-fusion2-battleroyale-200 as the reference, make my Fusion 2 game run as a headless GameMode.Server on Edgegap: bind 0.0.0.0 on port 7777/UDP, use the deployment FQDN as the session name, pick the Photon region nearest the deployment, stop the deployment when the match ends, and build an IL2CPP Linux server image."
For each step in detail, by hand, see the Photon Fusion 2 integration guide.
6. How players find the server
Matchmaking stays on Photon Cloud. The Edgegap deployment is the game server: it registers its session with Photon, and clients find it by session name, App ID, App Version and region. You don't need Edgegap's matchmaker for this sample, and it hasn't been tested with Fusion.
Session name: the deployment's FQDN by default. Set
BR200_SESSIONto change it.Region:
auto(default) picks the Photon region nearest the deployment. SetBR200_REGIONto a code such aseuif your clients use a fixed region, or limitautowithBR200_REGION_ALLOWLIST.bestlets Fusion ping instead.Match settings:
BR200_MAX_PLAYERS(1 to 200),BR200_MODE(battleRoyale,deathmatchorelimination),BR200_SCENE, set on the app version or on one deployment.
Your game's backend or lobby decides when to start a deployment and hands players the session name and region. For that flow in your own game, see the Photon Fusion 2 integration guide.
Known limits
200 players not tested yet. The test ran two-player matches. CPU and memory for a full 200-player match haven't been sized: 1 vCPU / 2 GB is only a starting point.
One map tested. Only GenArea7 ran on Edgegap.
Menu join not tested. Clients joined with the Standalone Manager. The Menu's server list should work, but wasn't tested.
Windows build host only. Building on macOS or Linux hasn't been tested.
120-second timer. BR200 starts its waiting timer when the server boots; players who join later count as eliminated.
Server must be IL2CPP. A Mono server builds in minutes but breaks BR200's RPCs.
What was tested
Tested end to end on Edgegap on 19 and 20 October 2026, with BR200 2.1.0, Fusion 2.1.1 (build 2177), Unity 6000.3.11f1, Windows 11 and Docker Desktop. Clients were headless Windows IL2CPP builds.
Build: Check Project and Build Linux Server produced an IL2CPP Linux server in 56 minutes.
Local container: two clients joined with no exceptions (CT Relayed, as expected locally).
Edgegap: deployments in Toronto (region
cae) and Newark (regionus). Two clients joined each one with CT Direct. In a two-player Battle Royale, one client left, the other got Game Over, and the deployment stopped on its own 2.5 minutes after it started.Start script: 46 checks, no Unity needed:
bash tests/start-server.test.sh
Frequently Asked Questions
Questions about running Photon's BR200 on Edgegap.
Do I have to change BR200's code to run it on Edgegap?
No. BR200 already takes command-line options for a dedicated server. Edgegap's kit adds an editor build tool, a Dockerfile and a start script that pass those options, and changes no BR200 or Fusion code.
Does BR200 on Edgegap use Edgegap's matchmaker?
No. Matchmaking stays on Photon Cloud. The Edgegap server registers its session with Photon, and clients find it by session name and region, then connect Direct to the server.
Why does my client show CT Relayed?
On Edgegap, it usually means the server binds 127.0.0.1. Bind 0.0.0.0, as the kit does. In a local Docker Desktop test, Relayed is expected; the same image gives Direct on Edgegap.
Can the BR200 server be built with Mono?
It builds, but BR200's RPCs fail on a Mono server and players never get a character. Build the server with IL2CPP, BR200's default.

Clients
Learn more from clients who integrated Edgegap
31 case studies are available from studios that moved to Edgegap from another platform.

A Flawless Global Launch for Rivals of Aether 2
Aether Studios
Learn how Aether Studios quickly added Edgegap and delivered flawless launch & post-launch to their community.
Case Study

Overcome Latency Introduced by VR’s use of WiFi in Competitive Multiplayer
Halfbrick Studios
Discover how Halfbrick successfully launched & maintains a multiplayer-focused Early Access on META Quest's VR platform.
Case Study

MENA’s Social App Adds Online Games
WOLF
Learn how the highly popular MENA-region social app added matchmaking & multiplayer games orchestration easily to WOLF Qanawat.
Case Study

Hybrid Orchestration Keeps Kickoff Tactics Ready for Any Traffic
Birch Games
How hybrid orchestration helped Birch Games handle traffic, pairing egress-free Fleets with the regionless cloud.
Case Study

7 Days Blood Moons
The Fun Pimps & iLLOGIKA
Learn how Illogika dramatically reduced server costs & ensured the online experience the 7 Days to Die franchise expects.
Case Study

Authentic Online Warfare Requires the Ultimate Orchestration
Highwire Games
Learn how Highwire's need for performance required orchestration only Edgegap can deliver.
Case Study

22,000 Reviews, 4.8 Stars, and Infrastructure That Scaled Automatically
Sinn Studios
How a simple, Slack-supported integration got Sinn Studio's hit VR title online fast and keeps it there.
Case Study

Dynamic Server Orchestration
Under NDA - AAA Studio
Discover how one the world's biggest AAA studio improved its peer-to-peer multiplayer experience through edge computing.
Case Study

Near Zero Latency for AAA Fighting Game
AAA Studio - Under NDA
How an unannounced project delivered the lowest lag possible and improved fairness in its 1v1 game.
Case Study

Play Gods with Multiplayer Physics
Squido Studio
Learn how Squido uses Edgegap's highligh optimized game servers to deliver mind-bending & chaotic VR gameplay.
Case Study

A Fully Managed Solutions that Saves Time for Indies Multiplayer VR Horror
Dirty Pearl Studios
Discover how Dirty Pearl Studios saved development time thanks to Edgegap’s easy integration and automated orchestration alongside its Nakama integration.
Case Study

Instant Global Server Deployment for Collaborative XR Medical Education
AlensiaXR
How AlensiaXR uses Edgegap to deliver low-latency, always-available shared anatomy sessions to medical students worldwide.
Case Study

The Lightkeepers: A VR Social Co-op Game with Dedicated Servers
Spectral Games
How Spectral Games used Edgegap Matchmaking and Server Browser to launch dedicated servers for its VR social lobby, with no prior server experience.
Case Study

Fast & reliable deployments worldwide for PvPvE challenger Gravebound
Crater Studios
How Edgegap’s orchestration and matchmaking helped Crater Studios dramatically helped a small them focus on gameplay instead of infrastructure.
Case Study

Rapid Scaling of Web Metaverse
Hiber
Learn how Hiber eliminated the guesswork out of its server capacity planning with Edgegap.
Case Study

High Hardware Requirements & Custom Game Server Pools
Alderon Games
Learn how Alderon Games instantly leverages a custom pool of game servers across multiple providers worldwide for its popular MMO.
Case Study

Easy Integration for Indie Devs
WhaleFood Games
Read how WhaleFood Games "kicked out" its netcode issues with Edgegap.
Case Study

Cutting-edge tech that powers South-East Asia’s first-ever eSports title.
Anantarupa Studios
Learn how Edgegap transformed South-East Asia’s gaming landscape streamlining complex infrastructure and cutting-edge tech with one seamless solution.
Case Study

One Strike. Global Reach.
Triple Hill Interactive
How Triple Hill Interactive leverages Edgegap's orchestration to deliver low latency and improve fairness in a genre where every millisecond counts.
Case Study

Fast-paced Team Battle Royale... with Gun-totting Animal Plushes!
SANDYFLOOR
Discover how a Korea-based Indie Studio launched it multiplayer worldwide.
Case Study

Mobile Horse Racing Goes Global with Instant, Cost-Efficient Servers
Mirai Labs
How Mirai Labs powers Pegaxy Blaze's worldwide multiplayer races with just-in-time server deployment and fractional vCPU to keep cost per player low.
Case Study

Server Management & Distribution
Matrioshka Games
Read how Matrioshka Games were able to ship a Battle Royale in early access with limited ressources.
Case Study

At my Signal, Unleash Hell!
TyGames
Discover how Indie studio TyGames immerses players in third-person gladiatorial combat multiplayer.
Case Study

Instant Worldwide Orchestration
Soliton Interactive
Discover how Soliton Interactive did the impossible… Ship it's first playable as multiplayer!
Case Study

Competitive play with server-side physics ensures ideal sub-50 ms latency
NS7
Discover why solely Edgegap could enable an indie studio to deliver on its vision for a AAA-quality F2P sports gameplay through server-side physics and authority.
Case Study

Regional Deployments for iGaming
X1 Contra 1
X1 Contra 1 delivers real-time PvP casual games to its Brazilian player base through cost-effective hosting & regional deployments, ensuring data and legal compliance.
Case Study

Pay Only When Players Play: Affordable Multiplayer Infrastructure
Meltdown Interactive
How Edgegap helped indie developer Meltdown Interactive Media solve cost-effective scaling and matchmaking without the complexity, so they could focus on building the game.
Case Study

One Edgegap platform, three very different networking profiles
Warped Games
How Warped Games runs a social hub, real-time co-op, and turn-based co-op, all on the same Edgegap deployment API and the same container pipeline.
Case Study

Pool Live Tour Max
RETA Games
Case Study

Korea’s Web3 POP Extraction Shooter Goes Global, Instantly
NDUS Entertainment
How XOCIETY easily added Edgegap orchestration & integrated custom matchmaking working alongside Edgegap Ping Beacons to optimize latency.
Case Study

Multiplayer in Every Dimension
Arcadia.tv
Discover how Arcadia.tv uses Edgegap's edge network to deliver an innovative, team and location-based athletic VR sport.
Case Study

F2P Mobile Fighter Cuts Infrastructure Costs With Just-in-Time Servers
Game Changers Worldwide
How Game Changer Worldwide hosted Rumble Rush's real-time 3v3 PvP globally on mobile.
Case Study
Key reasons why they chose Edgegap
Discover the impact of Edgegap's automated game server orchestration for a flawless multiplayer experience.









