Photon Fusion 2
Explore how to host Unity projects on Edgegap using techniques from the Fusion 2 Asteroids Sample.
✔️ Preparation
Before we start, you will need:
Unity 6 - download using Unity Hub,
Fusion 2 Asteroids Sample project (modified for Edgegap) - download from GitHub.
⚡ Deploy and Connect
1. Deploy a Server on Edgegap
☑️ To get started, you'll need to create a free account with Edgegap. No credit card required.
☑️ Create a new app version for your application, choose Fusion 2 Asteroids Sample.
☑️ Open your new project in Unity.
☑️ Navigate to Tools / Edgegap Hosting, then to step 6. Deploy a Server on Edgegap.
☑️ Press Deploy to cloud and open your new deployment's details.
☑️ Find your deployment's unique, one-time connection details:
Host URL in format
780aa4260e83.pr.edgegap.net.
✅ You may now proceed to the next step.
2. Connect from Editor
☑️ Open your new project in Unity.
☑️ Press the ▶️ Play button to start your game client.
☑️ Input Host URL (connection details from previous step) as room name.
☑️ Press Start Edgegap button to connect to your server.
☑️ Connect a second virtual Player with Multiplayer Play Mode or ParrelSync.
🙌 Congratulations on your first Deployment on Edgegap!
✏️ Customize Server Build
See Unity for Unity to learn how to build and customize servers.
Create an App on Photon
To make the initial demo easy, we used a free tier Photon Cloud account owned by Edgegap.
☑️ Create a free account with Photon.
☑️ Create an Application on Photon:
Multiplayer Game,FusionPhoton SDK,Fusion 2SDK version.
☑️ Find your Application ID in format 85314a99-56fc-4ab3-ba26-50efca09f303 .
☑️ Input your ID in Photon Settings under Tools / Fusion / Fusion Hub (Alt + F).
Integrate Fusion 2 Project with Edgegap
See EdgegapServerManager.cs script for an example integration of Fusion 2 with Edgegap.
Your NetworkProjectConfig must use Peer Mode = Single (Ded. Server), not Multiple (Client-Host)!
Game clients will connect to game servers through Photon Fusion 2 Session (room) feature.
Your game server needs to register it's IP address and external port with the Session name, when calling _runnerInstance.StartGame(StartGameArgs args):
use
GameMode.Serverto ensure your connection isn't relayed over Photon Cloud (adds latency),use
NetAddress.CreateFromIpPortmethod from Fusion,provide server's IP address:
Environment.GetEnvironmentVariable("ARBITRIUM_PUBLIC_IP")provide server's external port:
Environment.GetEnvironmentVariable("ARBITRIUM_PORT_GAMEPORT_EXTERNAL")this is the default port mapping name if you use our Unity plugin to package your server.
Use Edgegap Deployment Host URL as a Session name:
in game server, get it with
$"{Environment.GetEnvironmentVariable("ARBITRIUM_REQUEST_ID")}.pr.edgegap.net"when testing game client, get it from dashboard - deployment details page / Host URL
create deployments for testing from our quickstart hosting plugin,
when live in game client, get it from matchmaking / ticket assignment / fqdn:
see also getting started with Matchmaking.
Troubleshooting
Game Does Not Exist (32758)
Photon rooms require the player to be connecting to the Photon Cloud region where the deployment is located. Deploying from dashboard uses a randomized player IP.
You may need to find the deployment's location on the map, and configure your game client in Assets / Photon / Fusion / Resources / PhotonAppSettings.asset with the matching Photon Cloud region.
Edgegap deploys as close to the player as possible when using our plugins or API so in production, setting Photon Cloud region is not required.
Last updated
Was this helpful?

