Boss Room is Unity's co-op dungeon sample for up to 8 players, built on Netcode for GameObjects (NGO). Edgegap's fork runs it on a dedicated game server, and adds optional matchmaking that puts players in the same dungeon.
Boss Room itself barely changes: same scenes, same prefabs, same Character Select, same Direct IP join. Everything the matchmaker needs lives in Assets/Edgegap/ and adds itself at runtime.
No player hosts the match. A headless Boss Room server runs the dungeon, needs no Unity Gaming Services, Relay or Lobby, and stops its own deployment once the match is empty.
Edgegap's network spans 615+ Edge Cloud locations (learn more). Each server is deployed to the best available location for its players and billed only while the match runs.
Clone the sample: Boss Room fork on GitHub
Full guide: build, containerize and deploy any NGO game with the Netcode for GameObjects integration guide
Platforms: Windows, macOS and Linux desktop clients (UDP). Tested with Windows clients. Original sample by Unity Technologies, under the Unity Companion License.
How it works
Players press Find Match in the panel on the main menu. Each client sends a ticket to the Edgegap Matchmaker.
The matchmaker groups 2 to 8 players and starts an Edgegap deployment for them.
The server boots, starts through Boss Room's own
ConnectionManageron0.0.0.0and thegameportport, and logs how many matched players to expect.When the ticket shows HOST_ASSIGNED, each client joins the server's public IP and external port through
ConnectionManager.StartClientIp. Everyone lands in Character Select on the same server, then enters the dungeon together.When nobody is left (30 s after the last player leaves, or if nobody joins within 120 s), the server stops its own deployment.
What the fork changed:
Path | What it does |
|---|---|
| Runs before the first scene and adds the components below. No scene edits. |
| The Find Match panel: ticket, wait for |
| Server builds: logs matched and connected players, stops the deployment when the match is empty. |
| Matchmaker on/off, URL, Auth Token, profile, local port, timeouts. |
| Starts the server with |
| Server instead of host ( |
| Matchmaker profile to upload, and the server image. |

Two players in Boss Room's dungeon, on one Netcode for GameObjects server hosted by Edgegap.
1. Before you start
A free Edgegap account.
Unity 6000.0.54f1 (Unity 6.0 LTS) with Linux Build Support (Mono) and Linux Dedicated Server Build Support, plus the module for your client platform.
Docker Desktop, running.
Git LFS: run
git lfs installbefore cloning, or the art and the Edgegap settings asset don't download.Clone the fork.
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. Get a Boss Room server on Edgegap
Matchmaking needs a server that already works on Edgegap. Steps 4 and 5 of the Netcode for GameObjects guide cover building, containerizing and deploying it. What's specific to this fork:
Build the server with Tools → Edgegap → Build Linux Dedicated Server. The fork's
Dockerfileat the repository root packagesBuilds/EdgegapServer/.On the app version, one port: name
gameport, 7777, UDP. The name must begameport: the server reads its port from it.Locally (and in
docker run), the server listens on 9998 instead.To check a deployment by hand: Start with Direct IP → Join in two clients, with the deployment's public IP (not the host name) and the external port of
gameport.
To run the server image locally:
docker run --rm -p 9998:9998/udp ngo-bossroom:local
Two copies on one PC need their own profile, or the server rejects the second one as the same player:
Game.exe -AuthProfile p1
Game.exe -AuthProfile p2
3. Add it to your own NGO game
The fork is a working reference: your coding agent can copy its tested files instead of writing them from scratch. Four changes make an NGO game run on Edgegap with matchmaking:
The server starts itself. In server builds, call
StartServer, neverStartHost, on0.0.0.0and thegameportport (Assets/Scripts/EdgegapServerStarter.cs,StartingHostState.cs).The server stops itself. It stops its deployment when nobody joins in time or the last player leaves, so billing stops (
Assets/Edgegap/EdgegapServerLifecycle.cs).The client finds a match. It sends a ticket, waits for
HOST_ASSIGNED, then joins the assigned IP and port (Assets/Edgegap/EdgegapMatchmakingClient.cs). If your game has its own connection flow like Boss Room'sConnectionManager, join through it so payloads and approval still work.Nothing in your scenes changes.
Assets/Edgegap/EdgegapBootstrap.csadds the components at startup, configured byEdgegapSettings.asset.
With your agent:
"Load the edgegap skill, then edgegap-ngo. Using github.com/edgegap/netcode-game-sample-unity-ngo-bossroom as the reference, make my Netcode for GameObjects game start a headless dedicated server on the gameport port, stop its deployment when the match is empty, and add a Find Match button that joins the server the Edgegap Matchmaker assigns, through my game's own connection flow."
For each step in detail, by hand, see the Netcode for GameObjects integration guide.
4. Turn on matchmaking in Boss Room
Matchmaking is off by default. Turn it on once a direct connection works:
In the fork's
matchmaker-config.json, setapplication.nameandversionto your application and version.In the dashboard, open Matchmaker → Create Matchmaker, upload the file, then Create and Start. Copy its API URL and Auth Token. The Auth Token is safe in game clients: it only allows matchmaking calls.
Select
Assets/Edgegap/Resources/EdgegapSettings.asset. Tick Use Edgegap Matchmaker, and paste the Matchmaker Url and Matchmaker Auth Token.Rebuild the client and start it twice. Press Find Match in the panel on the left of the main menu in both. The status goes searching → match found → joining, then both players land in Character Select on the same server.
The casual profile makes matches of 2 to 8 players, as many as Boss Room's 8 hero seats. It fills up to 8 when it can; after 15 seconds it starts with at least 2. Keep that expansion stage: without it, a match smaller than 8 only starts when the tickets expire, after 5 minutes.
To test without clicks, pass the settings on the command line (<url> and <token> from step 2), with -AuthProfile p2 and -edgegapAutoReady 1 for the second client:
Game.exe -AuthProfile p1 -edgegapMatchmaker true -edgegapMatchmakerUrl <url> -edgegapAuthToken <token> -edgegapFindMatch -edgegapAutoReady 0
When you ship a new server build: new image tag → new app version → in the matchmaker, Stop, edit application.version, Start. Otherwise matches keep deploying the old build.
Known limits
Desktop clients only. Boss Room connects over UDP, which browsers can't open. A WebGL build would need Unity Transport's WebSockets and a WS port with TLS Upgrade: not part of this sample.
The Find Match panel is a simple overlay, not part of Boss Room's menu. For a real game, call
EdgegapMatchmakingClient.FindMatch()andCancelMatchmaking()from your own button and setShowGUIoff.No ticket check on the server. Anyone with the IP and port can join by Direct IP. Checking each client's ticket ID against
MM_TICKET_IDSin connection approval is a next step.No joining a match in progress. Players who press Find Match later get a new server; backfill isn't set up.
Harmless server errors. The headless server logs
NullReferenceExceptioninClientCharacter.OnAnimEventandTransform child out of bounds, from Boss Room's client-side visuals. They don't affect play.Free tier: one deployment at a time, and the matchmaker restarts every 3 hours (same URL and token).
What was tested
Tested end to end on Edgegap on 19 October 2026, with Unity 6000.0.54f1, Netcode for GameObjects 1.13.0, Unity Transport 2.5.2 (UDP) and the Edgegap Unity SDK 3.5.6:
Direct connection: two Windows clients joined the same Edgegap server by IP and played in the dungeon.
Matchmaker: two Windows clients pressed Find Match, were matched, connected and reached Character Select on the same server within 40 seconds of launch, then played in the dungeon.
Self-stop: each time, the server stopped its own deployment after the players left.
macOS and Linux clients should work, not tested. The fork's command-line test flags (-edgegapConnect, -edgegapFindMatch, -edgegapAutoReady, -edgegapScreenshots, -edgegapQuitAfter) are listed in EDGEGAP.md.
Frequently Asked Questions
Questions about running Unity's Boss Room with Edgegap's dedicated servers and matchmaking.
Can Boss Room use matchmaking without Unity Gaming Services?
Yes. Edgegap's fork adds an optional Find Match panel that uses the Edgegap Matchmaker. It needs no UGS Matchmaker, Relay or Lobby: the matchmaker starts an Edgegap server and every matched client joins it.
How many players can a Boss Room match have on Edgegap?
The fork's matchmaker profile makes matches of 2 to 8 players, as many as Boss Room's 8 hero seats. It waits up to 15 seconds to fill the match, then starts with at least 2.
Which Unity version does the Boss Room fork need?
Unity 6000.0.54f1 (Unity 6.0 LTS), with the Linux Dedicated Server build modules. Unity hasn't updated Boss Room for later versions, so newer ones can break it.
Does the Boss Room server keep running when nobody plays?
No. The server stops its own Edgegap deployment 30 seconds after the last player leaves, or if nobody joins within 120 seconds, so idle servers cost nothing.

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.









