PUN doesn't work in release builds, but it works in Development Builds
When building a release build on any platform, it is not possible to connect to the master, but the development build works fine on any platform, please help!
Best Answer
-
Your release game does not use the Development Region.
So you get "Failed to join room cause Game does not exist" maybe because your clients didn't end up in the same region?! Enable the SupportLogger and you can find the region in the logs. Compare between clients that should join one anothers games.
2
Answers
-
Any logged errors? Which version is it?
0 -
No errors, only warnings, they are shown below.
WebGL requires WebSockets. Switching TransportProtocol to WebSocketSecure. UnityEngine.Debug:LogWarning (object) Photon.Realtime.LoadBalancingClient:DebugReturn (ExitGames.Client.Photon.DebugLevel,string) (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:2577) Photon.Realtime.LoadBalancingClient:CheckConnectSetupWebGl () (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:1135) Photon.Realtime.LoadBalancingClient:ConnectToNameServer () (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:1022) Photon.Pun.PhotonNetwork:ConnectToBestCloudServer () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs:1307) Photon.Pun.PhotonNetwork:ConnectUsingSettings (Photon.Realtime.AppSettings,bool) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs:1207) Photon.Pun.PhotonNetwork:ConnectUsingSettings () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs:1130) Menu:Awake () (at Assets/Scripts/Menu.cs:13)
PUN is in development mode (development build). As the 'dev region' is not empty (ru) it overrides the found best region. See PhotonServerSettings. UnityEngine.Debug:LogWarning (object) Photon.Pun.PhotonNetwork:OnRegionsPinged (Photon.Realtime.RegionHandler) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:2538) Photon.Realtime.RegionHandler:OnPreferredRegionPinged (Photon.Realtime.Region) (at Assets/Photon/PhotonRealtime/Code/RegionHandler.cs:281) Photon.Realtime.RegionPinger/<RegionPingCoroutine>d__17:MoveNext () (at Assets/Photon/PhotonRealtime/Code/RegionHandler.cs:605) UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)
When you try to connect to the master:
Failed to join room cause Game does not exist UnityEngine.Debug:Log (object) Menu:OnJoinRoomFailed (int16,string) (at Assets/Scripts/Menu.cs:21) Photon.Realtime.MatchMakingCallbacksContainer:OnJoinRoomFailed (int16,string) (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:4232) Photon.Realtime.LoadBalancingClient:CallbackRoomEnterFailed (ExitGames.Client.Photon.OperationResponse) (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:2596) Photon.Realtime.LoadBalancingClient:OnOperationResponse (ExitGames.Client.Photon.OperationResponse) (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:2843) ExitGames.Client.Photon.PeerBase:DeserializeMessageAndCallback (ExitGames.Client.Photon.StreamBuffer) (at C:/Dev/photon-sdk-dotnet/PhotonDotNet/PeerBase.cs:872) ExitGames.Client.Photon.TPeer:DispatchIncomingCommands () (at C:/Dev/photon-sdk-dotnet/PhotonDotNet/TPeer.cs:253) ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands () (at C:/Dev/photon-sdk-dotnet/PhotonDotNet/PhotonPeer.cs:1771) Photon.Pun.PhotonHandler:Dispatch () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonHandler.cs:226) Photon.Pun.PhotonHandler:FixedUpdate () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonHandler.cs:145)
and after, nothing happens, the master is located on the itch.io server, the client connects through the editor
Pun version: 2.41, Photon lib: 4.1.6.17, Unity 2021.3.4f1
My connection script:
using Photon.Pun; using Photon.Realtime; using UnityEngine; using TMPro; public class Menu : MonoBehaviourPunCallbacks { [SerializeField] private TMP_InputField joinRoomInput, createRoomInput; private void Awake(){ if(!PhotonNetwork.IsConnected){ PhotonNetwork.AutomaticallySyncScene = true; PhotonNetwork.ConnectUsingSettings(); } } public void JoinRoomByName() => PhotonNetwork.JoinRoom(joinRoomInput.text); public override void OnJoinedRoom() => Debug.Log("Successfully joined room."); public override void OnJoinRoomFailed(short returnCode, string message) => Debug.Log($"Failed to join room cause {message}"); public void CreateRoomByName() => PhotonNetwork.CreateRoom(createRoomInput.text, new RoomOptions{ MaxPlayers = 5 }); public override void OnCreatedRoom(){ Debug.Log("Created room successfully."); if(PhotonNetwork.IsMasterClient) PhotonNetwork.LoadLevel(1); } public override void OnCreateRoomFailed(short returnCode, string message) => Debug.Log($"Failed to create room cause {message}"); }
0 -
When you edit your post, select the code and logs. There is a "paragraph"-sign on the left. Click, then click the Quotation marks (special formatting) and then apply "Code Block" formatting.
0 -
Your release game does not use the Development Region.
So you get "Failed to join room cause Game does not exist" maybe because your clients didn't end up in the same region?! Enable the SupportLogger and you can find the region in the logs. Compare between clients that should join one anothers games.
2 -
I turned off the dev region (left the line empty), turned off the development build, made a new build, and everything worked out well, thanks for the help!
0