출처: https://jp.quora.com/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%A7%E3%81%AF-%E3%81%8A%E4%BA%92%E3%81%84%E3%81%AE%E4%BD%8D%E7%BD%AE%E3%81%8C%E3%81%A0%E3%81%84%E3%81%B6%E9%9B%A2%E3%82%8C%E3%81%A6

우선 간단하게 격투 게임이 어떻게 성립되어 있는지 설명한다.

■ 격투 게임이 어떻게 성립되는지

아래 화면을 참조하세요. 이것은 철권 7이라는 격투 게임의 연습용 화면이다.

왼쪽에 있는 여성이 니나, 오른쪽에 있는 남성이 카즈야라는 캐릭터이다.

글쎄, 이번에 캐릭터 이름은 아무래도 좋다.

여기서 니나가 왼손으로 펀치를 쏜다

화면 중앙 근처에 있는 니나측의 문자열 정보에 「공격 발생 프레임 10」이라고 표시되고 있다.

이것이 의미하는 바는 「버튼 입력이 완료되고 나서 펀치가 상대에게 히트할 때까지 10프레임 걸린다」라고 하는 것이다. 프레임은 60분의 1초를 의미하는 시간 단위이다.

1시간 = 60분

1분 = 60초

1초 = 60프레임

로 되어 있다.

(이 프레임이라는 단어는 격투 게임에 한하지 않고 모든 게임 장르에서 공통 용어이므로 알아두면 좋다고 생각한다.)

그러면 카즈야가 왼발로 킥을 발한다.

이번에는 카즈야 측의 문자열 정보에 「공격 발생 프레임 19」라고 표시되고 있다. 그렇다. 카즈야의 킥은 버튼 입력이 완료된 후 상대에게 히트하는데 19 프레임이 걸린다는 것이다.

방금 전의 니나의 펀치보다 공격 발생이 9프레임 늦다. 니나와 카즈야가 똑같은 타이밍에 기술을 발하면, 니나의 펀치가 먼저 카즈야에 히트하고, 카즈야의 킥은 도중에 파괴된다.

그러나 위력은 카즈야의 킥이 위이므로, 이 카즈야의 킥은 니나의 펀치와 비교하면 고위험이지만 하이 리턴인 기술이라고 말할 수 있다.

상기는 단지 일례이지만 각 캐릭터 모두 50~100 가까이의 기술을 가지고 있고, 그 중에서도 틈이 적은 작은 기술로 공격할지, 일발 역전의 하이 리턴을 노릴지, 프레임(60분의 1초) 단위의 고도이고 신속한 상황 판단이 격투 게임에서 항상 이루어진다.

실제 게임은 아래 동영상과 같은 속도로 움직인다.

https://youtu.be/r8eDsNB-X2w

게임으로서 성립하는 레벨로 움직이려면, 자신의 캐릭터가 사용하는 기술은 조건 반사 레벨로 낼 수 있게 되어 있을 필요가 있다. 또, 상대의 주력기의 공격 발생 프레임, 가드했을 때의 경직의 길이 등을 사전에 머리에 넣어 두는 것도 게임을 유리하게 진행하기 위한 대책이다.

어떻나요? 뇌내에서 순간적으로 처리해야 하는 정보량의 많음에 놀란 것은 아닌가요? e스포츠에서는 자주 말하는 것으로 감각으로서는 게임보다 스포츠에 가까운 것이 있다.

여기서 참고까지 과거의 격투 게임을 보자.

아래 동영상은 그 유명한 초대 스트리트 파이터 2의 게임 플레이 영상이다.

https://youtu.be/46FuCdIrp6U

몸통을 입고 있는 것이 친숙한 류라고 하는 캐릭터이지만, 그의 기술은 던지기 기술과 필살기 포함해도 30 정도이다.

또 안쪽이나 앞으로 이동하는 액션도 없고, 방금전의 철권 7과 비교하면 상당히 움직임이 슬로우하다.

