본문 바로가기

블로그 / 개발일지

CrazyGames에서 반려당하고 첫 90초를 다시 만든 이야기: 조작까지 13초 → 0.25초

Salmonholic 0.11.3이 CrazyGames 품질 심사에서 반려됐다. 첫 90초를 녹화해 보니 조작까지 13초를 기다리게 하고 있었다. 같은 날 0.12.0으로 고친 과정과 수치를 정리했다.

Salmonholic ·· 5분 읽기

0.11.4의 대기 명단 화면과 0.12.0의 워밍업 화면을 나란히 놓은 비교 이미지

2026년 9월 24일 오후, CrazyGames에서 Salmonholic 0.11.3이 반려됐다는 연락을 받았다. 사유는 한 줄이었다. 전체적인 품질이 아직 플랫폼의 기대에 못 미친다는 것. 어떤 화면이, 무엇이 문제였는지는 적혀 있지 않았다.

막연한 사유 앞에서 할 수 있는 일은 심사자가 봤을 화면을 똑같이 보는 것뿐이었다. 그래서 그날 한 일은 코드를 고치는 게 아니라 녹화였다.

심사자의 첫 90초를 그대로 녹화했다

당시 최신 빌드인 0.11.4를 브라우저 세 가지 크기(1280×720, 907×510, 휴대폰 가로 800×450)로 띄우고, 페이지를 여는 순간부터 90초를 녹화했다. 0, 5, 10, 15, 20, 30, 45, 60, 90초 지점마다 원본 크기 캡처를 남겼다. 사람이 처음 게임을 켰을 때 무엇을 보는지 시간 순서대로 늘어놓으려는 목적이었다.

결과는 부끄러웠다.

시점 화면에 보인 것
0초 로고와 로딩 막대
5초 대기 명단 4/10, 빈 슬롯, 색 사각형, 방 ID와 RTT 숫자
10초 명단 9/10, 시작까지 2초
15초 드디어 전투 시작
30초 1280 녹화에서 경기 15초 만에 생존자 3마리

로딩이 끝난 뒤 실제로 경기가 시작되기까지 13.383초가 걸렸다. 그 13초 동안 화면에는 고양이도 연어도 초밥도 없었다. 색 사각형과 “ROOM r-…” 같은 개발용 정보만 있었다. 게임의 소재를 알려 주는 대신 서버가 준비되기를 기다리게 한 셈이다.

0.11.4의 대기 화면. 색 사각형 명단과 시작 카운트다운만 보인다 0.11.4의 5초 지점. 고양이 게임인데 고양이가 한 마리도 없다(아래쪽 방 정보 줄은 잘라 냈다)

두 번째 문제는 전투가 시작된 뒤였다. 세 녹화 모두 시작 인원의 절반 이상이 매우 빨리 사라졌다. 신규 이용자가 “초밥을 먹으면 커지고, 다른 고양이는 경쟁자고, 끝까지 살아남으면 이긴다”는 구조를 배우기 전에 이미 후반 인원이 되어 있었다. 그 뒤에는 넓은 빈 필드를 오래 돌아다니는 구간이 이어졌다.

개선 후보 10개를 점수로 줄 세웠다

관찰한 문제를 개선 후보 10개로 적고, 각각 영향(1~5)에 노력 효율(작은 작업 3, 중간 2, 큰 작업 1)을 곱해 순서를 정했다. 1위와 2위는 15점으로 같았다. “목표를 행동으로 알려주기”와 “휴대폰 입력 시작점 설명”이다. 체감 변화가 가장 클 것으로 본 것은 “수동 대기를 플레이로 바꾸기”와 “경기장 바깥 검은 공간 마감”이었다.

이 표를 만들면서 스스로 정한 원칙이 있다. 반려 사유를 추측으로 확정하지 않는다는 것이다. 녹화로 확인한 것만 적고, 경쟁작의 첫 30초 수치처럼 측정하지 않은 것은 숫자를 만들지 않았다. 그래야 다음에 같은 조건으로 다시 찍어서 비교할 수 있다.

같은 날 0.12.0: 네 갈래로 나눠 고쳤다

