언어:
페이지 정보
태그:
엔진 버전:
언리얼 엔진

온라인 세션 노드

언리얼 엔진

온라인 세션 노드

아래는 블루프린트 를 통한 멀티플레이어 게임 호스팅, 발견, 참가, 종료를 담당하는 노드입니다.

이 노드 각각은 latent 잠복성 노드로, (보통 네트워크를 통해 통신을 해야 하는 작업이기 때문에) 백그라운드에서 작동하다가 미래 어느 시점에서 완료되는 것임을 뜻합니다. 노드 우상단 구석의 시계 아이콘으로로 잠복성 노드인지 알 수 있습니다.

Create Session

CreateSession.png

Create Session 노드는 모든 것이 시작되는 곳입니다. 게임이 세션을 성공적으로 생성하면, 게임의 다른 인스턴스가 (Find Session 노드를 사용하여) 발견한 다음 (Join Session 노드를 사용하여) 참가할 수 있습니다. 이 노드에서, 세션에 허용되는 플레이어 수와 세션을 랜 모드에서 생성할 것인지 지정할 수 있습니다. 지원하는 온라인 서브시스템 모듈의 경우, 랜 모드를 False 로 설정하면 인터넷 게임 생성을 시도합니다.

온라인 서브시스템 및 세션 인터페이스에 대한 개요는, 온라인 서브시스템 개요 문서를 참고하세요.

Find Sessions

FindSessions.png

Find Sessions 노드는 현재 광고되어 참가 가능한 게임 세션 목록을 구하는 노드입니다. 성공적인 호출에서 반환된 BlueprintSessionResult 오브젝트로 서버의 이름, 핑, 플레이어 수를 구할 수 있습니다.

Join Session

JoinSession.png

참가하고자 하는 BlueprintSessionResult 를 알았으니, Join Session 호출에 전달해 줍니다. 게임이 서버에 성공적으로 접속되면, 서버의 맵에 자동으로 이동하여 게임플레이에 참가합니다.

Destroy Session

DestroySession.png

다른 플레이어가 여러분의 게임을 더이상 발견하여 참가하지 못하도록 하려면, Destroy Session 노드를 호출하면 됩니다. 그러면 사실상 세션을 종료하게 되고, 호스트라면 세션이 종료되어 더이상 발견할 수 없게 됩니다.

이 노드는 세션을 나가는 데도 쓰입니다. 클라이언트 역시도 게임을 나갈 때는 이 노드를 호출해야 합니다.

오류 처리 노드

아쉽게도 네트워크 작업을 처리할 때, 오류는 항상 있을 수 있기에 게임에서는 관대하게 처리해 줘야 합니다. 아마도 참가하고자 했던 세션의 호스트가 방금 전 종료했을 수도 있고, 인터넷 회선이 잠깐 죽었을 수도 있으며, 어떤 문제도 발생할 수 있습니다. 블루프린트를 통해 이러한 네트워크 관련 오류를 처리하는 방식에 있어, 게임에 약간의 유연성을 더해줄 수 있습니다.

위에 언급된 세션 작업에서 기인하는 실패는 OnFailure 실행 핀을 통해 보고되므로, 이러한 실패를 원하는 대로 처리하도록 게임을 구성하는 것이 가능합니다. 하지만 특정 유형의 실패 또는 게임플레이 도중에 발생하는 실패의 경우, GameInstance 블루프린트 안에서 호출할 수 있는 오류 이벤트가 한 쌍, Network ErrorTravel Error 가 있습니다.

Event Network Error

EventNetworkError.png

Network Error 이벤트는 게임이 이벤트에 반응하여 오류 유형을 나타내는 Enum 값을 받아 적절히 반응하도록 하는 것이 가능합니다. 예를 들면 사용자에게 대화창을 띄울 수가 있겠지요.

Event Travel Error

EventTravelError.png

Travel Error 이벤트는 Network Error 이벤트보다 빈도는 낮지만, Network Error 로는 처리가 불가능한 유효하지 않은 맵을 로드하려 했다든가 하는 경우를 처리할 수 있습니다.

태그