이 문제를 해결하는 방법 중 하나는 ‘사소한 것들은 클라이언트에서 판단하기’입니다. 플레이어 자신이 조종하는 플레이어 캐릭터의 위치 계산은 클라이언트에서 판단하고, 클라이언트는 판단 결과를 서버에 보내 주는 것입니다.
이 방법은 플레이어 자신이 조종하는 캐릭터가 즉시 반응하는 쾌적한 경험을 제공할 뿐만 아니라 서버에서 플레이어 캐릭터를 움직이는 데 필요한 연산을 하지 않아도 되므로 서버 처리량이 줄어드는 장점도 있습니다.
하지만 단점도 뒤따릅니다. 클라이언트가 해킹되어서 플레이어 캐릭터의 이동 속도를 굉장히 빠르게 했다면 어떻게 될까요?
이 문제를 해결하려면 다음과 같이 해야 합니다.
1. 클라이언트는 플레이어 캐릭터의 이동 정보를 서버에 보냅니다.
2. 서버는 이동 정보를 받아서 정상적인 값 범위에 있는지 검사합니다.