통신 장애와의 뛰어난 교류 방법

3221 단어 커뮤니케이션
※ 이 기사는'AltPlus Advent Calendar 2016 12일차 기사입니다.
2016년 10월 정음회사에 입사한 토시코호마입니다.
나는 엔지니어 출신으로 지금 매니저를 하고 있다.
최근 몇 년간 스마트폰 게임에서 여러 사람이 동시에 하는'다중 전투'도 늘고 있다.
이 때문에 다중 통신 엔진이 필요하지만 골목마다 클라우드 서비스에서 사용할 수 있는 매우 우수한 엔진이 몇 개 있기 때문에 지금은 전편집으로 게임 서버를 개발할 기회가 거의 없다.편리한 세상이 되었다.
그럼에도 불구하고 많은 전투를 동기화하기 위해 실시간 통신에는 함정도 많고 엔진을 이용해도 몇 가지 반할 수 있다.
여기서 함정 중 하나인 인터넷상의'커뮤니케이션 라그'를 써보고 싶어요.
대표 프로토콜
실시간 동기화 게임에 사용되는 통신 프로토콜의 대표로 TCP, UDP, RUDP 세 가지가 있지만 각각의 장점과 단점이 있다.
TCP
UDP
RUDP
리셋 제어

×

순서 제어

×

유량 제어

×

지출하다
×


초월NAT

×
×
TCP는 확실히 상대방에게 그룹을 보내지만 비용이 많이 들고 처리도 무거워진다.
UDP는 처리가 가볍지만 신뢰성이 낮아 리셋 처리가 필요할 때 자체적으로 실시해야 한다.
RUDP는 TCP와 UDP의 장점이지만 정식 규격이 없기 때문에 현재 공급업체의 실제 설치가 많다.
어떤 협의를 채택하는지는 게임의 특성에 따라 다르다.
만약에 라운드 전투에서 모든 정보를 동기화해야 한다면 TCP를 이용하고 경기처럼 실시간 동기화를 중시하는 게임이라면 이동 정보가 다소 부족하더라도 속도를 중시하여 UDP를 이용한다.
통신의 이상형
4인 대결의 멀티 플레이 게임의 경우 "A씨가 공격하는 순간 B-D씨에게 행동을 알리고 전원이 동시에 동일한 화면을 보여주겠다"는 게 이상적이다.
이상을 실현하기 위해서는 통신 지연과 데이터 패키지 분실 등 모든 것이 일어나지 않는 통신 환경이 필요하지만 인터넷에서는 비현실적이다.

실상
광속으로 통신해도 정보는 초속 30만㎞로만 가능하다.따라서 통신 경로의 물리적 거리가 길수록 지연이 커진다.
경로에 지나는 라우터가 늘어나면 처리 지연도 늘어나고 중도 통신대역폭이 작아지면 통신속도도 제한된다.LTE 등 이동통신이라면 전환(기지국 전환)으로 인한 지연과 돌발도 무시할 수 없다.
여기에 기계와 케이블의 물리적 고장과 소프트웨어 고장 등으로 그룹이 분실될 가능성도 있다.

어떻게 하면 좋을까요?
난폭하게 말하면 네트워크의 통신 장애를 완전히 방지하는 것은 불가능하다.통신 경로상의 일은 통제할 수 없으니 포기할 수밖에 없다.
그렇다고 아무것도 신경 쓰지 않을 수도 없으니 가능한 한 대처법을 준비해야 한다.나는 몇 가지 요점을 열거했다.
  • 목적에 적합한 계약 선택
  • 패키지 크기와 통신 횟수를 늘려 회선 부하를 낮춘다
  • 카펫이나 가방을 잃어버린 경우에도 안전측에 설치하여 쓰러뜨려야 한다
  • 응용 지연을 최소화하기 위해 효율적인 코드를 쓴다
  • 당연한 일이지만'카펫은 반드시 일어난다'는 것을 깨닫지 못하면 의외로 빠져든다.
    게임 디자인에 대한 피드백
    엔지니어로서 할 수 있는 일이 하나 더 있다.
    '실시간 전투는 처음이야~'이런 기획자를 보면'소켓은 제로가 아니야!!'계속 그렇게 말해.이것은 매우 중요한 것이다.
    카펫을 고려하지 않고 게임 디자인을 결정하면 사내 시험을 볼 때(LAN 환경이라서) 활동하지만 활용 환경에 가져가면 럭비 게임이 되기 쉽다.
    게임 디자인 등급인 라그를 고려해 통신 시작 시 효과를 넣고 시간 지연을 설정하고 이동 규격을 간소화해 수 프레임 뒤의 위치 정보 보완이 용이하다는 점을 고려하면 결과적으로'라그가 느껴지지 않는 디스플레이 방식'을 제공할 수 있다.
    더 나은 게임을 개발하기 위해서는 기획과 기술의 협력 관계도 중요하다.
    최후
    저는 예전에도 게임 개발 회사에서 일했습니다. 7년 동안 시대의 변천에 따라'휴대전화의 통신 대전 응용 프로그램','웹 소사지','휴대전화의 다대전 응용 프로그램'등 다양한 제목을 개발할 기회가 생겼습니다.그 전 12년 동안 저는 SI 기업에서 일했고 매일 사회 인프라 시설의 통신 제어 시스템을 통해 2진 통신 일지를 개발했습니다.
    그렇게 생각하면'자꾸 통신하는 것'을 꾸준히 만든 지 20년이 됐다.공인된 아저씨예요.요즘은 스스로 실천할 기회가 완전히 줄어들었지만, 아저씨의 과거 경험과 기술이 누구에게 유용했으면 좋겠다고 생각합니다.
    여기까지 읽어주셔서 감사합니다.
    참조 링크
    온라인 게임에 대해 매우 이해하기 쉬운 해설을 진행하였다.추천
    [CEDEC2010] 온라인 게임의 배후에 무슨 일이 있었는지.인터넷 엔지니어의 관점에서 볼 때, 게임 설계의 대원칙은

    좋은 웹페이지 즐겨찾기