← 개발기 목록

파이썬 게임을 브라우저로 옮기고 200판 맞대기

개발기 12편 · 2026-10-16

브라우저로 옮긴 물풍선 게임이 끝난 화면
브라우저로 옮긴 물풍선 게임. 파이썬 판과 200판을 맞대 본 뒤에 올렸다.

물풍선 게임은 처음에 파이썬으로 만들었습니다. 학습과 계산은 파이썬이 편했기 때문입니다. 하지만 사람이 누르는 게임은 브라우저에서 돌아야 했습니다.

처음에는 아레나 서버에 사람이 접속하는 구조였습니다. 서버 자체 화면에서는 한 판이 71초 만에 정상으로 끝났지만, 크롬이 공개 사이트에서 내 컴퓨터 주소로 가는 연결을 막아 터널 없이는 홈페이지에서 들어갈 수 없었습니다. 그래서 아레나를 없애고, 엔진을 브라우저로 옮겨 사람 한 명이 봇 셋과 하는 방식으로 바꿨습니다. 아레나 페이지와 메뉴도 지웠고, 아레나 서버도 껐습니다.

엔진과 규칙 봇(1~3단계)을 자바스크립트로 옮겼습니다. 옮긴 코드가 같은 일을 하는지 확인하는 방법이 중요했습니다. 잘 돈다는 느낌으로는 부족합니다. 그래서 난수를 파이썬과 같은 방식으로 뽑게 맞췄습니다. 같은 난수가 나와야 같은 판이 되기 때문입니다.

그래서 맞대기를 했습니다. 같은 난수 조건에서 파이썬과 브라우저가 200판을 돌리고, 모든 틱의 상태를 비교했습니다. 총 164,574틱이 전부 같았습니다. 한 틱이라도 다르면 실패입니다. 결과는 한 번만 본 것이 아니라 다시 돌려서 확인했습니다.

맞대기가 통과한 뒤에만 홈페이지에 올렸습니다. 맞대기 결과는 숫자와 함께 기록으로 남겼습니다. 파이썬 쪽 기록과 브라우저 쪽 기록이 한 틱도 다르지 않다는 것을 확인해야 다음 단계로 넘어갔습니다. 이 기준을 낮추지 않은 것이 이 과정에서 가장 중요한 원칙이었습니다. 순서를 지킨 덕분에 브라우저 게임의 결과를 믿을 수 있게 됐습니다. 올릴 때 물풍선 흐름 시험 19개와 로그인 흐름 시험 41개를 모두 통과했습니다.

그 뒤 물풍선에 초휘의 뇌를 싣는 준비도 했습니다. 뇌가 보는 판 정보를 브라우저에서 만드는 코드도 같은 200판, 164,574틱에서 비트까지 같았습니다. 하지만 운영자가 물풍선은 멈추고 블록 퍼즐에 집중하라고 해서, 물풍선 초휘는 올리지 않았습니다. 화면에는 '초휘 준비 중'으로 남아 있습니다. 그 준비를 하면서 물풍선 흐름 시험은 34개로 늘었고, 모두 통과했습니다.

다른 글