본문으로 건너뛰기

고구마 배구인 줄 알았는데 — 추억의 감자배구 다시 만들기

추억의 감자배구, 바이브코딩으로 다시 만들기 — 썸네일 일러스트

고구마 배구였나?

다음에 만들 게임을 생각하다가 오래전 게임 하나가 떠올랐다. 이름이 가물가물했다. 피카츄 배구와 비슷한데, 내가 찾는 건 그보다 먼저 봤던 것 같았다. 그렇게 옛 게임 화면을 찾아보니 감자배구였다. 이름은 헷갈렸어도 화면을 보자 알아볼 수 있었다.

지뢰찾기 다음에는 벽돌깨기를 만들려고 했는데, 이쪽을 먼저 해 보기로 했다. 옛날에 보던 감자들이 다시 공을 주고받는 모습을 보고 싶었다.

그렇다고 화면까지 예전 그대로 만들고 싶지는 않았다. 검은 배경은 크림색으로, 바닥은 녹색 코트로 바꾸고 캐릭터도 새로 그리기로 했다. 네트 양쪽에 감자 두 마리가 서 있는 모습은 남겨 두었다.

첫 구현 화면. 감자 두 마리와 코트, 컴퓨터·2인 모드가 갖춰졌다.
처음 받은 화면. 왼쪽은 보라색, 오른쪽은 갈색 감자로 잡았다.

구현은 Claude Code의 Sonnet에 부탁했다. 구독 한도를 생각하면 여러 번 수정 요청을 보내기에는 Sonnet이 부담이 적었다. 컴퓨터와 혼자 할 수도 있고, 같은 키보드로 둘이 할 수도 있게 요청했다. 공이 바닥에 닿으면 상대 점수가 올라가고, 먼저 7점을 얻으면 끝나는 규칙이다.

여기까지는 제법 그럴듯했다. 문제는 첫 공이었다.

상대는 가만히 있었는데 0 대 1

2인 모드를 골라 서브를 넣었다. 다른 키는 누르지 않고 공이 어디로 가는지만 봤다. 공이 위로 올라갔다가 내려오는데, 네트까지 가지 못하고 내 쪽 바닥에 떨어졌다.

처음 서브만 넣고 지켜본 결과. 공이 자기 코트에 떨어져 0 대 1이 됐다.
서브 한 번 넣었을 뿐인데 오른쪽에 1점이 올라갔다.

점수 계산은 정확했다. 내 코트에 떨어졌으니 상대 점수인 게 맞다. 그런데 기본 위치에서 넣는 서브부터 이렇게 짧으면 공을 주고받을 수가 없다. 감자 모양을 다듬기 전에 서브부터 다시 부탁해야 했다.

이번에는 요청을 좁혔다. 기본 위치에서 서브를 넣으면 네트를 넘어 상대 코트로 가게 해 달라고 했다. 공의 가로 속도와 위로 솟는 속도를 조절했고, 왼쪽과 오른쪽 양쪽에서 확인했다. 중간 수정본은 넘어가면서 네트 윗부분을 스치길래 궤적을 한 번 더 높였다.

컴퓨터 상대는 기다려 주지도 않았다. 컴퓨터가 득점하면 다음 공을 바로 시작했다. 아직 어떤 공이었는지 보고 있는데 경기가 이어졌다. 이것도 바꿨다. 점수가 나면 일단 멈추고, 내가 버튼을 눌렀을 때 다음 서브를 준비하게 했다.

수정 후 같은 조건에서 확인한 결과. 공이 상대 코트로 넘어가 1 대 0이 되었고, 다음 입력을 기다린다.
수정 뒤에는 반대편 바닥에 떨어졌다. 1 대 0에서 다음 입력을 기다리는 중.

이제 같은 서브를 넣으면 상대 코트까지 간다. 받는 쪽을 움직이지 않았으니 이번에는 왼쪽에 점수가 올라갔다. 이 화면의 1 대 0은 컴퓨터를 이겼다는 기록이 아니라, 기본 서브가 제 갈 길로 갔다는 확인이다.

한 공씩 멈춰 보면서 공의 색도 조금 손봤다. 밝은 배경에 밝은 공을 쓰니 구분이 약해서 테두리와 그림자를 더했다. 서브하기, 다음 랠리, 일시정지 버튼도 화면 아래에 두었다.

공이 움직이는 중 일시정지를 누른 화면. 재개 버튼이나 P로 이어 할 수 있다.
공이 떠 있을 때 잠깐 멈췄다. P를 누르거나 재개 버튼을 누르면 이어진다.

완성 화면은 기억 속 게임보다 훨씬 밝아졌다. 보라색 감자와 갈색 감자가 가운데 네트를 바라보고 있는 모습은 남았다. 처음 옛 화면을 찾아봤을 때 다시 만들어 보고 싶었던 부분도 이 구도였다.

이번에 만든 컴퓨터 상대는 공을 따라 움직이는 단순한 방식이다. 옛 감자배구의 움직임을 그대로 재현한 버전은 아니다. 우선 이 모습으로 공을 넘길 수 있게 만든 데까지 파일로 남겨 뒀다. 다음에 다시 손댄다면 배경을 더 꾸미기보다, 컴퓨터와 공이 몇 번 더 오가도록 움직임을 다듬고 싶다.


직접 해 보려면 · 감자배구 소스와 실행 파일에서 potato-volleyball.html을 내려받아 PC 브라우저로 열면 된다. 파일 하나로 실행되며 인터넷 연결은 필요 없다.

왼쪽은 A·D로 이동하고 W로 점프한다. 2인 모드의 오른쪽은 방향키 ←·→와 ↑를 쓴다. 서브와 다음 공은 화면 버튼 또는 Space, 일시정지와 재개는 P다. 자세한 조작과 소스 구성은 저장소에 적어 두었다.

다음 이전