이와 같이 신구 비교를 하면 게임 플레이어의 동체 시력이나 반사 신경도 시대의 흐름과 함께 진화하고 있는 것을 느껴 주셨던 것이 아닐까?.

이상이 현재의 격투 게임의 세계에 대한 개요였다.

■ 통신 지연을 피할 수 있습니까?

이제 마침내 본 문제에 들어간다.

해외 수준으로 떨어져 있는 사람이 왜 신속하게 동기화하여 통신할 수 있는가? 라는 것이다.

결론부터 말씀드리면 신속하게 동기화되지 않는다. 지연이 발생했다.

질문에는 일본과 브라질 정도가 있었으므로, 일본과 브라질에서 통신을 하면 어느 정도의 지연이 발생하는지를 보자.

정보 처리를 학습한 사람이나 정보 처리계의 업무 경험을 가진 사람이라면, Ping 커맨드 등으로 통신 지연의 상황을 확인한 적이 있을것이다. 일본에서 브라질을 향해 Windows에서 Ping 명령을 쳐 보면.

패킷은 4개 모두 「시간 = 275ms」라고 표시되고 있다. 이것은 Ping의 패킷이 브라질까지 도착하고 응답 패킷이 여기로 돌아오는 데 걸린 시간이다. 브라질에 패킷이 도착한 시간을 프레임으로 환산하면 1초=1,000ms 이므로 60×275/1,000÷2=8.5프레임이다.

즉 버튼 입력이 완료되고 나서 8.5프레임 후에 브라질측에서는 공격이 발생하기 시작하고, 거기로부터 10프레임 후에 이쪽의 공격이 상대에게 히트하게 된다.

격투 게임은 앞서 설명한 대로 프레임 단위로 경쟁하는 세계이므로 4프레임 이상 지연하면 게임이 되지 않는다. 8.5 프레임의 지연은 완전히 아웃이다.

그리고 이 지연 자체를 해소하는 것은 현대 과학에서는 불가능하다.

이것은 초등학생의 지식에서도 설명할 수 있다. 빛은 1초간에 지구를 약 7.5 바퀴 돈다. 일본 브라질 사이는 대체로 지구 반 바퀴 정도의 거리이다. 만약 일체의 병목 없이 통신이 빛의 속도로 일직선으로 진행되어도, 60×0.5/7.5=4프레임의 지연이 발생하는 것을 알 수 있다.

방금 전, 격투 게임은 "4 프레임 이상 지연하면 게임이 되지 않는다."라고 말했다. 그런데 이 철권 7을 플레이하면 전세계의 플레이어와 지연을 느끼지 않고 플레이할 수 있다. 이 믿기 어려운 유저 체험은 어떻게 실현 되었을까?

온라인 대전의 역사를 따라 설명한다.

우선, 온라인 대전이 탄생한 초기에는 「딜레이 방식」이라고 불리는 동기 방식이 채용되고 있었다.

이것은 네트워크에서의 정보 전달 지연을 고려하여 입력에 대해 일부러 화면을 지연시키는 방식이다. 이것에 의해 상대의 화면과 자신의 화면의 표시를 동일하게 하고 있다.

그림으로 이 대책을 표현해 본다.

우선, 아무것도 대책을 하지 않는 경우에 지연이 발생하는 이미지이다.

아래는 딜레이 방식을 채용하여 동기를 취하는 이미지이다.

방금 전의 일본과 브라질의 예에 비유하면, 자신의 화면에서 버튼을 입력하고 나서 바로 공격 모션으로 이행하지 않고, 딜레이에 의한 모션 대기가 발생하고, 8.5 프레임 후에 공격 모션으로 이행 한다는 것이다.

어라? 라고 생각한 사람의 감각은 올바르고, 이러면 지연 자체가 격투 게임에는 엄격하다는 근본적인 문제가 해결되고 있지 않는다. 실제로, PS3가 탄생한 당초(2006년)의 대전 격투 게임에서 채용되고 있었지만, 게임 센터의 조작감에 익숙했던 많은 격투 게임의 플레이어에게 있어서 당시의 온라인 대전은 참기 힘든 조작감이었다.

