Hey there, i just finished the Wiki Page for the Session handling in C++,
but i couldn’t get to know what a “Presence” Session is. Epic it self set it to true
in the ShooterGame.
It is an “FOnlineSessionSettings” boolean attribute:
SessionSettings = MakeShareable(new FOnlineSessionSettings());
SessionSettings->bUsesPresence = bIsPresence;
When translating it into german, it makes no real sense, because i have no idea what a “non presence” Session would be :X
The documentation says “Whether to display user presence information or not”. Does that mean, if i set this to true, i can get Information from the User who created this Session and otherwise not (when searching)?
Maybe someone can help me out here (:
I was trying to figure this out as well.
I am not an expert, but looking at the code it relates to enabling other users to see/join the local user via the clients of online services external to your game (XBoxLive, PSN, Steam et al). Generally this would be friends of the user on a given service OnlineSessionSettings.bAllowJoinViaPresenceFriendsOnly.
eg. bUsesPresence seems to flag FOnlineSession::HasPresence() as true which is used to conditionally open a lobby overlay for the Steam backend.
See also FOnlineUserPresence and IOnlineSubsystem::GetPresenceInterface().
Note that GetPresenceInterface() does not currently seem to be implemented for any of the backends (including Steam). ShooterGame sets this presence info in AShooterPlayerController::SetPause() so it must be used on some platforms. I don’t have the XBox or PS4 source code, so more may be happening in there.
Thanks for the detailed post and the information. That’s what i thought about it too. I looked into the API and in the “FOnlineUserPresence” was a comment to a function that said it would return information about the clients of a given session (or something like that). So it really seems to be that kinda stuff.
So i guess with that you can use friendlists and “is the my friend currently in a game” and things like that.
But i would still wait for a Staff answer. Maybe that would clear things up.
Thanks so far!
Basically it reports what client is doing in a game right now. You can see it used in Epic’s Friend list in the launcher:
The “Plankerton: Retrieve the Data, Very Low Threat” is the presence string here.
OK, that’s pretty straight forward, presence reports what the user is doing in game. But how can Sessions use presence? What does the Online Session Setting bUsesPresence do?