A4Room
← Devlog 목록

JudgyFroggy: 웹에서 바로 즐기는 판정 게임을 만들기까지

설치도, 로그인도 없이 브라우저에서 바로 켜지는 캐주얼 게임을 목표로 삼았습니다. 입력 반응성과 판정 로직, 그리고 v2 리라이트에서 얻은 교훈을 정리합니다.

JudgyFroggy는 "까다롭게 판정하는 개구리"라는 한 줄에서 출발했습니다. 플레이어가 무언가를 입력하거나 타이밍을 맞추면, 개구리가 그 결과를 즉석에서 평가하고 반응합니다. 규칙은 5초 안에 이해되지만 점수를 끝까지 밀어붙이기는 은근히 어려운 — A4Room이 좋아하는 종류의 캐주얼 게임입니다.

무엇보다 우리가 처음부터 못 박은 제약은 하나였습니다. 브라우저에서 링크만 누르면 바로 플레이되어야 한다. 스토어 등록도, 다운로드도, 회원가입도 없이 말이죠. 그래서 게임은 judgyfroggy.a4room.com에 정적 웹 앱으로 배포했고, 지금 돌아가는 빌드는 여러 번의 구조 개편을 거친 /v2/ 버전입니다.

왜 네이티브가 아니라 웹이었나

A4Room의 다른 프로젝트(MoaiWannaSlam, AI is Typing..)는 LÖVE/Lua 같은 네이티브 런타임 위에서 자랍니다. 하지만 JudgyFroggy처럼 "한 번 던져보고 바로 웃기는" 게임에서는 마찰(friction)이 곧 죽음입니다. 친구에게 링크 하나 보냈을 때, 그 친구가 앱을 깔지 고민하는 순간 이미 절반은 이탈합니다.

그래서 우리는 웹을 택했고, 대신 웹에서 흔히 무너지는 부분을 처음부터 신경 썼습니다.

판정 로직: 정답이 아니라 '반응'을 설계한다

이름에 "Judgy(판정하는)"가 들어간 만큼, 게임의 핵심은 플레이어의 행동을 어떻게 평가하고 되돌려주느냐였습니다. 초기 프로토타입에서 우리는 단순히 성공/실패 두 갈래로만 나눴는데, 이게 놀라울 만큼 재미가 없었습니다. 개구리가 "맞음/틀림"만 말하니까 감정이 안 생기더군요.

그래서 판정을 연속적인 스펙트럼으로 바꿨습니다. 대략 이런 식입니다.

function judge(input, target) {
  const delta = Math.abs(input - target);
  if (delta < 0.05) return "PERFECT";   // 개구리가 감탄
  if (delta < 0.15) return "GOOD";      // 고개 끄덕
  if (delta < 0.30) return "MEH";       // 미묘한 표정
  return "NOPE";                         // 대놓고 실망
}

중요한 건 숫자가 아니라 각 결과에 붙는 개구리의 리액션이었습니다. 같은 "GOOD"이라도 표정과 짧은 애니메이션이 있으면 플레이어는 한 번 더 도전합니다. 판정은 채점표가 아니라 대화여야 한다는 게 이 프로토타입에서 얻은 가장 큰 교훈입니다.

배운 점

캐주얼 게임에서 "옳고 그름"은 시스템이고, "그래서 캐릭터가 어떻게 반응하는가"는 재미다. 우리는 후자에 대부분의 시간을 썼다.

v1에서 v2로: 왜 다시 썼나

지금 서비스되는 건 /v2/ 빌드입니다. v1도 충분히 돌아갔지만, 두 가지 문제가 발목을 잡았습니다.

  1. 상태 관리가 뒤엉켰다. v1은 게임 상태(점수·판정·연출)를 여기저기 흩뿌려 두어서, 새 반응 하나를 추가할 때마다 예상치 못한 곳이 깨졌습니다. v2에서는 상태를 한 곳으로 모으고, 렌더는 그 상태를 읽기만 하도록 단방향으로 정리했습니다.
  2. 모바일 성능이 들쭉날쭉했다. 저사양 기기에서 프레임이 튀는 문제가 있었는데, 매 프레임 새로 만들던 오브젝트를 재사용(pooling)하고, 화면 밖 연출을 건너뛰는 것만으로 체감이 크게 좋아졌습니다.

리라이트는 늘 비용이 큰 결정이지만, 프로토타입 단계에서 구조가 썩었다는 신호를 무시하면 나중에 더 큰 값을 치릅니다. "빠르게 만든다"는 A4Room의 원칙은 "필요할 때 빠르게 다시 만든다"까지 포함합니다.

다음 단계

앞으로는 짧은 세션이 자연스럽게 이어지도록 연속 도전·기록 공유를 붙이고 있습니다. 웹 게임의 강점은 결과 화면 링크 한 번으로 친구를 끌어들일 수 있다는 점이니까요. JudgyFroggy는 A4Room이 "설치 없는 재미"를 어디까지 밀어붙일 수 있는지 실험하는 놀이터로 계속 자랄 예정입니다.

→ JudgyFroggy 지금 플레이하기