The null subsystem includes code for updating certain session state in
RegisterPlayers. It updates thing like
NumOpenPublicConnections which is how I found the bug.
- Setup a multiplayer project with the NULL subsystem.
- Create a session with any name but “Game”.
- Find the session from another game instance.
- Notice that the session that comes back will have
NumOpenPublicConnections == SessionSettings.NumPublicConnections
Reason for the behaviour
The calling code for
RegisterPlayers up the hierarchy is
APlayerState::RegisterPlayerWithSession. This gets a default PlayerState with
GetDefault<APlayerState>(). Apparently, this session name is not set to the actual session this player is trying to join. This does not seem like intended behaviour.
The SessionName passed to
UOnlineEngineInterface::Get()->RegisterPlayer() should be populated from the actual session name that we are trying to join, not the PlayerState default.