보스가 뜨면 왜 렉이 걸릴까?
이 영상에 나오는 용어 14개.
- 광역기
- 한 번에 여러 대상을 맞히는 범위 공격이다. 피격 판정과 결과 알림이 피격 인원과 관전 인원의 곱만큼 생긴다.
- 다운링크
- 클라이언트가 서버로부터 받는 방향의 회선이다. 수신량이 회선 속도를 넘으면 느린 회선부터 밀리고 끊긴다.
- 델타 압축
- 이전에 보낸 상태와 비교해 바뀐 값만 보내는 방식이다. 패킷 크기를 줄인다.
- 브로드캐스트
- 한 플레이어의 상태 변화를 그 플레이어를 볼 수 있는 다른 플레이어 모두에게 복제해서 보내는 것이다. 인원이 N이면 한 명의 변화가 N − 1개의 갱신이 된다.
- 시야 반경
- AOI의 크기를 정하는 거리다. 반경이 2배면 면적은 4배, 보이는 인원은 밀도가 고르면 약 4배가 된다.
- 아웃바운드
- 서버에서 클라이언트 방향으로 나가는 트래픽이다. 브로드캐스트가 늘면 인바운드보다 훨씬 크게 증가한다.
- 어그로
- 몬스터가 누구를 공격할지 정하는 위협 수치다. 보스는 참가자 N명의 위협 목록을 계속 다시 계산한다.
- 인스턴스 · 채널 분리
- 같은 지역을 여러 사본(채널, 인스턴스)으로 나눠 한곳에 모이는 인원을 줄이는 방식이다. 보스전을 별도 서버나 스레드로 떼는 것은 부하를 격리할 뿐 인원은 줄이지 않는다.
- 존 (zone)
- 한 서버 프로세스나 스레드가 담당하는 게임 세계의 구역이다. 보스가 있는 존에 인원이 몰리면 그 존 서버만 부하가 튄다.
- 틱
- 서버가 게임 세계를 한 번 갱신하는 주기다. 20Hz면 50ms마다 한 번이고, 이 시간이 한 틱의 처리 예산이다.
- AOI (Area of Interest)
- 플레이어 주변에서 서버가 정보를 보내 줄 범위다. 보통 시야 반경으로 정하고, 그리드로 나눠 주변 대상을 찾는다.
- LOD (Level of Detail)
- 거리나 중요도에 따라 상세도를 낮추는 기법이다. 서버는 갱신 빈도를, 클라이언트는 그래픽 품질을 낮춘다.
- N × (N − 1)
- N명이 모두 서로를 볼 때 한 틱에 필요한 전송 수다. 인원의 제곱에 비례해서 늘어난다.
- pps (packets per second)
- 초당 패킷 수다. 작은 패킷이 많을 때는 대역폭보다 pps가 먼저 NIC나 커널 처리 한계에 걸리기도 한다.