Xbox Live 매치메이킹 세션 생성

이 문서는 Xbox Live에서 멀티플레이어 세션을 생성하는 방법에 대해 설명합니다. 이 기능은 사전에 XDP 대시보드에서 생성한 세션 템플릿, 매치메이킹 호퍼 및 보안 장치 연결 템플릿을 사용합니다.

함수 설명

xboxlive_matchmaking_create 함수는 멀티플레이어 세션을 생성합니다. 이 함수는 다음과 같은 인수를 사용합니다:

  • user_id: Xbox 사용자 ID
  • visibility: Xbox 매치 가시성 상수
  • template: 세션 템플릿의 이름
  • hopper: 매치메이킹 호퍼의 이름
  • sdatemplate: 보안 장치 연결 템플릿의 이름
  • matchattributes: (선택 사항) 매치 속성

가시성 상수

가시성은 다음과 같은 상수 중 하나로 설정할 수 있습니다:

상수 설명
xboxlive_match_visibility_open 세션에 다른 사용자가 참여할 수 있음을 지정합니다.
xboxlive_match_visibility_private 세션이 세션 구성원이 아닌 사용자에게 보이지 않음을 지정합니다.
xboxlive_match_visibility_usetemplate 세션 템플릿에서 사용된 값을 사용해야 함을 지정합니다.

반환 값

이 함수는 고유한 요청 ID 값을 반환합니다. 이 값은 세션이 생성되었을 때 발생하는 Social Asynchronous Event를 식별하는 데 사용됩니다. 이 이벤트는 async_load 변수에 다음과 같은 키/값 쌍을 포함합니다:

  • "requestid": 호출 함수에서 반환된 요청 ID
  • "status": "session_created" 문자열로 이벤트 유형을 알립니다.
  • "sessionid": 세션 ID 또는 실패 시 -1
  • "error": 성공 시 0, 실패 시 -1
  • "correlationid": 함수와의 상관 관계를 위한 세션 핸들

함수 사용 예제

아래는 xboxlive_matchmaking_create 함수를 사용하는 예제입니다:

var userID = xboxlive_user_for_pad(global.PadIndex);
result = xboxlive_matchmaking_create(userID, xboxlive_match_visibility_usetemplate, "MatchTicketSession", "MatchTicketHopper", "PeerServerTraffic");

위의 코드는 주어진 게임패드에서 사용자 ID를 검색한 후, 해당 사용자에 대한 매치메이킹 세션을 초기화합니다.

활용 예제

  1. 공개 세션 생성: gml var userID = xboxlive_user_for_pad(global.PadIndex); result = xboxlive_matchmaking_create(userID, xboxlive_match_visibility_open, "PublicGameSession", "PublicHopper", "SecureTemplate");
  2. 비공식 세션 생성: gml var userID = xboxlive_user_for_pad(global.PadIndex); result = xboxlive_matchmaking_create(userID, xboxlive_match_visibility_private, "PrivateGameSession", "PrivateHopper", "SecureTemplate");
  3. 템플릿 사용 세션 생성: gml var userID = xboxlive_user_for_pad(global.PadIndex); result = xboxlive_matchmaking_create(userID, xboxlive_match_visibility_usetemplate, "TemplateGameSession", "TemplateHopper", "SecureTemplate");

이 예제들은 다양한 세션 유형을 생성하는 방법을 보여줍니다.