메모
Client-Prediction 기법을 사용하면, 렉이 심한 유저는 상대를 맞힐 수 없는 상황이 발생한다. 이에 대한 처리를 설명한다.
알고리즘은 다음과 같다.
- 매 틱마다 모든 타겟(플레이어, 오브젝트 등등)의 위치를 저장한다. (1틱 = 50ms, 20틱 동안의 기록을 관리한다. 1000ms이 넘어가는 상황에 대해서는 보장하지 않는다.)
- 발사체 발사 이벤트를 받으면, 현재 시간과 클라이언트의 랙을 합해서 틱을 계산한다.
- 해당 틱의 기록에서 발사체와 충돌이 되는 타겟을 찾는다.
- 충돌되는 타겟을 못 찾으면 틱을 현재 틱까지 하나 씩 증가 시키면서 타겟을 찾을 때까지 계속한다
관련성
Fast-Paced 멀티플레이어를 만들 때, 적용하자
날짜
2023.8.28
댓글 없음:
댓글 쓰기