Hi everyone,
I’m currently developing a multiplayer online game using Unreal Engine 5.1.1, hosted on AWS GameLift with dedicated servers.
My goal is to retrieve the player’s Steam name and Steam ID using the Steam SDK only on the client side, purely for authentication and identity display purposes without using any Steam networking features or interfering with IP-based multiplayer connectivity.
However, when I enable OnlineSubsystemSteam by setting DefaultPlatformService=Steam, I encounter the following error when trying to connect to a GameLift-hosted session via IP:
UEngine :: BroadcastNetworkFailure: FailureType = PendingConnectionFailure, ErrorString = incompatible_unique_net_id
Current Setup:
-
Server:
-
-nosteam is enabled
-
DefaultPlatformService=None
-
Using IpNetDriver successfully
-
-
Client:
-
Needs to use steam_api.h to access SteamFriends() for retrieving display name and SteamID
-
Also uses open to join GameLift sessions
-
Problem:
As soon as I enable DefaultPlatformService=Steam on the client, IP-based connections fail due to incompatible_unique_net_id.
My Question:
Is there a clean and maintainable way to use the Steam SDK or OnlineSubsystemSteam only on the client side to retrieve player information, while still allowing the client to connect to GameLift-hosted matches via IP, and at the same time avoiding any NetDriver conflicts, such as SteamNetDriver replacing IpNetDriver?
Any best practices, experience, or tips from others who have implemented a similar setup would be greatly appreciated!
Thanks