전체 글 24

Cloudflare Workers + D1로 조작할 수 없는 랭킹 웹게임 만들기

웹게임에 랭킹을 붙이면 반드시 조작 시도가 들어옵니다. 브라우저 개발자 도구로 점수를 바꾸거나, 정답을 미리 읽거나, 스크립트로 수천 판을 돌리는 식입니다. GOOD LUCK을 만들면서 이런 시도를 구조적으로 막기 위해 적용한 방법을 정리합니다. 서버는 Cloudflare Workers, DB는 D1(SQLite)이고 프론트엔드는 빌드 없는 바닐라 자바스크립트입니다.1. 문 배치는 서버에만 존재한다가장 중요한 원칙입니다. 문 10개 중 어느 것이 PASS인지는 서버에서 만들고 서버에만 저장합니다. 브라우저가 받는 정보는 "PASS 6개, FAIL 3개, ITEM 1개가 남아 있다" 같은 개수와, 투시로 이미 드러난 문의 정체뿐입니다.// 클라이언트에 보내는 상태: 정체 모르는 문은 종류별 개수만expor..

카테고리 없음 2026.11.04

문 10개 중 하나, 몇 스테이지면 잘한 걸까? GOOD LUCK 확률 계산

문 10개 중 하나를 고르는 게임 GOOD LUCK을 만들면서 가장 오래 고민한 것은 난이도였습니다. 너무 쉬우면 금방 지루하고, 너무 어려우면 1스테이지에서 다 떨어집니다. 이 글에서는 실제 게임에 들어간 확률을 계산해 보고, 몇 스테이지까지 가면 잘한 건지 정리해 봤습니다.처음 버전은 아무도 1스테이지를 못 넘었다첫 버전은 문 개수가 스테이지마다 늘어나고 PASS 문은 적은 구조였습니다. 직접 해보니 1스테이지에서 떨어지는 일이 너무 많았습니다. 그래서 규칙을 이렇게 바꿨습니다.문은 항상 10개로 고정PASS 문은 1스테이지에 8개(80%)로 시작3스테이지마다 PASS 문이 1개씩 줄어들고, 2개(20%)에서 멈춤매 스테이지마다 PASS 개수가 ±1 무작위로 흔들림25% 확률로 FAIL 문 하나가 I..

카테고리 없음 2026.11.04

순전히 운으로만 하는 웹게임 GOOD LUCK을 만들었습니다

실력이 전혀 필요 없는 게임을 하나 만들었습니다. 이름은 GOOD LUCK입니다. 옛날 휴대용 LCD 게임기처럼 생긴 화면에 문 10개가 있고, 그중 하나를 고르면 끝입니다. 통과하면 다음 스테이지, 꽝이면 게임 오버. 판단할 거리가 거의 없어서 오히려 손이 계속 가는 게임입니다.👉 바로 해보기: https://goodluck.ideality.kr (가입 없음, 무료)규칙은 이게 전부입니다PASS 문: 다음 스테이지로 넘어가고 점수와 코인을 받습니다.FAIL 문: 게임 오버. 그때까지 모은 점수가 랭킹에 기록됩니다.ITEM 문: 스테이지를 통과하면서 아이템도 하나 받습니다.문은 항상 10개입니다. 1스테이지에는 PASS 문이 8개쯤 있어서 대부분 통과합니다. 하지만 3스테이지마다 PASS 문이 하나씩 ..

카테고리 없음 2026.11.04