테스터 34명 중 여러 명이 "찍어야 풀린다"고 했습니다. 그 한 문장 때문에 게임의 심장인 퍼즐 생성기를 통째로 갈아엎었습니다.
넘버젠과 같습니다. 가장 이른 흔적은 7월 15일 저녁인데, 그때는 이미 앱으로 포장하는 단계였습니다. 노노그램을 만들기로 한 날, 게임을 짜던 날은 아무 데도 안 남아 있습니다.
그래서 이 글도 "게임을 만든 이야기"가 아니라 "만든 게임을 스토어에 올리고, 사람들에게 맞아 본 이야기"입니다.
appId com.pixellogic.app. 출시 후에는 바꿀 수 없어서 여기서 확정했습니다.
아이콘을 뽑는 도구를 직접 만들고(make-icon.js),
서명 빌드부터 스토어 제출까지의 절차를 문서로 정리했습니다.
이 문서는 넘버젠과 공용으로 썼습니다.
문서 마지막의 "자주 하는 실수" — 디버그 APK는 업로드 불가, 키스토어 분실 = 업데이트 불가, appId 출시 후 변경 불가, 디지털 재화는 스토어 결제 의무.
에뮬레이터가 아니라 실제 폰으로 찍었습니다. 상태바에 통신사와 배터리가 그대로 남아 있습니다. 이 스크린샷은 한 달 뒤 스토어 개편에서 다시 쓰이게 됩니다.
여기까지가 넘버젠과 거의 같은 흐름입니다. 차이는 그다음부터 생깁니다 — 픽셀로직은 사람들에게 먼저 맞았습니다.
Google Play는 프로덕션에 올리기 전에 테스터 12명 이상, 14일 이상의 비공개 테스트를 요구합니다. 요건을 채우려고 시작했는데, 실제로 얻은 건 요건 충족보다 컸습니다.
지인 네트워크로 모아 최종 34명. 세 가지를 봐 달라고 했습니다.
크래시나 결제 오류 같은 치명적 결함은 하나도 안 나왔습니다. 대신 반복해서 언급된 의견이 세 가지 나왔고, 두 번째가 문제였습니다.
"일부 퍼즐이 논리만으로 풀리지 않고 찍어야 하는 구간이 있다."
노노그램에서 이건 사소한 불만이 아니라 장르의 전제가 깨진 겁니다. 찍어야 한다면 그건 논리 퍼즐이 아닙니다.
원인은 생성 방식이었습니다. 처음에는 미리 그려둔 그림을 퍼즐로 썼습니다. 그림을 그리고 각 줄의 연속 칸 수를 세어 단서를 뽑는 방식입니다. 만들기 쉽고 그림도 예쁩니다.
문제는 그림이 예쁘다는 것과 그 단서로 답이 하나로 정해진다는 것은 다른 이야기라는 점입니다. 같은 단서로 여러 답이 성립하면 플레이어는 어느 시점에 반드시 찍어야 합니다. 그림에서 출발하면 이걸 통제할 수 없습니다.
그래서 순서를 뒤집었습니다. 그림 → 단서가 아니라 후보 생성 → 논리로 풀어보기 → 통과한 것만 출제입니다.
핵심은 가운데입니다. 사람이 실제로 쓰는 추론 방식인 줄 단위 논리 추론(line solving)을 코드로 구현해, 그 방법만으로 끝까지 풀리는지 검사합니다. 중간에 막히면 그 퍼즐은 버립니다. 통과한 것만 나가므로 해가 유일하고, 찍어야 하는 구간이 원리적으로 생기지 않습니다.
부수 효과로 난이도 기준도 바뀌었습니다. "그림이 복잡하면 어렵다"에서 "푸는 데 필요한 추론 단계 수"로요. 사람이 느끼는 어려움과 훨씬 잘 맞습니다.
한 줄이 완성되면 남은 칸에 X를 자동으로 찍어주는 기능에 대해 "스스로 추론하는 재미가 줄어든다"는 의견이 있었습니다. 없애는 대신 설정 항목으로 만들어 끄고 켤 수 있게 했습니다. 기존 사용자를 위해 기본값은 켜짐입니다.
"처음 켰을 때 뭘 해야 할지 모르겠다"는 의견에 대해, 노노그램 규칙을 예시 그림과 함께 3단계로 안내하는 화면을 넣고 설정의 '게임 방법'에서 다시 볼 수 있게 했습니다. 지원하는 4개 언어 전부에 적용했습니다.
좁은 화면에서 격자가 화면을 벗어나던 문제, Android 16(API 36) 타겟팅 상향, 다크 모드와 애니메이션 최소화 설정.
테스트를 어떻게 했는지, 어떤 피드백을 받았는지, 무엇을 고쳤는지를 적어 냈습니다. 위의 세 가지가 그대로 답변이 됐습니다. 고칠 게 있었기 때문에 쓸 내용이 있었습니다.
문서에 이렇게 적혀 있습니다 — "모든 내용은 실제 진행한 사실 기준입니다. 숫자가 달라졌다면 고쳐서 제출하세요."
코인 100·300·700, 광고 제거. 넘버젠과 같은 구성입니다. 여기서는 결제 코드와 테스트를 같은 시각에 만들었습니다.
레벨 시작·완료·실패, 힌트, 보상형 광고 결과, 상점·설정, 출석·튜토리얼을 측정합니다. 튜토리얼에서 나가는 것과 3레벨에서 나가는 것은 다른 문제인데, 측정이 없으면 둘 다 "안 쓴다"로만 보입니다.
테스트 광고를 끄고 실제 AdMob 단위 ID로 바꾼 뒤 5분 만에 릴리스 빌드가 나왔습니다.
8월 21일 기준 픽셀로직은 Google Play 프로덕션에 출시된 상태였습니다. Play 평점 5.00, 월간 활성 기기 1대.
| 항목 | 픽셀로직 (최근 7일) |
|---|---|
| Play 월간 활성 기기 | 1 |
| 광고 요청 / 노출 | 38 / 28 |
| 광고 수익 | 약 US$0.05 |
| 일치율 | 100% |
| eCPM | 약 US$1.89 |
| Play 평점 | 5.00 |
광고 쪽은 오히려 멀쩡했습니다. 일치율 100%면 요청한 광고가 전부 채워졌다는 뜻이고, eCPM $1.89도 이상한 값이 아닙니다. 노출 28회에 5센트는 계산이 정확히 맞는 금액입니다. 28번밖에 보여줄 기회가 없었을 뿐입니다.
즉 고칠 곳은 광고 설정이 아니라 그 앞단이었습니다.
공개 스토어를 점검하다 발견했습니다. 한국어 사용자가 보는 제목과 설명이 영어로 올라가 있었습니다.
한국어 이름·짧은 설명·긴 설명을 새로 쓰고, 7월 21일에 찍어둔 실기기 스크린샷을 재료로 문구를 얹은 마케팅 스크린샷 4장을 만들었습니다. 첫 장의 문구는 "찍지 않고, 논리로 완성"입니다 — 테스터들이 지적했던 바로 그 지점입니다.
스크린샷은 다시 만들 수 있게 생성 스크립트로 남겼습니다.
판단 근거는 이랬습니다 — 다운로드가 적은 초기에는 유료 광고보다 등록정보 언어와 첫 스크린샷을 먼저 고치는 게 낫다. 자연 검색과 링크로 들어온 사람을 흘리지 않는 게 먼저라는 뜻입니다.
아직 남은 큰 문제는 넘버젠과 같습니다. 진행 상황이 기기 안에만 저장돼서 기기를 바꾸면 처음부터입니다. 서버가 필요한 일이라 미뤄져 있고, 대신 약관과 지원 페이지에 숨기지 않고 적어 뒀습니다.
픽셀로직은 브라우저에서 바로 해보실 수 있고, Google Play에도 있습니다. 같은 코드입니다.