매치메이킹 관련 문의

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.9.0
  • 프로젝트명 : Defense
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :
  1. 매칭을 하려면 유저가 각각 방을 생성해야 하는 것 같은데, 그러면 모두 방장이 되는건가요? 실제 방에 참여하게 되었을 경우 최종적으로 방장은 어떻게 정해지게 되나요?

  2. 샘플프로젝트에서는 매칭 서버 접속 종료가 되는 경우가, OnApplicationQuit 가 호출되었을 때와, 호스트가 변경되었을 경우 종료되고 있는데, 그 외의 경우에는 접속종료를 안해줘도 괜찮은가요? 매칭이 되서 게임이 진행된 후, 게임이 끝나고 다시 로비로 돌아왔을 경우에도 이전에 접속했던 매칭 서버는 계속 유지해도 상관없나요?

  3. 매칭 시 추가적인 플레이어 정보가 필요합니다. (해당 정보는 매칭 전에 로딩화면 등에서 보여질 수 있습니다) 예를 들면 매칭이 되었을 경우 내 덱 정보와 상대방의 덱 정보를 보여준다고 할 경우, 상대방의 덱 정보를 어떻게 불러올 수 있나요? OnSessionListInServer 에서 유저 닉네임 정보를 받아오는것 같은데, 해당 닉네임으로 유저정보를 찾아 덱 정보를 출력해주어야 할까요? 그러면 모든 덱 정보 테이블을 private 이 아닌 public 으로 만들어야 할까요? 다른 방법이 혹시 있나요?

안녕하세요 개발자님,
문의하신 내용 순차적으로 답변드립니다.

  1. 방장은 매칭을 주도하는 사람(롤과 비교 시 매칭을 유일하게 돌릴 수 있는 사람)으로, 실제 방은 랜덤으로 매치 결과에 대한 권한이 있는 사람이 됩니다.
  2. 해당 게임은 매칭 외에는 아무것도 안하는 게임이기에 해당 로직을 넣었을 뿐 상관없습니다.
  3. 각자 자신이 가진 카드 정보를 SendDataToInGameRoom로 보내주면 됩니다.
  1. 방장은 랜덤으로 지정된다고 이해하면 될까요? 혹시 내가 방장인지 확인할 수 있는 함수가 있나요?

  2. 그럼 게임이 끝나고 로비로 돌아온 후에도 매칭 서버는 종료하지 않고 계속 유지해도 상관없나요? 아니면 매번 매칭 서버 접속을 종료해주고, 다시 매칭을 시도 할 때 접속을 해주는 것이 좋은가요?

  3. 앞에서 말씀드렸던 정보는 아마도 매칭 전에 보여주게 될 정보일 것 같습니다. 말씀해주신 SendDataToInGameRoom 의 같은 경우 인게임 서버 접속 후 게임에서 동기화가 필요한 데이타를 보내주는 용도로 사용하게 되는 것 같은데요. 그럼 이 함수를 통해 덱 정보를 보내고 서로의 덱 정보를 확인 후 게임을 시작해도 괜찮을까요?

추가로 SendDataToInGameRoom 를 통해 데이타를 보낼 경우 게임시작 이벤트 메세지를 받은 후 보내야할까요?
즉, 인게임 서버접속, 그리고 게임방 접속 이후 게임시작 이벤트가 온 순간부터 데이터 송신(SendDataToInGameRoom) 을 시작해야 하나요?
데이터 송신은 어느순간부터 시작할 수 있나요?

  1. 방장은 랜덤으로 지정됩니다.
    OnMatchInGameAccess,OnSessionListInServerd의 MatchUserGameRecord에서 m_isSuperGamer로 확인가능
  2. 유지하셔도 무방합니다.
  3. SendDataToInGameRoom은 해당 방에 들어올 때부터 가능하나, 유저가 다 들어오지 않는 상태에서 호출하면 그 이후에 들어온 유저들에게 계속 보내줘야 합니다.
    유저 매칭되는 것까지는 UI 상 숨기고 유저들이 다 들어오면 그때 데이터를 서로 전달하여 UI로 표시하는 식으로 구성해주시는 방법이 있습니다.

답변 감사드립니다~!