딴판 운영팀 · 운영 원칙
공정성은 어떻게 지키나
온라인 대결에서 가장 흔한 의심은 두 가지입니다. 상대가 뭔가 볼 수 있는 게 아닐까, 그리고 판정이 정말 맞는 걸까. 둘 다 설계로 답해야 하는 문제입니다.
모두 무료 · 설치·가입 없이 바로
브라우저는 절대 믿지 않는다
온라인 게임에서 승패를 유저의 웹 브라우저가 직접 계산하면, 그 결과는 언제든 해킹이나 조작에 노출됩니다. F12 개발자 도구를 열어 점수 변수를 바꾸거나, 조작된 승리 패킷을 서버로 쏴버리면 그만이니까요. 그래서 딴판은 승패와 관련된 모든 판단 권한을 100% 서버 엔진에만 맡깁니다.
내 차례, 남은 제한 시간, 점수 집계, 승패 판정까지 모든 것이 서버의 중앙 방 상태를 기준으로 흘러갑니다. 브라우저가 하는 역할은 서버가 보내준 안전한 게임판 데이터를 화면에 매끄럽게 그리고, 유저의 클릭이나 터치 입력을 서버로 전달하는 것이에요. 화면상의 DOM 요소를 아무리 변조해도 서버의 진짜 판정은 절대 흔들리지 않습니다.
세부 규칙 검증도 마찬가지입니다. 오목의 금수 표시는 편의를 위해 화면에서도 계산해 ×표를 띄워주지만, 실제 돌을 놓는 요청이 들어오면 서버가 RIF 정통 알고리즘으로 한 번 더 철저하게 재검증합니다. 트리플 코드의 합 판정이나 단어 퀴즈 정답 여부도 모두 서버가 최종 도장을 찍죠. 2048 레이스의 혼자 하기도 반응 속도를 위해 내 판을 화면에서 먼저 움직이지만, 서버가 입력 기록 전체를 같은 규칙으로 처음부터 다시 계산해 점수를 확정합니다. 화면의 그래픽은 편의일 뿐, 진짜 심판은 오직 서버입니다.
버튼을 마구 연타해도 꼬이지 않는 설계
이동 중인 지하철이나 엘리베이터처럼 통신이 불안정한 곳에서는 같은 클릭 요청이 서버에 두세 번 연속으로 들어갈 수 있습니다. 이때 점수가 두 번 오르면 억울하겠죠.
중복 처리에 민감한 방 생성과 게임 행동에는 요청 식별자를 사용합니다. 서버는 같은 식별자의 요청을 다시 받았을 때 게임별 상태와 처리 기록을 확인해 중복 판정과 정산을 막습니다. 응답을 받지 못했다면 화면의 재시도 안내에 따라 현재 상태를 확인하세요. 연결이 끊긴 동안에도 서버의 제한 시간은 계속 흐를 수 있습니다.
모든 대결은 무료입니다. 중복 요청으로 점수가 여러 번 반영되지 않도록 서버가 확정한 기록을 기준으로 처리합니다.
보이면 안 되는 비밀 패는 아예 안 보낸다
심리전이나 추리 게임을 개발할 때 흔히 저지르는 초보적인 실수가 있습니다. 서버가 정답이나 상대방 카드를 미리 브라우저로 쏴놓고 CSS로 가려두는 방식이죠. 그렇게 만들면 개발자 도구의 네트워크 탭이나 메모리만 뜯어봐도 상대방의 숨은 패가 적나라하게 드러납니다.
딴판은 정식 공개 타이밍이 오기 전까지는 브라우저로 데이터 자체를 일절 전송하지 않습니다. 게임별 비밀 보호 방식은 철저합니다.
흑백 심리전은 선공이 낸 타일의 ‘색깔(흑/백)’만 전송합니다. 진짜 숫자는 라운드가 끝난 뒤에도 상대방 화면에 알려주지 않고, 서버가 두 숫자의 크기만 비교해 “승/패” 결과만 내려줍니다. 덕분에 게임 끝까지 상대의 남은 패를 수학적으로 소거해 나가는 순수한 두뇌 싸움이 유지됩니다. (흑백 심리전 규칙 보기)
낱말 게임(십자격돌·자모 암호) 역시 정답 단어와 사전 키를 오직 서버 내부 메모리에만 격리해 둡니다. 판을 미리 뜯어보거나 외부 사전 API 키를 탈취해 정답을 커닝하는 뒷구멍은 완전히 봉쇄되어 있습니다.
출발선은 똑같이, 운의 개입은 공평하게
랜덤 요소가 있는 게임에서는 “누구에게 유리한 운이 쏠렸는가”가 승부의 만족도를 좌우합니다. 2048 레이스가 대표적인 예입니다.
대결이 시작될 때 첫 두 개의 타일 숫자와 생성 위치는 참가자 전원에게 100% 완벽하게 똑같이 주어집니다. 모두가 동일한 판에서 출발하는 것이죠. 하지만 그 이후에 생겨나는 타일까지 똑같은 랜덤 흐름을 쓰면 문제가 생깁니다. 실시간으로 상대방 미니 보드가 보이기 때문에, 한 수 늦게 두는 사람이 앞서가는 사람의 판을 보고 “아, 다음엔 저 자리에 2가 뜨겠구나” 하고 미래를 예측해 버릴 수 있으니까요.
그래서 딴판은 각 유저의 고유 세션 ID를 난수 시트에 소금(Salt)처럼 섞어 서로 완전히 독립된 랜덤 흐름을 타게 만들었습니다. 출발선은 똑같지만 플레이 도중에는 남의 화면으로 내 다음 타일을 훔쳐볼 수 없도록 설계한 것이죠. 다만 혼자 하기는 반응 속도를 위해 각 기기에 자기 판에 쓸 타일 흐름만 보내므로, 내 판에 다음에 뜰 타일은 내 기기에서 미리 계산할 수 있습니다. (2048 레이스 규칙 보기)
오목의 선공 유리함도 마찬가지입니다. 먼저 두는 흑에게 렌주룰 금수(쌍삼·사사·장목 불가)를 엄격히 적용해 유리함을 깎아내고, 리턴 매치 시 흑백을 자동으로 맞바꿔 한 사람만 계속 선공을 쥐는 불공정을 막습니다.
연습 봇은 사람이 보는 것만 본다
혼자 연습 모드를 할 때 컴퓨터 봇이 정답을 미리 알고 치팅을 한다면 그건 좋은 연습 상대가 될 수 없습니다. 사람을 상대로는 안 먹힐 꼼수만 늘어나니까요.
자모 암호의 연습 상대인 젤롱봇은 유저들이 화면에서 확인한 공개 단서(초록·노랑·회색 판정)만을 똑같이 입력값으로 받아 다음 단어를 추론합니다. 정답 단어를 몰래 훔쳐보지 않으며, 사람이 볼 수 있는 정보만을 가지고 후보를 좁혀 다음 수를 고릅니다. 공개 단서로 후보를 추리는 연습에 도움이 되지만, 실제 사람은 봇과 다른 전략을 택할 수 있습니다.
2048 레이스의 1인 모드는 가짜 봇을 옆에 세워두지 않고, 내 순수 점수와 최고 타일, 최소 이동 수 기록만을 측정하는 정직한 개인 타임어택으로 구성했습니다. 있지도 않은 가짜 AI를 이겼다는 착시 대신, 진짜 내 실력의 성장을 확인하실 수 있습니다.
무료 플레이와 점수
모든 게임은 무료입니다. 참가비나 충전 없이 혼자 연습하거나 함께 대결할 수 있습니다. 그림 맞히기·자모암호2·마피아는 게임별 점수를 기록합니다. 로그인한 계정의 점수는 주간·전체 랭킹에 반영되며, 점수는 사용하거나 양도하는 재화가 아닙니다.
판정이나 결과가 의심스러울 땐
게임방 상태와 정산 기록은 용도별 보관 기간이 다릅니다. 오래된 판의 모든 행동을 확인할 수 있는 것은 아니므로 문제가 생겼을 때 상황을 기록해 두면 확인에 도움이 됩니다.
판정이나 점수 계산이 이상하다면 게임 이름, 플레이 시각, 입력한 행동과 표시된 결과를 적어 문의하기로 알려주세요. 비밀번호·인증 코드·복구 링크·방 코드·초대 링크는 보내지 마세요. 추가 정보가 필요하면 공식 문의 메일의 답변으로 필요한 최소 범위를 안내합니다.
설명서와 실제 판정 로직이 어긋난다면 문서든 코드든 저희가 고쳐야 할 문제입니다. 제보 내용을 재현하고 확인 가능한 기록과 대조해 수정 여부와 우선순위를 정합니다.