빛은 충분히 빠르지 않다

빛은 충분히 빠르지 않다라는 글을 보고 생각했다. 이론상 가장 빠르다는 빛을 매개로 데이터를 전송한다고 해도 격투 게임을 네트워크 플레이하는데는 충분히 빠르지 않다는 이야기다.

일반적으로 평균적인 인간의 반응 시간(reflex time)를 테스트하는 사이트를 보면 평균은 대략 265ms이고 중간값은 255ms이다. 가장 빠르다는 경우도 100ms 이하로는 내려가지 않는다.

100m 달리기 선수 중 가장 빠른 출발 시간은 1995년 영국의 린포드 크리스티가 세운 110ms라고 한다. 1ms에 의해서 기록이 달라지는 세상이다 보니, 출발선에서 총성이 1번 레인에서 8번 레인까지 전달되는 시간으로도 20ms를 손해보고 시작한다는 세상이다.

빛은 지구 한 바퀴를 도는데 134ms가 걸린다. 지구 반대 쪽의 사람에게 핑을 날리고 돌아오는데 134ms라는 소리다. 즉 지구 반대편의 사람과 게임을 한다면, 최소 UDP 패킷으로 데어터를 전달하는데에 이론상 최소 67ms가 걸린다는 이야기이고, 100m 달리기로 비유하자면 26번 트랙에 있는 선수 정도 되겠다. (전달 방법에 의해 걸리는 각종 오버헤드를 감안하면 이 이하는 불가능하다는 이야기도 되겠다.)

격투 게임 세계에는 프레임 단위로 반응을 한다는 미신이 있다. 상대의 행동을 보고 거기에 반응을 한다는 이야기인데, 이건 동작의 시작 프레임을 보고 해당 동작을 ‘예측’해서 반응한다는 이야기이다. 신경의학에서 인간의 청각 자극이 뇌에 전달되는데는 8ms 정도, 시각이 전달되는데만도 20~40ms 정도가 걸린다고 한다. 보는 순간 이미 최소 20~40ms 전 상황이다.

즉, 초당 60프레임(f)의 게임이라고 하면, 16ms당 한 화면 정도가 나온다는 이야기인데, 이미 눈으로 자극을 받고 뇌에 전달하는 시간 동안 2f이 지나간다는 말이다. 여기에 자극을 받은 이후 판단까지는 (저 통계의 가장 빠른 사람이라고 해도) 최소 80ms는 지나간다는 말이고, 판단을 하고 반응하는 순간은 최소 5~6f 지난 상황이다. 즉 보고 판단하는 것은 불가능하다. (따라서 게임의 동작은 최소 동작의 시작부터 타격까지의 최소 시간이 200ms는 되어야 된다는 말이기도 하겠다.)

정리하자면, 격투 게임에서 플레이어들이 ‘보고 판단’하는 것은 사실상 불가능하다. 대체로 일련의 동작들이 경험적으로 어떻게 연결되는지 패턴을 학습하고 이에 대해서 미리 대응하는 것이라고 말하는게 맞다. 이걸 개인적으로 ‘보고 막았다’고 과장할 수는 있겠지만, 실제로 그건 거의 불가능하다. (물론 동작의 길이가 엄청 길어서 시작부터 타격까지 200ms 이상이고 플레이어의 RT가 150ms 이하 선이라면 가능할 수도 있겠다.)

상황이 이렇다면, 어떤 타격의 시작 동작이 같거나 유사한 동작이 없게 해주는 쪽이 개발하는 관점에서 좋은 방법이겠다. 최초 1~2f를 보고 동작을 예측해야 하는데 같은 시작 동작을 가진 동작이 여러 개라면 완전 복불복인 상황이 되는 것이니까, 깔끔하게 다른 시작 동작으로 보여야 ‘보고 막는 상황도 가능’하게 할 수 있겠다. 그리고 타격까지의 시간은 200ms 이상이어야하고. 흠.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중