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:

⚑ 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

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,

  • Fusion Photon SDK,

  • Fusion 2 SDK 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

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 NetAddress.CreateFromIpPort method from Fusion,

  • provide server's IP address: Environment.GetEnvironmentVariable("ARBITRIUM_PUBLIC_IP")

  • provide server's external port: Environment.GetEnvironmentVariable("ARBITRIUM_PORT_GAMEPORT_EXTERNAL")

Use Edgegap Deployment Host URL as a Session name:

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?