대전모드 통신 오류시 승패 처리방식

문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족한 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.5.0
  • 프로젝트명 : RSD
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요.

뒤끝 매치를 통해서 PvP를 할때 슬립을 유지했다가 다시 활성화를 하는 행위를 반복하다보면,
상대방은 패킷이 오지 않아서 동작을 하지 않는 경우가 있는데,
이때 상대방의 패킷이 30초 이상 안올경우 통신을 끊을수 있도록 조치를 했습니다.

여기서 문제는, 통신을 끊어서 나갔는데 만약 상대가 다시 접속을 할 경우 승/패 처리가 자동으로 되어 문제가 발생하고 있습니다.

슬립을 5초이상 했을 경우 승패처리가 되도록 혹은 상대방의 통신이 끊겼을때 바로 승리 처리를 진행하고 있었는데, 위 같은 행위를 한다던지, 알수없는 무슨 행동을 하였을때 계속 패킷을 대기하고 있는 상황입니다.

핵심적으로 뒤끝서버에게 질문드릴 내용은,

슈퍼게이머 형태가 아닐때( 양쪽 모두가 패킷을 보내야만 결과처리가 진행되는 형태일때 )
한쪽에서 결과 패킷을 보내고나서 상대방측에서 패킷이 특정시간 이상 안올경우 뒤끝 서버에서 자동으로 처리해줄수 있는지 궁금합니다.

안녕하세요 개발자님.

패킷 미발송 및 슬립모드라면 Backend.Match.Poll()이 호출되지 않는 것이라고 보면 될까요?
현재 일정 시간 패킷 미발송으로 인한 자동 결과 처리 기능은 지원하고 있지 않습니다.

말씀하신 사항은 개발팀에게 피드백으로 전달하여 검토하도록 하겠습니다.

슈퍼게이머와 기본의 차이점은 게임 결과 방식뿐입니다.

슈퍼게이머 모드라면 슈퍼게이머로 지정된 유저가 각 클라이언트들에게서 패킷이 5초안에 발송이 되는지 확인 하는 로직과
결과를 보내는 로직을 각 클라이언트들이 각자 서버로 결과를 보내는 것을 슈퍼게이머에게 보내서 취합 후 대신 결과를 보내는 로직으로 변경하기만 하면 기본 처리 로직과 같으면서 결과 처리 구현이 가능합니다.(다만 슈퍼게이머가 패킷 미발송으로 인해 다른 슈퍼게이머로 변경되기까지 20초가 걸리므로 5초는 구현이 어려울 것 같습니다.)

넵 상대가 Poll이 호출이 안되고 있는 상황에 그렇습니다.

우선 클라에서 패킷을 보내고 상대방이 안오면 게임 종료 처리를 진행하였는데,
간헐적으로 둘중 한명이 승리 혹은 패배처리가 되고있습니다. (랜덤하게 되어서 아직 정확히 파악이 안되었습니다. )

아래 슈퍼게이머, 기본에 대해서 부가 설명을 드리자면
현재 저희 게임은 1:1 매치만 사용중이며
기본형식(둘다 승패처리를 보내야 게임 종료되는 형식)을 사용하고 있는데,
기본 형식을 사용하는 중에 한명이 결과 패킷을 보내지 않는다면
게임은 영원히 끝나지 않는건가요? 해결법은 슈퍼게이머로 변경하는 방법말곤 없는걸까요?

예를들어 둘중 한명이 결과를 보냈는데, 20초간 다른 사람이 결과를 보내지 않으면
자동으로 한명이 보낸 패킷 결과를 토대로 처리하는 방법이 없는지 궁금합니다.

네 슈퍼게이머 모드가 아닌 일반 게임일 경우, 모든 유저가 게임 결과를 전송하거나 콘솔에 남아있는 제한시간이 끝나기 전까지는 방이 유지됩니다.

현재로서는 게임 결과 모드를 슈퍼게이머로 변경 후, 다른 유저의 패킷이 끊어져 20초 뒤에 Backend.Match.OnSessionOffline이 호출되었을 경우에 슈퍼게이머가 바뀌면서 게임 결과를 호출하는 방식을 추천드리며,
기본형식으로는 유저가 혼자 남았을 때는 게임 결과 처리가 불가능하다는 점 참고해주시면 감사하겠습니다.