안녕하세요!
뒤끝매치 관련 문의가 있어 글을 남깁니다.
저희 팀은 현재 뒤끝 서버를 이용해 1:1 실시간 대전 게임(탑 vs 바텀)을 만들고 있습니다.
현재 이동과 아이템 생성 함수를 제작하고 있으며, 아군은 항상 아래 진영에 위치합니다.
그에따라 이동 메세지를 받으면 세션 아이디를 비교하여 자신일 경우 받은 위치와 받은 방향을 기준으로 계산하고, 받은 메세지가 자신이 보낸 메세지가 아니라면(즉, 적 캐릭터의 이동 메세지라면) 받은 방향을 반대로 계산하여 반대로 움직이도록 계산되어 있습니다.
여기서 궁금한 것은 뒤끝 매치 예제 게임을 받아보니 모든 계산을 호스트 클라이언트에서 계산하도록 처리했는데,
그렇게 되면 통신량이 1회분 더 증가하는 것으로 예측됩니다.
기존: 각 클라이언트가 움직이면 현재 위치정보, 방향정보, 세션아이디를 브로드캐스팅.
받은 메세지의 세션아이디를 비교하여 자신이 보낸 것은 정방향, 자신이 아닌 것은 역방향으로 계산 처리.
호스트에서 계산: 각 클라이언트는 움직이면 방향정보와 세션 아이디만을 전송(위치정보 조작 불가)
받은 메세지의 보낸 사람이 호스트인지 구별하여 호스트가 아니라면 리턴.
호스트라면 호스트 클라이언트의 캐릭터 좌표를 기준으로 각 계산하여 계산된 좌표값을 다시 브로드 캐스팅.
호스트는 이미 계산이 되었기 때문에 이 메세지는 호스트가 아닌 클라이언트에게 전달되어 좌표값을 수정.
호스트에서 계산하는 만큼 위치정보 조작의 위험성은 줄어들겠지만, 송신량이 필연적으로 많아지는 것을 확인했습니다.
그럼에도 불구하고 예제 게임에서는 호스트에서만 계산하는 방식이 꼭 유리한 것인지 궁금합니다!
각 클라이언트에서 메세지를 보내고 처리하는 것이 보안에 크게 취약한지 등의 정보가 궁금합니다!