■ 지연을 지연이라고 생각하지 못하도록 하기 위한 기술

그리고 약 10년이 경과한 2016년경, 새로운 「롤백 방식」이라고 하는 동기 방식이 구현된다. 이것은 격투 게임의 세계에 획기적인 사용자 경험을 가져왔다.

롤백 방식을 앞의 이미지도로 표현하면 아래와 같다.

딜레이 방식에서는 자신의 화면을 상대의 움직임에 맞추어 굳이 지연시켜 동기화를 취하는 것이었지만, 롤백 방식은 정반대의 발상으로, 상대의 화면에서, 입력 도달으로부터 공격 HIT까지의 사이에 있는 공격 모션의 일부를 생략하여 동기화를 수행한다.

이렇게 하면 자신의 화면에서 지연을 느끼지 않고 편안하게 플레이 할 수 있다.

상대의 화면에서 하면 기술의 모션이 끊어져 표시되는 것은 아닐까? 라고 생각할 수 있다. 사실, 끊어졌다. 그러나 앞의 동영상으로 보여준 것 같은 풀 스피드라고 판별할 수 없는 정도에는 부드럽게 움직여 보이는 것이다. 착시에 가까운 것이다.

이것이 서로 이루어지는 것으로 지연을 느끼지 않고 전세계의 플레이어와 온라인 대전이 실현되고 있다.

여기서 한 가지 의문이 나올 수 있을 것이다.

자신의 화면에서 버튼 입력을 하고 나서, 상대의 화면에 입력 도달할 때까지, 상대의 화면에서 자신의 캐릭터는 어떻게 비치고 있는가? 라는 것이다.

대답은 "버튼 입력 이전 직전의 동작과 동일"이다.

자신의 화면의 버튼 입력 직전의 동작이 직립 상태이면, 버튼 입력하고 입력 도달까지의 사이 상대측의 화면에 비치는 자신의 캐릭터는 직립 상태가 된다. 이것은 게임 프로그램이 플레이어는 직전의 동작과 같은 움직임을 할 것이라고 미래 예측을 하고 표시시킨 결과이다. 그리고 이 미래 예측은 약 90% 적중하는 것으로 알려져 있다.

10%에 해당하여 벗어난 경우는 어떻게 될까?

대답은 간단하다. 미래 예측이 벗어나 정확한 위치로 수정(롤백)된다. 이것은 롤백 방식의 이름 유래이다.

롤백되는 이미지도는 아래와 같다.

3컷째에서 상대의 화면에서는, 본래 이루어지지 않은 전진을 하고 있다.

그러나 네 번째 프레임의 동기화 시 올바른 점프 모션으로 수정되었다. 부자연스러운 수정처럼 보일지도 모르지만, 이것도 풀 스피드로 움직이고 있을 때에 유저는 판별할 수 없는 정도로 부드러운 것이다.

이상과 같이 도중의 모션을 생략하는, 미래 예측이 벗어나면 수정한다는 것을 고회전으로 실시하는 것으로, 실제로 발생하고 있는 지연을, 지연이 발생하지 않는 것처럼 보이고 있다 .

물론 통신 품질이 극단적으로 나쁜 환경에서는, 캐릭터가 워프한 것처럼 보인다. 격투 게임에 있어서는 그러한 상황에서 게임을 성립시키는 것은 어렵기 때문에, 일정한 라인을 넘으면 통신 에러로 세션을 절단하는 구조도 프로그램에 넣고 있다.

또한,이 획기적인 기술은 2019년 10월 MIT 라이선스의 원래 오픈 소스 되었다. 현재는 Github에서 무료로 제공되고 있으며, 많은 온라인 게임에서 채용되어 업계의 디팩트 스탠다드 라고 말할 수 있는 상황이 되고 있다.

https://ja.wikipedia.org/wiki/GGPO 

이상이, 해외 레벨에서 떨어져 있는 사람끼리 왜 신속하게 동기화해서 통신할 수 있을까? 라는 질문에 대한 대답이다.