Hello, I’m porting my game to GOG.
My engine version is 4.27
I already have everything prepared for Steam. And, I’m using advanced sessions plugin for it to get list of available sessions. You can see the node in the image below.
Now, I need to get the ping here. For Steam I use onlineBecons to get it, but for GOG it’s not supported. Therefore I use BlueprintSearchResult to get the ping (another image below)
But this returns default value of 9999. So I went to the C++ code to handle it.
I use this method
int32 UGogHelper::RequestPing(const FString& LobbyId)
{
UGogLobbyDataListener* GogUserInfoListener = NewObject<UGogLobbyDataListener>(this);
const uint64 Int64Id = FCString::Atoi64(*LobbyId);
const galaxy::api::GalaxyID SessionId64 = galaxy::api::GalaxyID::FromRealID(galaxy::api::GalaxyID::ID_TYPE_USER, Int64Id);
UE_LOG(LogTemp, Warning, TEXT("Requesting lobby data for %s, Converted it is: %llu"), *LobbyId, Int64Id);
galaxy::api::Matchmaking()->RequestLobbyData(SessionId64, GogUserInfoListener);
// Getting it directly just in case
const int32 SessionPing = galaxy::api::Networking()->GetPingWith(Int64Id);
return SessionPing;
}
Looby ID is valid. But this returns never invokes the listener. So I never get the results
galaxy::api::Matchmaking()->RequestLobbyData(SessionId64, GogUserInfoListener);
Just out of curiosity I also tried this, but this returns -1
const int32 SessionPing = galaxy::api::Networking()->GetPingWith(Int64Id);
Can someone with experience with GOG help me about this? Thanks!