본문 바로가기

블로그 / 회고

버린 게임 컨셉 두 개: Rewind Shot과 Magnet Head는 왜 접었나

Salmonholic 이전에 하루 만에 만들고 버린 두 프로토타입 이야기. 되감기 슈터는 기하학 때문에, 자석 슈터는 30초 영상 한 편 때문에 접었다. 기록에 남긴 수치와 교훈을 정리했다.

Salmonholic ·· 5분 읽기

보라색 줄무늬 배경의 Rewind Shot 화면과 검은 배경의 Magnet Head 화면을 나란히 놓은 이미지

Salmonholic을 만들기 전에 버린 게임이 있다. 정확히는 2026년 9월 21일 하루 동안 만들고 버린 컨셉 두 개다. 하나는 되감기 슈터 Rewind Shot, 다른 하나는 자석 슈터 Magnet Head다. 둘 다 Godot 4.7로 실제로 움직이는 프로토타입까지 만들었고, 둘 다 같은 날 접었다.

접은 이유는 저장소의 묘지 문서에 적어 두었다. 같은 실수를 두 번 하지 않기 위해서다. 이 글은 그 기록을 다시 읽으며 쓴 회고다.

Rewind Shot: 과거의 탄환이 현재의 적을 맞힌다

아이디어는 이랬다. 마우스 버튼을 짧게 누르면 사격, 꾹 누르면 2초 되감기. 되감는 동안 내가 쏜 탄환은 제자리에 멈춰 있고 적만 과거로 돌아간다. 그러면 멈춘 탄환 쪽으로 되돌아온 적이 맞는, “과거의 탄환이 현재의 적을 맞히는 순간”이 무기가 될 거라고 생각했다.

Rewind Shot 프로토타입. 보라색 줄무늬 화면 위에 REWIND 글자와 멈춘 탄환 점들이 보인다 Rewind Shot의 되감기 순간. 320×180 화면을 4배로 키웠고 아래 디버그 줄은 잘라 냈다

사람이 직접 하지 않고 봇 입력으로 지표를 뽑았다. 가장 위험해 보였던 가정, 즉 “탭은 사격, 홀드는 되감기”를 한 버튼에 넣어도 충돌하지 않는다는 것은 성립했다. 0.16초 홀드 기준으로 연사 236번 중 되감기 오발동이 0번이었다.

문제는 핵심 순간이 거의 안 나온다는 것이었다. 목표는 되감기 한 번당 과거 탄환 킬 0.5회였는데, 규칙을 세 번 바꾸고 튜닝을 두 번 돌려도 0.36회를 넘지 못했다.

버전 바꾼 규칙 결과
1차 되감기 중 탄환은 제자리에 정지 되감기 22번에 과거 탄환 킬 1~4번
2차 탄환이 지뢰처럼 남음 과거 탄환 킬 비중은 올랐지만 목표 미달
3차 되감기를 풀 때 폭발 적이 지뢰밭 밖으로 돌아와 효과 없음

세 번째 실패 뒤에야 원인이 튜닝이 아니라 기하학이라는 걸 알았다. 되감기는 적을 플레이어에게서 멀어지는 방향으로 되돌린다. 그런데 내가 쏜 탄환은 전부 나와 적 사이에 있다. 맞은 탄환은 사라지고, 빗나간 탄환은 이미 화면 밖으로 나갔다. 적이 멈춘 탄환 쪽으로 돌아올 일이 구조적으로 드물다. 판정 도구의 결론도 KILL이었다(78%).

그래도 건진 것

