Listen Server에서 Host가 DestroySession()을 하면 Client는 어떻게 될까?
반대로 Client가 나갈려면 DestroySession()을 하는 것인가? Client가 DestroySession()을 호출하는 것이 말이 되는가?
Session이라 함은 서버 관점의 개념이라 많이 헷갈린다.
레딧의 한 답변은,
일단 기본적으로 진행중인 게임세션에서 나갈려면 Local Machine마다 DestroySession()을 호출해줘야 한다.
클라이언트 프로그래머의 관점에서 Session은 서버를 포함한 모든 Machine에서 독립적으로 존재하고, Host로부터 복사된 것까지 Session이라고 칭하기 때문이다.
Host가 Session을 파괴하면 Client는 그 사실을 알지 못해 그 위치에서 프리징이 걸린다.
복사된 Session은 여전히 있으나 Authority를 가진 Host로부터 복제받지 못하기 때문.
그래서 프로그래머는 Host가 Session을 종료했을 때, Client가 알아차릴 수 있는, Host Crash를 핸들링할 수 있는 일종의
콜백함수를 직접 만들어 줘야한다.
실제로 답변이 사실인지는 직접 테스트 해봐야 할 것이다.
필자가 마네킹 기본캐릭터로 로비에서 리슨서버로 간단한 테스트를 했을 때, 호스트가 (세션이 아닌)게임을 종료했을 때는 클라이언트 측에서도 세션이 자동으로 종료됐던 것으로 기억한다.
Reference : https://www.reddit.com/r/unrealengine/comments/g6y10c/confused_about_multiplayer_destroy_session/
'UE5 > Network' 카테고리의 다른 글
[UE5] About HUD After Seamless Travel (1) | 2024.08.22 |
---|---|
[UE5] Replication - Push Model (0) | 2024.07.31 |
[UE5] Controller in BeginPlay on Server (0) | 2024.07.03 |
Multiplayer Best Practices in UE #NotGDC (1) | 2024.05.07 |
[NDC2019] 카트라이더 Client-Simulated Model 강연 필기 (1) | 2024.04.03 |