언리얼 엔진 5

언리얼엔진5 C++로 정복하기(9) 온라인 스팀 서비스로 멀티플레이

Voitcon 2024. 11. 7. 20:27

1. 세션 인터페이스 초기화 및 변수 선언

IOnlineSessionPtr는 세션을 관리하는 인터페이스 포인터이다. 이를 통해 언리얼 엔진의 온라인 서브시스템을 사용하여 세션 생성, 검색, 참여 같은 작업을 수행할 수 있다.

 

2. 세션 생성 함수 (CreateGameSession)

이 함수는 게임 세션을 생성하기 위한 핵심 로직이다. 세션의 유효성을 확인한 후, 이미 존재하는 세션이 있으면 삭제하고 새로 생성하고. 설정은 최대 플레이어 수, 광고 여부, 그리고 MatchType을 포함해 다양한 속성을 구성할 수 있다.

 

3. 세션 생성 완료 콜백 (OnCreateSessionComplete)

이 함수는 세션 생성이 완료된 후 호출된다.. 성공했을 경우 디버그 메시지를 통해 세션 이름을 출력하고, ServerTravel()을 사용해 로비 맵으로 이동시킨다. 실패 시에는 오류 메시지를 출력한다.

 

4. 세션 검색 함수 (JoinGameSession)

이 함수는 세션을 검색한다.. FindSessionsCompleteDelegate가 완료될 때 호출될 콜백을 등록하고, 검색 설정을 통해 LAN 여부와 세션 상태 조건을 설정한다.

 

5. 세션 검색 완료 콜백 (OnFindSessionsComplete)

세션 검색이 완료되면 SearchResults를 순회하면서 MatchType을 확인하고, 특정 조건을 만족하는 세션에 참여한다. 이때 참여 요청을 보낸다.

 

6. 세션 참여 완료 콜백 (OnJoinSessionComplete)

이 함수는 세션 참여가 완료되었을 때 호출된다. 참여에 성공하면 서버의 연결 주소를 가져와 ClientTravel()로 해당 주소로 이동하고. 이 과정에서 클라이언트는 세션에 합류한다.

 

코드 구조의 핵심 정리

  1. 델리게이트 초기화: 각 세션 이벤트에 대해 적절한 콜백 함수가 등록된다.
  2. 세션 생성 및 설정: 게임 세션을 생성하고 필요한 설정을 적용한다.
  3. 세션 검색 및 참여: 세션 조건을 설정해 세션을 검색하고 적절한 세션에 참여한다.
  4. 클라이언트 이동: 서버의 주소를 이용해 클라이언트가 해당 세션으로 이동한다.