본문 바로가기

게임 / Salmonholic

Salmonholic

고양이 열 마리, 연어 떼, 마지막 한 입. 10인 배틀로얄 서바이버.

우주비행사·해적·사무라이·디제이·스모 고양이 다섯 마리가 연어 사이에 서 있는 Salmonholic 픽셀아트 대표 이미지

Cats. Salmon. Last bite wins. 고양이 열 마리가 좁아지는 경기장에 들어가 연어 떼를 초밥으로 바꾸고, 그 초밥으로 커지며, 마지막 한 마리가 될 때까지 싸우는 게임입니다. 뱀파이어 서바이버류의 자동 공격·카드 성장에 배틀로얄의 축소 구역과 고양이끼리의 직접 대결을 섞었습니다. 한 판은 3~4분 정도이고, 브라우저에서 설치 없이 바로 시작합니다.

이렇게 한다

조작은 이동 하나뿐입니다. PC에서는 마우스 왼쪽 버튼을 꾹 누른 채 가고 싶은 쪽을 가리키거나 WASD 키로 움직입니다. 휴대폰에서는 화면 아무 곳이나 손가락을 대고 끌면 그 자리에 조이스틱이 생깁니다. 가로·세로 화면을 모두 지원합니다. 공격은 가장 가까운 적을 향해 자동으로 나가므로, 플레이어가 고민할 것은 어디에 서 있을지입니다.

  1. 연어를 잡는다. 경기장에는 은빛 연어가 계속 몰려옵니다. 처치한 연어는 초밥을 떨어뜨리고, 초밥을 먹으면 경험치가 찹니다. 경기 초반 2분 동안 기본 연어는 한 대에 쓰러지도록 맞춰 두었습니다.
  2. 레벨업마다 카드 세 장 중 하나를 고른다. 새 무기, 가진 무기의 레벨업, 패시브(공격력·이동 속도·자석·최대 HP) 중 하나가 나옵니다. 클릭이나 터치, PC에서는 숫자 1·2·3으로 고릅니다. 무기는 여섯 칸, 무기 레벨은 4까지이며, 최고 레벨 무기에 짝이 맞는 패시브를 한 번이라도 찍으면 진화 카드가 나옵니다.
  3. 좁아지는 안전 구역 안에 머문다. 구역은 다섯 단계로 줄어들고, 바깥에 있으면 체력이 계속 깎입니다. 구역이 좁아질수록 다른 고양이와 마주칠 일이 많아집니다.
  4. 마지막 한 마리가 된다. 다른 고양이를 쓰러뜨리면 그 고양이가 모은 경험치 일부가 바닥에 떨어지고 최대 체력의 30%를 회복합니다. 끝까지 살아남은 고양이가 우승입니다.

일시정지는 P 키나 화면의 일시정지 버튼으로 합니다. 경기에 사람이 다 차지 않으면 빈자리는 봇이 채우고, 봇은 이름 옆에 "(봇)"으로 표시됩니다. 봇 지능은 10단계로 나뉘어 있어 한 방 안에 약한 봇과 강한 봇이 섞입니다. 처음 세 판은 약한 봇 위주로 배정되고, 이 세 판에서는 경기 시작 후 90초 동안 봇이 신규 이용자를 공격하지 않습니다.

처음 접속하면 매칭을 기다리는 동안 워밍업 공간에서 바로 고양이를 움직일 수 있습니다. "이동 → 초밥 먹기 → 마지막 고양이 되기" 세 단계 안내가 한 번 나오고, 끝내거나 건너뛰면 다음 방문부터는 생략됩니다. 규칙을 더 자세히 알고 싶다면 초보 가이드에 생존 요령과 카드 고르는 법을 정리해 두었습니다.

특징

고양이 16종, 각자 다른 시작 무기

기본 고양이, 모찌, 닌자, 요리사, 낚시꾼, 스모, 마법사, 로봇, 해적, 우주비행사, 사무라이, 무녀, 잠수부, 초밥 장인, 너구리, 디제이까지 16종의 고양이가 있습니다. 캐릭터마다 시작 무기와 작은 능력치 차이가 있습니다. 예를 들어 해적 고양이는 연어알포와 피해 +4%, 스모 고양이는 주먹밥 발구르기와 체력 +6%로 시작합니다. 기본 고양이 외에는 경기에서 버는 초밥 코인으로 해금하며, 후반 여덟 종은 랭크나 업적 개수 조건이 함께 붙습니다.

