SSOLY TOWN · DEEP DIVE · AUDIO / SOUND DESIGN

오디오·사운드 디자인 — 이미 갖춘 것과 남은 기회

업계 UI 사운드 원칙 대조 + 우리 코드 실측(WebAudio 절차 생성 구조) · 2026-07-11
정정된 총평: 코드를 직접 확인한 결과, 이 게임의 오디오 시스템은 예상보다 훨씬 완성도가 높다. 외부 음원 파일 없이 WebAudio로 전부 절차적 생성(오실레이터+노이즈)하는 구조이며, 음악/효과음/UI 3채널 독립 볼륨, 배경음악 루프(5음 펜타토닉 아르페지오), 17개 이상의 개별 SFX 함수(스냅·완성·피니시·팡파르·차지·승리·게임오버·가챠당첨 등)가 이미 구현돼 있다. 남은 기회는 "없는 걸 새로 만들기"가 아니라 이미 있는 계층을 더 세밀하게 나누는 것이다.

1. 업계 원칙 대조

2. 코드 실측 — 현재 인벤토리

레이어구현 상태근거
3채널 볼륨(Music/SFX/UI)완비sfxGain()/uiGain()/musicGain() 개별 GainNode, 설정화면 3개 슬라이더 연결
배경음악완비musicStep() — 5음 펜타토닉(C5 D5 E5 G5 A5) 1.6초 간격 아르페지오, 옥타브 아래 겹침으로 화음감. 첫 유저 제스처 후 시작(오토플레이 정책 대응)
가챠 당첨음완비playGachaWin() — "당첨 사운드 + 짧은 음악 스팅" 주석 확인
가챠 등급별 차등(레어/에픽 서스펜스 길이)미확인/보강기회playGachaWin() 호출부가 등급 인자를 받는지 코드 추가 확인 필요
범용 UI 클릭음완비playUiClick() — 예상과 달리 이미 있었음(초안 보고서 오류 정정)

3. 남은 개선 기회 (있는 걸 더 세밀하게)

① 가챠 리빌에 등급별 서스펜스 escalation 추가. 지금 playGachaWin()이 단일 사운드라면, 레어도가 높을수록 리빌 전 서스펜스(빌드업) 길이와 팡파르 크기를 늘리는 계층을 추가하는 게 가장 저비용 고효율 — Coin Master류 경쟁작의 표준 기법.
② 세트 완성 시 전용 차임을 카드 이동음과 더 뚜렷이 분리. playComplete()/playDing()이 이미 구분되어 있다면 좋은 상태 — 실제 플레이에서 "세트 완성=재화 획득"이라는 인과관계가 청각적으로 확실히 느껴지는지 실기기 테스트로 재확인 권장.
③ 마을(village) 화면 전용 앰비언트. 게임 화면엔 풍부한 SFX 계층이 있지만, 마을 화면은 배경음악만 흐르고 주민 등장/상호작용 시 전용 사운드(뾰옹 소리 등)가 있는지 불명확 — 있다면 유지, 없다면 짧은 절차적 "뾰옹" 사운드 하나 추가로 마을의 생동감을 크게 높일 수 있음(WebAudio 인프라가 이미 있어 구현 비용 매우 낮음).

부록 — 코드 위치 · 출처

Ssoly Town · Magpies Studio · 내부 의사결정 문서 · noindex