일주일 만에 12개에서 33개로: 1분게임에 게임을 더하는 방법
1분게임은 2026년 10월 7일에 게임 12개로 시작했어요. 일주일 뒤인 14일에는 33개가 됐어요. 게임을 빠르게 늘릴 수 있었던 이유와, 그 과정에서 만난 버그를 정리해요.
모든 게임이 같은 틀 위에서 돌아간다
첫 버전부터 게임마다 따로 만들지 않은 부분이 있어요. 점수 표시(HUD), 시작 화면, 60초 타이머, 결과 화면이에요. 이건 모두 하나의 공통 실행기가 맡고, 각 게임은 “화면을 그리고, 입력을 받고, 점수를 알리는” 일만 해요. 그래서 새 게임을 넣으면 공유하기, 랭킹, 도전장, 소리 설정이 저절로 따라와요.
같은 날 저녁에는 모든 게임에 두 번째 버튼, “시간없이 최고기록 도전”을 붙였어요. 게임마다 끝나는 규칙이 달라요. 공 세 개, 한 번의 실수, 퍼즐마다 주어지는 시간, 꽉 찬 판 같은 식으로요. 그리고 오래 버틸수록 바람이 불거나 폭탄 타일이 나오는 ‘변화(twist)’가 생겨요. 이 변화는 모두에게 같은 점수에서 켜져서, 친구끼리 기록을 비교할 수 있어요.
늘어난 순서
10월 7일, 골인·파닥파닥·차곡차곡·꿈틀꿈틀·폴짝폴짝·리듬톡·두배두배·퐁당퐁당·쪼르륵·빵빵·착착·짝꿍, 12개로 시작했어요. 그 뒤로는 거의 매일 게임이 늘었어요. 몇 가지만 꼽으면 이래요.
- 10월 9일: 탕탕(튕기는 총알로 좀비 막기)과 슥슥(같은 색 소켓 잇기), 그리고 랭킹 화면.
- 10월 13일: 촤르륵(솔리테어), 팡팡(구슬 맞추기), 방울방울(버블 슈터), 와르르(블록 쌓기)를 한 번에.
- 10월 14일: 모두 33개. 그리고 모든 게임에 “저장하고 나가기”.
항상 이길 수 있는 솔리테어
솔리테어는 카드를 섞은 결과에 따라 아예 풀 수 없는 판이 나와요. 1분 안에 겨루는 게임에서 그건 불공평하죠. 그래서 촤르륵은 판을 내놓기 전에 풀이 프로그램으로 이길 수 있는 판인지 확인해요. 이 확인은 화면을 멈추지 않게 프레임마다 몇 밀리초씩만 일하고, 확인된 판을 두 개씩 미리 준비해 둬요.
한 프레임이 게임을 멈추다
와르르를 올리고 얼마 안 돼서, 줄을 지울 때 게임이 멈춘다는 걸 알았어요. 지워지는 칸은 작아지면서 사라지는데, 사라지기 직전 몇 밀리초 동안 크기가 음수가 됐어요. 그 크기로 모서리가 둥근 사각형을 그리면 브라우저의 roundRect가 음수 반지름 때문에 오류를 던지고, 그 오류가 게임 루프를 멈춰 버렸어요. 칸이 작을수록(버튼 패드를 켰을 때), 화면이 빠를수록(120Hz) 더 자주 일어났어요.
세 겹으로 고쳤어요.
- 와르르는 3픽셀보다 작아진 칸은 그리지 않아요.
- 공통 그리기 함수는 반지름을 절대 음수로 넘기지 않아요.
- 공통 게임 루프는 한 프레임에서 오류가 나도 다음 프레임을 예약해요. 이제 어떤 게임에서든 한 프레임의 실수가 게임 전체를 멈추지 않아요.
세 번째가 가장 중요했어요. 게임이 33개면 어딘가에는 또 이런 순간이 있을 거예요. 그때 멈추지 않는 게 중요하니까요.
정리하면
- 공통 틀을 먼저 단단하게 만들면, 콘텐츠를 늘리는 속도가 달라져요.
- 경쟁하는 게임이라면 “풀 수 있는 판”인지 미리 확인하는 게 공정해요.
- 게임 루프는 한 프레임의 오류에 무너지지 않게 만들어야 해요.
1분게임 — 1분게임은 1분이면 끝나는 미니게임 33가지를 하고, 내 최고 기록을 링크로 보내 친구에게 도전장을 내미는 웹 게임 모음이에요.