Shipping game build continue to work when Steam is closed and UE_PROJECT_STEAMSHIPPINGID is 0

Hi!

I’ve noticed that our shipping build for the Steam version of our game continues to work fine even when the Steam application is closed and UE_PROJECT_STEAMSHIPPINGID is 0.

I know, that UE_PROJECT_STEAMSHIPPINGID has not to be 0, but I wanted to let you know about this issue. It looks like a problem, but maybe I’m wrong.

After looking into the OnlineSubsystemSteam, I noticed that there may be a flaw in the FOnlineSubsystemSteam::InitSteamworksClient method.

My quick fix was to add else block with exiting after to “if (bSteamworksClientInitialized)” check.

    if (bSteamworksClientInitialized)
    {
       // ...
    }
#if UE_BUILD_SHIPPING
    else // new code starts
    {
       UE_LOG_ONLINE(Error, TEXT("Steamworks client has not been initialized, exiting."));
       FPlatformMisc::RequestExit(false);
    } // new code ends
#endif


    UE_LOG_ONLINE(Log, TEXT("[AppId: %d] Client API initialized %i"), GetSteamAppId(), bSteamworksClientInitialized);
    return bSteamworksClientInitialized;

Maybe there is some other logic that have to solve this problem?

Thank you in advice

Hi,

This is expected, as unless the user doesn’t have valid access to the game, we don’t intend for an initialization error like this to be fatal, at least not at the OSS level.

It’s generally up to the project to handle this situation however needed.

Thanks,

Alex