Rewind Shot에서 나온 교훈 중 지금도 쓰는 것이 있다.

  • 되감기 자체는 매우 강력한 방어 수단이었다. 되감기를 쓰는 봇은 60초를 살았고, 안 쓰는 봇은 24초에 죽었다. 컨셉이 피하려던 “실수 취소 버튼”이 되어 버린 것이다.
  • “과거의 탄환”은 날아가는 것이 아니라 남아 있는 것이어야 했다. 지뢰처럼 남는 규칙에서만 과거 탄환 킬이 전체의 55~82%까지 올라갔다.
  • 다음에 “A가 B를 만난다”는 식의 훅을 떠올리면, 코드를 쓰기 전에 종이에 두 개체의 이동 방향부터 그리기로 했다.

Magnet Head: 지표는 괜찮았는데 재미없어 보였다

두 번째 컨셉은 마우스를 꾹 누르면 모든 적과 자폭 드론이 커서 쪽으로 끌려오는 슈터였다. 끌어모은 뒤 한 번에 터뜨리는 쾌감이 핵심이었다.

Magnet Head 프로토타입. 검은 화면에 청록색과 분홍색 점, 노란 사각형이 흩어져 있다 Magnet Head의 12초 지점. 점과 사각형만 있는 그레이박스였다

봇 지표만 보면 나쁘지 않았다. 끌어당기기를 쓰는 봇은 39초를 살아 방 4개를 깼고, 쓰지 않는 봇은 16초 만에 방 2개에서 죽었다. 오발동은 146번 중 0번이었다. 다만 시그니처 순간인 “뭉쳐서 한 번에 처치”는 전체 킬의 13%에 그쳤다. 목표는 50%였다.

결정은 지표가 아니라 영상이 내렸다. 봇이 30초 동안 플레이하는 영상을 보고 나는 이렇게 말했다. “진짜 재미없어 보이는데? 차라리 디펜스 게임이 낫겠어.” 점과 사각형만으로는 뭉쳐서 터지는 쾌감이 화면에 보이지 않았다. 봇 지표로 재미를 대신 재려던 방식 자체의 한계였다.

두 번의 실패가 남긴 규칙

두 컨셉을 접으면서 적어 둔 규칙은 짧다.

  1. 프로토타입은 지표보다 영상을 먼저 본다. 숫자는 좋아도 보기에 재미없으면 끝이다.
  2. 장르는 내가 정하고, 도구는 그 안의 요소를 정한다. Rewind Shot은 질문 없이 판정 도구가 결정하도록 맡겼고, 결국 내가 하고 싶은 게임인지는 아무도 묻지 않았다.
  3. 지표 정의는 코드보다 먼저 고정한다. Rewind Shot 2차에서 지표 정의를 두 번이나 바꿨다.

그 뒤 디펜스 프로토타입도 하나 만들었지만 결론을 내리지 않은 채 두었다. 같은 날 늦게, 나는 내가 해 보고 싶은 틀을 직접 골랐다. 뱀파이어 서바이버류의 자동 공격 성장에 배틀그라운드식 축소 구역을 섞은 10인 게임이다. 첫 프로토타입은 판정 도구 없이 60초짜리 경기 영상과 웹 빌드부터 만들었다. 이번에는 지표보다 영상이 먼저였다. 그 프로토타입이 이틀 뒤 고양이와 연어를 입고 Salmonholic이 됐다.

지금의 Salmonholic 경기 시작 화면. 코숏 고양이 주위에 연어와 초밥이 있다 그렇게 나온 지금의 Salmonholic. “보기에 재미있는가”를 먼저 따졌다

돌아보면 두 컨셉에서 건진 것도 적지 않다. Godot 웹 export 파이프라인, 헤드리스 대신 60fps 고정 녹화로 봇을 재는 방법은 모두 Salmonholic에 그대로 들어갔다. 버린 게임의 기록은 다음 게임의 설계 문서였다.

이렇게 시작한 게임이 나흘 만에 어디까지 갔는지는 4일 만에 0.21 버전까지에 적었다. 지금의 게임은 Salmonholic 게임 페이지에서 볼 수 있다.

#프로토타입#게임기획#실패기록#Godot#Salmonholic

함께 읽으면 좋은 글

전체 글 →