anti-cheat

2 개의 포스트

woowahan원문

WOOWACON 2025 미니게임 WOOWA POP! | 우아한형제들 기술블로그 (새 탭에서 열림)

우아콘 2025에서 선보인 '우아팝(WOOWA POP!)'은 단순한 이벤트를 넘어 기술적 무결성을 증명하기 위한 도전의 결과물입니다. 대규모 인원이 참여하는 랭킹 시스템에서 발생할 수 있는 조작 가능성을 차단하기 위해, 단순히 보안 솔루션을 덧붙이는 대신 게임의 동작 원리 자체를 보안 메커니즘으로 활용했습니다. 서버에서 클라이언트의 플레이 과정을 결정론적으로 재현하여 검증함으로써, 기술 콘퍼런스에 걸맞은 투명하고 공정한 게임 환경을 구축했습니다. ### 게임 보안과 수학적 증명 * 폰 노이만의 게임 이론에 따르면 모든 게임은 수학적 구조로 환원될 수 있으며, 해커는 이를 역공학하여 최적해(조작)를 찾아내는 존재입니다. * 기존의 보안 방식이나 CAPTCHA는 게임의 재미를 반감시키거나 AI 기술의 발전으로 인해 점차 무력화되는 한계가 있었습니다. * 수박 게임과 같은 물리 기반 퍼즐 게임은 수학적으로 NP-난해(NP-hard) 문제에 속하며, 답을 찾기는 어렵지만 주어진 답이 맞는지 확인하는 것은 쉽다는 특성을 가집니다. * 이를 이용해 사용자가 보낸 최종 점수를 그대로 믿는 것이 아니라, 점수에 도달하기까지의 '과정'을 증명서처럼 제출받아 서버에서 검증하는 방식을 채택했습니다. ### 결정론적 물리 엔진의 구현 * 서버가 클라이언트의 플레이를 정확히 재현하기 위해서는 동일한 입력에 대해 항상 동일한 결과가 나오는 '결정론(Determinism)'이 보장되어야 합니다. * 웹 환경의 `Math.sin`이나 `Math.cos` 같은 함수는 브라우저나 OS 엔진에 따라 미세한 오차가 발생할 수 있어, 이를 대체할 결정론적 수학 라이브러리를 사용했습니다. * 물리 엔진인 Matter.js를 활용하여 물체의 생성 위치, 시간(프레임), 충돌 계산 등을 정수 기반 혹은 오차 없는 계산 방식으로 통일했습니다. * 클라이언트는 사용자의 조작 로그(아이템 투하 위치, 타이밍 등)를 기록하여 서버로 전송하고, 서버는 Node.js 환경에서 이 로그를 그대로 시뮬레이션하여 최종 점수의 일치 여부를 판단합니다. ### 14,570점의 등장과 검증의 실효성 * 행사 기간 중 약 2,000명의 사용자가 참여했으며, 서버 로그를 통해 모든 플레이 과정이 실시간으로 검증되었습니다. * 운영 도중 물리적으로 도달하기 어려운 14,570점이라는 비정상적인 점수가 전송되었으나, 서버의 재현 시뮬레이션 결과 클라이언트가 보낸 점수와 일치하지 않음을 감지하여 자동으로 랭킹에서 제외했습니다. * 이는 별도의 복잡한 보안 툴 없이도 게임 엔진의 결정론적 특성만으로 완벽한 부정행위 방지가 가능함을 입증한 사례입니다. 단순히 점수 데이터를 주고받는 방식에서 벗어나, 실행 과정을 서버에서 재현할 수 있도록 설계하는 것은 게임뿐만 아니라 높은 신뢰성이 필요한 다양한 웹 시스템에 응용될 수 있습니다. 특히 결정론적 설계를 통해 클라이언트와 서버의 상태를 동기화하는 기법은 복잡한 비즈니스 로직의 무결성을 확보하는 데 매우 강력한 도구가 됩니다.

discord2분 읽기큐레이션 요약

개편된 오버레이와

Discord는 PC 게임 경험을 개선하기 위해 게임 오버레이를 처음부터 재설계하고 데스크톱 앱의 외관과 사용자 설정 기능을 새롭게 정비했다. 새 오버레이는 성능 저하와 게임 호환성 문제를 줄이면서 위젯 기반 인터페이스, 스트리밍 시청, 음성·영상 제어를 제공한다. 데스크톱 앱에는 테마, UI 밀도, 채널 목록 크기 조정 등 개인화 기능이 추가되어 가독성과 접근성이 향상됐다. ## 위젯 기반으로 재설계된 게임 오버레이 - 기존 오버레이는 게임 창에 직접 연결되는 방식이라 게임 성능을 저하시키는 경우가 있었다. - 새 오버레이는 게임에 Discord 전체 화면을 삽입하는 대신, 필요한 기능을 개별 위젯으로 제공한다. - 주요 위젯과 기능: - 음성·영상 제어 - 한 번의 클릭으로 게임 스트리밍 시작 - 음성 채널 참여 - 친구의 게임 스트림을 오버레이 안에서 직접 시청 - 사용자는 위젯을 원하는 위치로 이동할 수 있어 RTS, FPS 등 게임 장르에 맞게 화면을 구성할 수 있다. ## 향상된 성능과 게임 호환성 - 게임 창에 직접 연결하는 의존도를 줄여 오버레이 사용으로 인한 성능 저하를 완화했다. - 안티치트 시스템과 충돌할 가능성이 줄어들어 더 많은 게임에서 사용할 수 있게 됐다. - Discord에서 가장 많이 플레이되는 게임 중 더 많은 타이틀을 지원하는 것이 목표다. ## 데스크톱 테마와 UI 밀도 설정 - 무료 기본 테마가 네 가지로 확대됐다. - Light - Ash - Dark - Onyx - UI 밀도를 세 단계로 조절할 수 있다. - Spacious: 여유 있는 간격 - Default: 기본 간격 - Compact: 정보가 더 밀집된 배치 - 사용자는 화면 가독성, 개인 취향, 모니터 크기에 맞춰 Discord의 전체적인 공간 배치를 조정할 수 있다. ## 채널 목록과 통화 제어 개선 - 채널 목록의 너비를 직접 조절할 수 있어 긴 채널명을 더 쉽게 읽을 수 있다. - 음성 통화 중 자주 사용하는 음성·영상 설정을 하나의 제어 막대에 모아 접근성을 높였다. - 마이크와 카메라 상태를 색상으로 더 명확하게 표시한다. - 마이크 음소거 시 더 강한 빨간색 표시 - 카메라 활성화 시 새로운 초록색 표시 ## 데스크톱과 모바일 간 일관성 강화 - 앱 전반의 색상과 일러스트가 새롭게 정비됐다. - 시각적 요소가 과도하게 복잡해 보이는 느낌을 줄이고 텍스트와 UI의 가독성을 높이는 데 초점을 맞췄다. - 데스크톱과 모바일 환경에서 보다 일관된 디자인 경험을 제공하려는 업데이트다. - Discord 사용자의 72% 이상이 정기적으로 PC 게임을 즐긴다는 점을 바탕으로 데스크톱 기능 개선을 집중적으로 추진하고 있다. 새 오버레이는 게임 중 친구와 소통하거나 스트림을 시청하는 사용자에게 특히 유용하며, 데스크톱 앱의 테마와 밀도 설정은 장시간 사용하는 환경의 가독성을 높여준다. Discord를 PC 게임에 주로 활용한다면 오버레이 배치와 UI 밀도를 자신의 게임 유형과 화면 크기에 맞게 조정해 보는 것이 좋다.

원문 읽기(새 탭에서 열림)