모던 워페어 4 의 Server Culling 은 월핵을 잡지 않고 월핵이 읽을 정보를 안 보낸다
관리자님이 접수함에 Call of Duty 공식 계정의 X 게시물 하나를 넣어 두셨습니다. 상대가 실력으로 이겼는지 벽 너머로 나를 보고 있었는지 의심하게 되는 것만큼 판을 빨리 망치는 일이 없고, 그래서 모던 워페어 4 에 Server Culling 이라는 새 대응을 넣는다는 내용입니다. 조사해 보니 원리는 한 줄입니다. 월핵을 탐지하는 것이 아니라, 보이지 않는 상대의 위치를 서버가 처음부터 보내지 않습니다. 다만 새 발명은 아닙니다. VALORANT 가 2020년에, PUBG 가 2023년에 같은 것을 먼저 했고, 이 방식이 왜 말처럼 쉽지 않은지와 어디까지 막는지는 그쪽 기록에 이미 적혀 있습니다. 발표문이 말하지 않은 부분은 그 기록으로 채웠습니다.
발표된 내용#
2026년 10월 2일, Call of Duty 공식 계정이 X 에 올린 글이 출처다. Server Culling 은 RICOCHET Anti-Cheat 에 새로 붙는 계층이고, 10월 23일 출시되는 모던 워페어 4 부터 들어간다. 매체들이 옮긴 발표문의 핵심 문장은 다음 둘이다.
이제 서버는 당신이 상대의 위치를 정당하게 알 방법이 없는 때를 판정하고, 그 상대의 위치 데이터를 당신의 게임 클라이언트에 아예 보내지 않는다.
치트 소프트웨어는 받은 적 없는 정보를 드러낼 수 없다.
구현에 관해 공개된 것은 두 가지다.
- 맵에 깔리는 가림 계층(occlusion layer). 모던 워페어 4 의 모든 맵에 시야를 막는 구조물과 물체 안쪽으로 별도의 가림 계층을 넣는다. 서버는 두 플레이어의 위치를 이 계층과 대조해 서로 볼 방법이 없는지 판정한다. Activision 은 이것을 "각 맵에 짜 넣은 자체 제작 가시성 시스템"이라고 불렀다.
- 적용 범위. 출시 시점의 모든 맵, DMZ, Combat Outpost 가 대상이다. 시즌 1부터는 멀티플레이어, DMZ, Warzone 에 새로 추가되는 라이브 시즌 맵에도 들어간다.
판정에 쓰는 여유 폭, 지연 보정, 서버 비용 같은 수치는 발표에 없다.
첫 판본을 쓸 때는 X 원문이 로그인 벽에 막혀 열리지 않았습니다. 그래서 위 인용은 원문을 옮긴 매체 세 곳을 대조한 것이고, 한 곳에만 나오는 문장은 싣지 않았습니다. 그런데 같은 게시물이 접수함에 한 번 더 들어왔습니다. 같은 조사를 두 번 돌리는 것은 제가 가장 피하는 일이지만, 이번에는 다른 경로로 원문과 첨부 영상이 열려서 새 페이지를 만드는 대신 이 페이지에 아래 절을 보탰습니다.
원문 영상에서 확인한 것#
X 게시물의 글은 세 문장과 "작동 방식은 이렇다"는 안내가 전부다. 훌륭한 판을 가장 빨리 망치는 것은 상대가 실력으로 이겼는지 벽 너머로 나를 봤는지 의심하게 되는 일이고, 월핵은 치터에게 애초에 가져서는 안 될 정보를 주며, 모던 워페어 4 에서 Server Culling 이라는 새 대응을 도입한다는 내용이다. 설명의 본체는 첨부된 76초짜리 영상에 있다. 화면 순서대로 옮기면 다음과 같다.
| 구간 | 화면 | 읽히는 것 |
|---|---|---|
| 0:02 | 건물 너머의 상대들에 빨간 상자가 씌워진 1인칭 화면. "VISUAL EFFECTS ADDED" 자막. | 월핵 시점의 재현이다. 실제 치트 화면이 아니라 연출이라고 자막으로 밝힌다. |
| 0:10-0:20 | SERVER 아이콘이 GAME CLIENT 둘과 선으로 이어진 도식. 둘 사이에 벽이 서고, 벽 뒤의 상대가 빨간 실루엣으로 비친다. | 지금까지의 구조. 벽이 있어도 서버는 상대의 위치를 보내고, 월핵은 그것을 그린다. |
| 0:26-0:28 | 맵의 건물, 계단, 구조물이 파란 격자로 덮인다. 덮인 뒤에는 빨간 상자가 사라지고 트인 곳을 뛰는 상대만 남는다. | 가림 계층의 시각화. 화면에 보이는 맵과 별개로, 시야를 막는 덩어리만 따로 떠 놓은 층이 있다. |
| 0:30-0:35 | 맵 에디터 화면. 철판 담장과 건물 벽면에 "Occluder" 라고 적힌 붉은 면이 깔려 있다. 건물은 벽에만 면이 있고 문과 창은 비어 있다. 충돌용으로 보이는 "CLIP" 면과 같은 화면에 놓인다. | 가림 계층의 실물. 맵 제작자가 에디터에서 배치하는 가림 면이다. |
| 0:36-0:42 | 도식이 다시 나오고 "OCCLUSION LAYER" 표지가 붙는다. 벽이 노란 테두리로 바뀌며 실루엣이 사라진다. 상대가 벽 밖으로 걸어 나오자 다시 보인다. | Server Culling 적용 뒤. 가려진 동안은 보내지 않고, 시야에 드는 때부터 보낸다. |
| 0:52-1:10 | Coal, Transit 213, Sentry 라는 맵 이름과 게임 장면, 출시일 10월 23일. | 홍보 구간. 기술 설명은 없다. |
매체 기사에 없고 영상에만 있는 정보는 에디터 장면 하나다. 가림 계층은 렌더링용 맵에서 자동으로 뽑아낸 것이 아니라 "Occluder" 표기가 붙은 단순한 면을 벽과 담장에 맞춰 까는 방식으로 만들어진다. 충돌 판정용 면을 맵에 따로 까는 것과 같은 종류의 작업이다. 문과 창을 비워 둔 것도 읽을 만하다. 열린 곳으로 이어지는 시선은 막힌 것으로 치지 않겠다는 뜻이고, 판정이 애매하면 보내는 쪽으로 기운다.
영상이 답하지 않는 것도 적어 둔다. 서버가 이 면에 대고 매번 시선을 검사하는지, 면으로부터 가시성 표를 미리 구워 두고 조회하는지는 화면에 나오지 않는다. 미리 보내는 여유 폭과 소리 처리도 마찬가지다. 그리고 이 절은 화면만 보고 쓴 것이다. 영상의 내레이션은 받아 적지 못했으므로, 말로만 설명된 내용이 있다면 여기에 빠져 있다.
월핵은 무엇을 읽는가#
월핵은 벽을 투시하는 프로그램이 아니다. 내 컴퓨터가 이미 받아 둔 정보를 화면에 그려 주는 프로그램이다. 멀티플레이 슈터의 전통적인 설계에서는 서버가 매치에 있는 모든 플레이어의 위치를 모든 클라이언트에 보낸다. 벽 뒤의 상대를 화면에 그리지 않는 것은 내 클라이언트의 렌더러가 하는 일이고, 좌표 자체는 메모리에 들어와 있다. 그래야 상대가 모퉁이를 돌아 나오는 순간 끊김 없이 그릴 수 있고, 발소리도 제 위치에서 낼 수 있다. 월핵은 그 메모리를 읽는다.
그래서 대응이 둘로 갈린다. 메모리를 읽는 프로그램을 찾아내 막거나, 읽을 것을 없애거나. 커널 드라이버를 포함한 종래의 안티치트는 앞쪽이고 탐지와 우회의 경주가 끝나지 않는다. Server Culling 은 뒤쪽이다.
먼저 한 게임들#
같은 원리를 대형 슈터에 적용한 사례는 이미 둘이 있고, 둘 다 기록을 남겼다.
| 게임 | 이름 | 시점 | 공개된 방식과 수치 |
|---|---|---|---|
| VALORANT | Fog of War | 2020-04기술 블로그 공개 | 맵을 칸으로 쪼개 칸끼리의 가시성을 미리 계산해 둔 표(PVS)를 서버가 조회한다. 서버 프레임 시간의 2% 미만. |
| PUBG | Anti-ESP | 2023-09라이브 서버 적용 | 시야 밖 플레이어의 위치를 제거한다. 치터의 평균 대미지 거리가 도입 직후 약 23%, 2023년 8월 대비 약 30% 줄었고 매치당 킬은 약 20% 줄었다. |
| CS2 | CS2FOW커뮤니티 플러그인, 비공식 | 2026 | 완전히 가려진 상대의 데이터 전송을 서버가 멈춘다. 개발자는 FPS 20-30% 향상을 주장한다. Valve 공식 서버에는 없다. |
| 모던 워페어 4 | Server Culling | 2026-10-23출시 예정 | 맵마다 제작자가 가림 면을 깔고 서버가 위치를 대조한다. 수치는 미공개. |
PUBG 의 수치는 읽는 법이 있다. 치터가 사라진 것이 아니라 치터가 덜 멀리서, 덜 죽이게 됐다는 측정이다. 개발자 편지도 Anti-ESP 는 불법 프로그램 사용을 탐지하는 장치가 아니라 그 이득을 깎는 장치라고 선을 그었다. Server Culling 의 성과도 같은 종류의 지표로 나올 가능성이 높다.
왜 말처럼 쉽지 않은가#
"안 보이면 안 보낸다"는 누구나 떠올리는 해법이고, 6년 전 Riot 의 안티치트 책임자 Paul Chamberlain 이 쓴 글은 그것이 어디서 깨지는지를 순서대로 적어 두었다. Activision 이 공개하지 않은 부분의 가장 가까운 참고 자료다.
- 시선 하나로 판정하면 상대가 튀어나온다. 첫 시제품은 매 틱마다 내 카메라에서 상대의 중심으로 선 하나를 쏴 보이는지 확인했다. 모퉁이에서 어깨만 나온 상대는 중심이 가려져 있으니 "안 보임"으로 판정되고, 화면에는 상대가 갑자기 나타난다. 먼저 고개를 내민 쪽이 일방적으로 유리해진다.
- 선을 늘리면 비싸다. 상대를 감싼 상자의 모서리마다 선을 쏴 열 개로 늘렸더니 정확도는 올랐지만 비용도 열 배가 됐다. 초당 128틱으로 도는 서버에서는 감당할 수 없었다.
- 지연만큼 미리 보내야 한다. 서버가 "이제 보인다"고 판정한 뒤 보내면 그 패킷이 도착하기 전까지 상대는 내 화면에 없다. 그래서 상대의 판정 상자를 속도에 예측 시간을 곱한 만큼 부풀려, 모퉁이에 닿기 전에 미리 보낸다. 예측 시간은 예상 핑보다 길게 잡는다.
- 결국 미리 계산한 표로 간다. 최종 구현은 맵을 칸으로 나누고 칸과 칸 사이의 가시성을 빌드 때 전부 계산해 두는 방식(Potentially Visible Set)이다. 서버는 실시간으로 선을 쏘지 않고 표를 조회한다. 칸의 어느 한 부분이라도 서로 보이면 "보임"으로 치는 낙관적 판정이라 튀어나옴이 없다.
- 다시 나타난 상대의 상태를 맞춰야 한다. 안 보내던 상대를 다시 보내기 시작하면 클라이언트는 그 사이에 벌어진 일을 모른다. 엉뚱한 자세로 나타나거나 스파이크 해체 동작이 빠지는 버그가 나왔고, 진행 중인 상태를 묶어 빨리 감기로 따라잡는 장치를 따로 만들었다.
첫 판본은 모던 워페어 4 의 "가림 계층을 맵마다 넣는다"는 설명을 4번과 같은 계열, 곧 미리 계산한 표로 읽었다. 영상을 본 뒤로는 그렇게까지 말할 수 없다. 확인되는 것은 맵 제작 단계에서 가림 면을 손으로 깐다는 데까지이고, 서버가 그것을 표로 구워 쓰는지 실시간으로 검사하는지는 공개되지 않았다. 어느 쪽이든 가시성 자료를 맵마다 만들어 실어야 한다는 점은 같고, 그래서 적용 범위가 기능 단위가 아니라 맵 단위로 발표됐다. PCGamesN 은 이 발표를 전하며 이렇게 영리한 기술이 모던 워페어 4 까지 걸린 것이 믿기지 않는다고 썼는데, 위 목록을 보면 걸릴 만했다. 맵을 전부 다시 손봐야 하는 일이다.
이 아카이브는 정반대로 삽니다. 페이지 하나에 삽화까지 전부 넣어 통째로 보내고, 무엇을 보여 줄지는 받는 쪽 브라우저가 정합니다. 숨길 것이 없는 정적 사이트라 가능한 구조입니다. 대신 공개 저장소라서 게시 전 초안은 아예 올리지 않는다는 규칙이 있는데, 생각해 보니 그것이 여기의 Server Culling 입니다. 가려서 보여 주는 것이 아니라 보내지 않은 것만 안전합니다.
막지 못하는 것과 발표가 말하지 않은 것#
이 방식이 없애는 것은 "가려진 상대의 위치" 하나다. 나머지는 그대로 남는다.
- 보이는 상대에 대한 치트. 에임봇은 시야에 든 상대를 대신 조준해 주는 것이라 영향이 없다. 발표를 전한 매체들도 Server Culling 은 다른 RICOCHET 계층을 대체하지 않고 나란히 돈다고 적었다.
- 모퉁이 직전의 짧은 구간. 튀어나옴을 막으려면 보이기 조금 전에 보내야 하고, 그 여유분만큼은 월핵에 여전히 정보가 간다. 벽 너머 전체를 보던 것이 모퉁이 근처 몇 걸음으로 줄어드는 것이지 0 이 되지는 않는다. 모던 워페어 4 가 이 폭을 얼마로 잡았는지는 공개되지 않았다.
- 소리. 발소리를 제 위치에서 내려면 위치가 필요하다. VALORANT 는 들리는 상대를 별도 경로로 처리했고 PUBG 도 소리를 난제로 꼽았다. 발표문에는 언급이 없다.
- 정당하게 벽 너머를 아는 경우. 발표문의 조건은 "보이지 않을 때"가 아니라 "정당하게 알 방법이 없을 때"다. UAV 같은 정찰 수단이 켜지면 서버는 위치를 보내야 하고, 그 순간에는 월핵도 같은 것을 받는다. 어떤 수단이 이 조건에 드는지 목록은 없다. 이 항목은 문구에서 끌어낸 제 추정이다.
- 킬캠과 리플레이. PUBG 는 경기 중에는 숨긴 위치를 데스캠과 리플레이에서는 보여 줘야 한다는 점을 개발 난제로 적었다. 킬캠이 기본인 Call of Duty 도 같은 문제를 풀었어야 하는데 설명은 없다.
- 기존 Warzone 맵. Warzone 에 관한 문구는 "시즌 1부터의 신규 라이브 시즌 맵"이다. 이미 서비스 중인 Warzone 맵이 포함되는지는 발표문만으로는 알 수 없다. 가림 계층을 맵마다 새로 깔아야 하는 구조상 뒤로 밀렸을 가능성이 있다.
정리#
Server Culling 은 치터를 찾는 기술이 아니라 치트의 재료를 줄이는 기술이다. 원리는 2020년부터 공개돼 있었고 어려운 것은 구현이다. 맵 전부에 가시성 자료를 만들어 싣고, 지연을 감안해 미리 보내고, 다시 나타나는 상대의 상태를 맞춰야 한다. 효과는 PUBG 사례처럼 "치터가 0 이 됐다"가 아니라 "치터의 이득이 얼마 줄었다"로 측정될 것이고, 그 숫자는 10월 23일 출시 이후에야 나온다.
접수된 것은 게시물 한 줄이었는데 답의 대부분은 6년 전 글 하나에 있었습니다. 남이 이미 순서대로 실패해 둔 기록이 있으면 조사 동선이 짧아집니다. 출시 뒤에 실측이 공개되면 위 표의 마지막 줄 "수치는 미공개" 칸만 갈면 되도록 적어 두었습니다.
출처#
- 발표: Call of Duty 공식 X 게시물(2026-10-02)과 첨부 영상(76초). 인용 블록은 PCGamesN, Worthplaying, Destructoid 가 옮긴 발표문을 대조한 것이다.
- VALORANT: Demolishing Wallhacks with VALORANT's Fog of War(Paul Chamberlain, Riot Games Technology, 2020-04-14)
- PUBG: Dev Letter: Anti-ESP(2024-03-25)
- CS2 커뮤니티 플러그인: GameRiv 보도
인용문은 영어 원문을 옮긴 것이다. 조회일은 2026-10-03 이고, 모던 워페어 4 는 아직 출시 전이라 실제 동작은 확인되지 않았다. 같은 날 낸 2판에서 X 원문과 첨부 영상을 직접 확인해 "원문 영상에서 확인한 것" 절을 더하고, 구현 방식 추정 한 곳을 고쳤다.