낚시꾼, 로봇, 해적, 사무라이, 스모, 마법사, 우주비행사, 무녀, 잠수부, 디제이 고양이가 한 경기에 모인 화면
0.20.0에서 추가한 고양이 열 마리가 한 경기에 모인 모습

품종 털 12종과 장신구 20종

고양이마다 털을 고를 수 있습니다. 코숏, 치즈 태비, 턱시도는 처음부터 쓸 수 있고, 샴·랙돌·페르시안·러시안 블루·검은 고양이·삼색이·고등어 태비·벵갈·스핑크스는 코인이나 출석 보상으로 엽니다. 엄밀히 말하면 턱시도·삼색이·태비는 혈통 품종이 아니라 털무늬지만, 게임 안에서는 편하게 "품종"으로 묶었습니다. 왕관, 초밥 모자, 선글라스, 무지개 망토 같은 장신구도 20종 있습니다. 털과 장신구는 모양만 바꾸고 능력치에는 영향을 주지 않습니다.

품종 치즈 태비 2/12, 장신구 황금 목걸이 12/21을 고른 고양이 꾸미기 화면
품종과 장신구를 고르는 화면. 황금 목걸이는 출석 7일차 보상이다

같은 품종 고양이 열 마리가 한 경기에 모여도 헷갈리지 않도록, 각자의 식별 색은 털이 아니라 이름표·발밑 고리·미니맵 점으로 표시합니다. 캐릭터와 털 이야기는 캐릭터 16종과 품종 털 꾸미기에 따로 적었습니다.

무기 24종과 진화

마법 지팡이, 부메랑 도끼, 레이저, 블랙홀 같은 서바이버류의 익숙한 무기에 와사비 박격포, 김 수리검, 튀김 드릴, 성게 지뢰 같은 초밥 가게 무기를 더해 모두 24종입니다. 모든 무기에 진화형이 있어서, 예를 들어 와사비 박격포는 오래 남는 와사비 정원으로, 마법 지팡이는 성스러운 지팡이로 바뀝니다.

다시 할 이유: 업적 52개, 주간 리더보드, 일일 미션

  • 업적 52개: 연어 잡기, 초밥 모으기, 상위 3위, 진화, 출석, 캐릭터별 우승 같은 조건을 단계별로 나눴습니다. 업적을 달성하면 칭호가 생기고, 고른 칭호는 닉네임 아래에 표시되어 온라인 상대에게도 보입니다.
  • 랭크와 주간 리더보드: 브론즈부터 다이아몬드까지 15단계 랭크가 있고, 랭크 점수는 서버가 직접 기록하는 주간 리더보드에 올라갑니다.
  • 일일 미션 3개: 초밥 먹기, 생존 시간, 3위 안에 들기 같은 과제가 매일 세 개 나오고, 모두 끝내면 코인 20개와 랭크 75점을 줍니다. 현지 시간 자정에 초기화됩니다.
  • 7일 출석 선물: 하루씩 코인이 늘어나고 3일차에 벵갈 품종, 7일차에 황금 목걸이와 전용 칭호를 줍니다. 하루 빠져도 처음부터 다시 시작하지 않습니다.

스크린샷

모든 스크린샷은 실제 게임 화면을 1280×720으로 캡처한 것입니다. 타이틀 화면은 테스트용 닉네임이 보이는 위쪽 줄을 잘라 냈습니다.

만든 이야기

Salmonholic은 처음부터 고양이 게임이 아니었습니다. 2026년 9월 21일 하루에 되감기 슈터 Rewind Shot과 자석 슈터 Magnet Head라는 두 컨셉을 만들고 둘 다 접었습니다. 그 뒤에 남은 것이 "10인 배틀로얄 + 자동 공격 서바이버"라는 틀이었고, 처음에는 이름도 Survivor Royale이었습니다. 이름을 Salmonholic으로 정한 뒤 "이름에 맞는 테마"를 다시 골라 고양이 대 연어 떼, 경험치는 초밥이라는 지금의 모습이 됐습니다. 버린 컨셉 이야기는 Rewind Shot과 Magnet Head는 왜 접었나에 있습니다.

