결과 화면에서 8초 뒤 다음 경기: Salmonholic 자동 다음 경기를 멈추게 하는 다섯 가지 조건
Salmonholic 0.22.1에 넣은 자동 다음 경기 기록. 첫 결과 8초, 그 뒤 6초 카운트다운을 붙이고, 입력·탭 숨김·광고·10초 자리 비움·무입력 두 판일 때 멈추게 한 이유와 검증 과정을 정리했다.
· 7분 읽기
Cats. Salmon. Last bite wins. 고양이 열 마리가 좁아지는 경기장에 들어가 연어 떼를 초밥으로 바꾸고, 그 초밥으로 커지며, 마지막 한 마리가 될 때까지 싸우는 게임입니다. 뱀파이어 서바이버류의 자동 공격·카드 성장에 배틀로얄의 축소 구역과 고양이끼리의 직접 대결을 섞었습니다. 한 판은 3~4분 정도이고, 브라우저에서 설치 없이 바로 시작합니다.
조작은 이동 하나뿐입니다. PC에서는 마우스 왼쪽 버튼을 꾹 누른 채 가고 싶은 쪽을 가리키거나 WASD 키로 움직입니다. 휴대폰에서는 화면 아무 곳이나 손가락을 대고 끌면 그 자리에 조이스틱이 생깁니다. 가로·세로 화면을 모두 지원합니다. 공격은 가장 가까운 적을 향해 자동으로 나가므로, 플레이어가 고민할 것은 어디에 서 있을지입니다.
일시정지는 P 키나 화면의 일시정지 버튼으로 합니다. 경기에 사람이 다 차지 않으면 빈자리는 봇이 채우고, 봇은 이름 옆에 "(봇)"으로 표시됩니다. 봇 지능은 10단계로 나뉘어 있어 한 방 안에 약한 봇과 강한 봇이 섞입니다. 처음 세 판은 약한 봇 위주로 배정되고, 이 세 판에서는 경기 시작 후 90초 동안 봇이 신규 이용자를 공격하지 않습니다.
처음 접속하면 매칭을 기다리는 동안 워밍업 공간에서 바로 고양이를 움직일 수 있습니다. "이동 → 초밥 먹기 → 마지막 고양이 되기" 세 단계 안내가 한 번 나오고, 끝내거나 건너뛰면 다음 방문부터는 생략됩니다. 규칙을 더 자세히 알고 싶다면 초보 가이드에 생존 요령과 카드 고르는 법을 정리해 두었습니다.
기본 고양이, 모찌, 닌자, 요리사, 낚시꾼, 스모, 마법사, 로봇, 해적, 우주비행사, 사무라이, 무녀, 잠수부, 초밥 장인, 너구리, 디제이까지 16종의 고양이가 있습니다. 캐릭터마다 시작 무기와 작은 능력치 차이가 있습니다. 예를 들어 해적 고양이는 연어알포와 피해 +4%, 스모 고양이는 주먹밥 발구르기와 체력 +6%로 시작합니다. 기본 고양이 외에는 경기에서 버는 초밥 코인으로 해금하며, 후반 여덟 종은 랭크나 업적 개수 조건이 함께 붙습니다.

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

같은 품종 고양이 열 마리가 한 경기에 모여도 헷갈리지 않도록, 각자의 식별 색은 털이 아니라 이름표·발밑 고리·미니맵 점으로 표시합니다. 캐릭터와 털 이야기는 캐릭터 16종과 품종 털 꾸미기에 따로 적었습니다.
마법 지팡이, 부메랑 도끼, 레이저, 블랙홀 같은 서바이버류의 익숙한 무기에 와사비 박격포, 김 수리검, 튀김 드릴, 성게 지뢰 같은 초밥 가게 무기를 더해 모두 24종입니다. 모든 무기에 진화형이 있어서, 예를 들어 와사비 박격포는 오래 남는 와사비 정원으로, 마법 지팡이는 성스러운 지팡이로 바뀝니다.






모든 스크린샷은 실제 게임 화면을 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 0.22.1에 넣은 자동 다음 경기 기록. 첫 결과 8초, 그 뒤 6초 카운트다운을 붙이고, 입력·탭 숨김·광고·10초 자리 비움·무입력 두 판일 때 멈추게 한 이유와 검증 과정을 정리했다.
· 7분 읽기
Salmonholic 0.22.0에서 모든 사람에게 첫 60초 보호를 넣었다가 숙련자의 90초 생존이 떨어졌다. 공격 금지 규칙이 봇의 시야까지 지운 원인을 같은 60시드 540판으로 찾아 고친 기록이다.
· 7분 읽기
작은 버퍼에 그린 뒤 통째로 늘리던 Salmonholic 렌더링을 창 해상도로 직접 그리게 바꾼 기록. 무제한 고해상도를 버린 이유와 해상도 상한, 같은 전투 프레임으로 비교한 전후 수치를 정리했다.
· 7분 읽기
기기마다 성능이 다른 브라우저 게임에서, 실제 프레임 시간을 보고 입자·소리·화면 흔들림만 자동으로 줄이는 적응형 품질을 넣은 기록. 전투 로직은 건드리지 않아 리플레이 검증은 그대로 통과한다.
· 5분 읽기
Salmonholic 새 플레이어를 생존 모드로 먼저 보내는 A/B 실험을 이틀 돌렸다. 모바일만 무너진 이유를 난이도에서 찾다가, 이탈 기록을 다시 보고 첫 판 5~22초 멈춤을 찾아 고친 기록.
· 6분 읽기
10인 배틀로얄 게임에 혼자 15분 버티는 생존 모드를 붙였다. 기존 캐릭터·무기를 그대로 쓰고, 자동 주행 20판의 생존 시간 중앙값을 목표 8~12분 안으로 넣은 과정과 공개 순서를 정리했다.
· 6분 읽기