본문으로 건너뛰기
키캡 키우기: 감성 방치형 게임 화면
PROTOTYPE웹 프로토타입 + iOS 셸 (시뮬레이터 검증)
2026.06.05 – 06.15

키캡 키우기: 감성 방치형 게임

키보드 스위치를 모으고 길들이는 방치형 게임 프로토타입입니다. 스위치 내부를 X-ray로 보여주는 렌더와 타건음(일부 계열은 CC0 녹음 음원)을 만들었고, 보상이 수입을 건드리지 못하게 막는 '인컴 방화벽'을 규칙과 런타임 검사로 강제했습니다.

ROLE
1인 기획·개발
PERIOD
2026.06.05 – 06.15
STACK
Game Design · JavaScript · Web Audio · Swift
OUTPUT
57 커밋 · 11일
  1. 06.05

    v0.5 X-ray 스위치·타건음

  2. 06.07

    첫 사용자 흐름·코스메틱 상점

  3. 06.10 (전환점)

    No P2W 수익 모델 확정

  4. 06.12

    저장 강화 + iOS 셸·로컬 푸시

  5. 06.14

    컴패니언 시스템

요약

기계식 키보드 스위치를 모으고 길들이는 감성 방치형 게임입니다. 스위치 내부의 스프링과 접점이 움직이는 모습을 X-ray처럼 보여주고, 누를 때마다 타건음이 납니다. 클릭·택타일 계열은 공개 CC0 녹음 음원, 나머지 계열은 직접 만든 합성음입니다.

2026년 6월 5일부터 15일까지 11일 동안 Claude Code와 페어로 커밋 57개를 쌓아 웹 프로토타입과 iOS 셸까지 만들었습니다. 앱스토어 출시는 하지 않았고, iOS는 시뮬레이터에서만 확인한 단계입니다.

키캡 키우기 화면: 소리 취향 퀴즈, 타건 화면, 컬렉션

항목내용
프로토타입단일 HTML 파일(약 3천 줄), Web Audio, 4개 탭
iOS 셸Swift 파일 5개, WKWebView + 로컬 푸시 5개 시나리오
게임 구조챕터 5개, 업적 26개, 시즌 1개
기획 문서설계 문서 20개, 경제 시뮬레이션 스크립트

인컴 방화벽: 보상이 수입을 건드리지 못하게

방치형 게임은 쉽게 "돈을 내면 더 빨리 번다"로 흘러갑니다. 이 게임에서는 처음부터 그 길을 막는 규칙을 정했습니다.

단계내용
규칙보상은 코스메틱, 소리, 인정(배지·카드)만 줄 수 있습니다. 탭당·초당 수입은 어떤 보상으로도 바뀌지 않습니다
강제금지 토큰을 찾는 정적 검사와, 보상을 받기 전후의 탭당·초당 수입이 정확히 같은지 확인하는 런타임 검사를 함께 둡니다
결과광고를 보면 코인을 주던 경로를 삭제했습니다. 설계 단계 비평 리뷰를 거쳐 업적 보석 보상과 수입 배수 노드를 설계에서 뺐습니다

방치형인데 아무것도 자라지 않으면 재미가 없습니다. 그래서 스위치마다 "길들이기" 숙련도를 두되, 숙련도는 렌더와 소리만 바꾸고 하루 상한을 둬서 수입과는 구조적으로 연결되지 않게 했습니다.

소리는 귀로 고른다

타건음은 이 게임의 정체성입니다. 처음에는 합성음, 흔한 클릭 샘플, 다른 소리 팩에서 뽑은 소리를 차례로 넣었는데 들어 보니 세 번 모두 원하던 소리가 아니었습니다.

  • 원본 오디오에서 타건 지점을 브라우저 Web Audio로 직접 잘라내 후보 목록을 만들었습니다
  • 후보를 비교 페이지에 나란히 놓고 직접 들어 보며 골랐습니다. 최종 소리는 공개 CC0 녹음 음원입니다
  • "듣지 않고 고르지 않는다"는 규칙을 사운드 파이프라인 스킬에 적어 두었습니다

지금은 클릭·택타일 계열만 녹음 음원이고, 나머지 계열은 합성음으로 대신하고 있습니다.

저장과 iOS 셸

방치형 게임에서 진행이 날아가면 끝입니다. 저장 데이터에 스키마 버전을 붙이고, 읽을 때 정규화하고, 앱이 백그라운드로 갈 때 저장하도록 바꿨습니다. 오프라인 보상은 8시간으로 상한을 뒀습니다.

iOS는 웹 프로토타입을 WKWebView로 감싸고 로컬 푸시를 붙였습니다. 시뮬레이터에서 끝까지 돌려 보니, 웹 검사에서는 통과했던 첫 사용자 흐름 종료 처리의 회귀가 하나 나왔습니다. 실제 실행 환경에서 한 번 더 돌려 보는 이유를 확인한 순간이었습니다.

지금 상태

  • 웹 프로토타입과 iOS 셸까지 완성, 실기기 테스트와 스토어 출시는 하지 않았습니다
  • 결제, 광고 SDK, 분석 도구는 붙이지 않았습니다. 수익 모델은 문서로만 정해 두었습니다
  • 실시간 현황(Live Activities)은 스펙 문서 단계입니다

배운 점

"나중에 밸런스로 조정하자"는 규칙은 지켜지지 않습니다. 인컴 방화벽을 코드 검사로 강제해 두니, 새 보상을 추가할 때마다 고민하지 않아도 원칙이 저절로 지켜졌습니다. 감각적인 결정은 반대로 자동화하면 안 됐습니다. 소리처럼 사람이 직접 들어야 하는 건 비교 페이지를 만들어 사람에게 고르게 하는 것이 가장 빨랐습니다.