가장 크게 방향을 바꾼 계기는 9월 24일 CrazyGames의 반려였습니다. 사유는 "전체적인 품질이 아직 기대에 못 미친다"는 한 줄이었고, 첫 90초를 녹화해 보니 게임이 로딩된 뒤 실제로 움직이기까지 13초 넘게 대기 명단만 보고 있었습니다. 같은 날 0.12.0에서 대기 시간을 조작 가능한 워밍업으로 바꿔 약 0.25초 만에 움직일 수 있게 했고, 다음 날 다시 제출해 CrazyGames에 올라갔습니다. 이 과정은 첫 90초를 다시 만든 이야기에 자세히 적었습니다.

기술적으로는 Godot 4.7로 만든 게임을 웹으로 내보내고, 경기 판정은 서버가 맡습니다. 체력, 안전 구역, 고양이끼리의 전투, 카드 선택은 초당 15번 도는 서버가 결정하고, 브라우저는 입력을 먼저 반영한 뒤 서버 결과에 맞춰 보정합니다. 웹 export 크기를 줄이려고 Godot 웹 템플릿을 직접 빌드해 wasm 압축 크기를 6.9MB에서 3.5MB로 줄였습니다.

서버는 두 곳에 있습니다. 해외 이용자는 Cloudflare Durable Objects에서 지역별로 방을 잡고, 한국 이용자는 서울 리전의 작은 VM에서 경기합니다. 처음에는 Durable Objects 하나로 전 세계를 받으려 했지만, 제 회선에서는 연결이 미국 서부를 거쳐 왕복 지연 중앙값이 324ms나 됐습니다. 서울에 서버를 따로 두자 같은 측정이 14ms로 떨어졌습니다. 두 서버는 같은 게임 규칙 코드를 그대로 가져다 쓰고, 브라우저가 양쪽을 세 번씩 재서 더 빠른 곳을 고릅니다. 이 결정은 한국에서 324ms → 14ms에 정리했습니다.

게임 클라이언트를 처음 커밋한 9월 23일 밤의 0.10.0부터 9월 27일 오전의 0.21.0까지, 나흘 동안 버전 번호가 붙은 커밋만 36개였습니다. 캐릭터 16종, 품종 털, 업적 52개, 주간 리더보드가 모두 그 사이에 들어갔습니다. 어떻게 그 속도를 냈고 무엇을 놓쳤는지는 4일 만에 0.21 버전까지에 기록했습니다.

자주 묻는 질문

돈을 내야 하나요?

아닙니다. 게임과 캐릭터 해금은 모두 무료이고, 캐릭터·털·장신구는 게임 안에서 버는 초밥 코인과 출석·업적 보상으로만 엽니다. 게임 안에서 현금으로 사는 상품은 없습니다.

같이 하는 고양이들은 사람인가요?

온라인 방에 사람이 있으면 함께 경기하고, 10명이 다 차지 않으면 빈자리를 봇이 채웁니다. 봇은 이름 옆에 "(봇)"이 붙어 있어 구분할 수 있습니다. CrazyGames에서는 초대 링크로 친구를 같은 방에 부를 수 있습니다.

휴대폰에서도 되나요?

됩니다. 휴대폰 브라우저에서 화면을 끌어 이동하고, 카드는 터치로 고릅니다. 세로 화면으로도 할 수 있습니다. 카카오톡 같은 앱 안의 브라우저에서 안 열리면 주소를 기본 브라우저로 열어 주세요. 게임 엔진이 보안 연결(https)과 WebGL 2를 필요로 합니다.

한국에서 하면 느리지 않나요?

한국 이용자는 서울에 있는 서버로 연결됩니다. 브라우저가 서울 서버와 해외 서버를 각각 재서, 서울이 30ms 이상 느리지 않으면 서울을 먼저 고릅니다. 한쪽 서버가 가득 차면 다른 쪽으로 넘어갑니다.

진행 상황은 어디에 저장되나요?

play.salmonholic.com에서는 지금 쓰는 브라우저에 저장됩니다. 브라우저 데이터를 지우거나 다른 기기에서 접속하면 처음부터 시작합니다. CrazyGames에서 할 때는 CrazyGames 계정 저장 기능을 씁니다.

지금 하기

한 판은 3~4분이면 끝납니다. 처음이라면 워밍업에서 이동과 초밥 먹기를 한 번 해 보고, 첫 경기에서는 무기 하나를 레벨 4까지 키워 진화시키는 것을 목표로 해 보세요. play.salmonholic.com에서 바로 시작할 수 있고, CrazyGames와 itch.io에도 올라가 있습니다.

Salmonholic 개발일지

블로그 전체 →