반려 소식을 들은 그날 14시 50분에 0.12.0을 커밋하고 곧바로 배포했다. 그날 커밋 메시지는 “first-90-seconds quality wave after CrazyGames rejection”이었다(커밋 e233905). 작업은 네 갈래였다.

  1. 기다리는 동안 바로 플레이. 대기 명단을 조작 가능한 워밍업 공간으로 바꿨다. 매칭을 기다리는 동안 고양이를 움직이면 가까운 연어를 자동으로 공격하고, 초밥을 먹으면 경험치 막대가 찬다. “이동 → 초밥 먹기 → 마지막 고양이 되기” 세 단계 안내는 한 번만 나오고, 끝내면 브라우저에 저장된다. 방 ID와 RTT는 디버그 모드에서만 보이게 했다.
  2. 읽히는 HUD. 800폭 화면에서도 글자가 15px 이상이 되게 키우고, 읽을 수 없던 무기 약어(MA1, RI1)를 아이콘과 레벨 점으로 바꿨다. 오디오에는 마스터 리미터를 달아 최고 피크를 2.16에서 0.77로 낮췄다.
  3. 경기장 마감. 큰 격자를 지우고 경기장 바깥을 강과 둑으로 채웠다. 로딩 화면에는 고양이·연어·초밥을 넣었다.
  4. 초반 전투 곡선. 서버 기준 첫 탈락 시점이 3.4초에서 84초로 늦춰졌고, 120초에 7마리가 살아 있도록 조정했다.

0.12.0의 워밍업 화면. 고양이 앞에 초밥과 노란 화살표가 있다 0.12.0 워밍업의 두 번째 안내 “초밥을 먹으면 커진다”

같은 방식으로 다시 재 보니, 로딩이 끝난 뒤 첫 조작 화면이 뜨기까지 1280 화면에서 0.252초, 휴대폰 크기에서 0.245초였다. 실제 경기 시작까지 걸리는 시간은 13초대로 거의 같았다. 달라진 것은 그 13초를 기다리는 게 아니라 움직이며 보낸다는 점이다.

항목 0.11.4 0.12.0
로딩 후 첫 조작 가능 약 13.4초 약 0.25초
대기 화면 내용 색 사각형 명단 움직이는 고양이·연어·초밥
서버 첫 탈락 3.4초 84초
오디오 최고 피크 2.16 0.77

그다음 사흘

0.12.0 한 번으로 끝나지 않았다. 같은 날 오후 0.12.1에서 워밍업을 실제 경기장 전체 화면으로 옮겼다. 저녁에 직접 해 보고는 “연어가 첫 대에 안 죽고 성장이 느려서 지루하다”는 결론을 냈고, 0.12.3에서 기본 연어를 시작 2분 동안 한 대에 쓰러지게 바꿨다. 그 결과 첫 레벨업이 오프라인 2.7초, 서버 경기 7.7초로 당겨졌다. 이틀 뒤 0.15.2에서는 혼자 접속했을 때 봇을 빨리 채워, 데스크톱에서 실제 경기 시작까지를 13.9초에서 5.5초로 줄였다.

재제출은 9월 25일, 0.14.2로 했다. 그날 저녁 CrazyGames의 기본 출시(Basic Launch) 승인을 받았다. 무엇이 결정적이었는지는 여전히 모른다. 다만 반려 당일 녹화한 90초와 지금의 90초를 나란히 놓으면, 무엇을 보여 줘야 하는지 몰랐던 게임과 첫 화면부터 고양이가 연어를 쫓는 게임의 차이는 분명하다.

현재 버전의 워밍업. 한국어 안내와 7일 출석 카드가 보인다 지금의 워밍업 화면. 매칭을 기다리는 동안에도 고양이를 움직일 수 있다

배운 것

막연한 반려 사유를 받았을 때 가장 도움이 된 건 추측이 아니라 같은 조건의 녹화였다. 첫 90초를 프레임 단위로 늘어놓자 고칠 것이 저절로 줄을 섰다. 그리고 “조작까지 몇 초”라는 숫자 하나가 여러 회의보다 나았다. 지금도 새 버전을 낼 때마다 처음 몇 초 안에 고양이를 움직일 수 있는지부터 확인한다.

이 반려 전후의 개발 속도는 4일 만에 0.21 버전까지에서 날짜별로 정리했다. 지금의 첫 90초는 Salmonholic 게임 페이지에서 바로 확인할 수 있다.

#CrazyGames#온보딩#첫인상#웹게임#Salmonholic

함께 읽으면 좋은 글

전체 글 →