Navy Combat
Navy Combat은 웹 브라우저에서 그대로 돌아가는 해상 전투 게임입니다. 다운로드도, 플러그인도, 설치도 필요 없습니다. Three.js와 TypeScript로 만들었고, 목표는 하나입니다 — 함포 사격이 실제로 중요했던 이유를 느끼게 하는 것.
배가 나오는 브라우저 게임 대부분은 체력 바가 달린 아케이드 슈터입니다. 이 게임은 실제 해전의 승패를 갈랐던 요소들을 시뮬레이션합니다.
렌더러는 Three.js이며, 직접 작성한 Gerstner 파도 해면 셰이더와 절차적으로 생성되는 함선 모델, 물리 기반에 가까운 조명·후처리 체인을 씁니다. 내려받는 아트 리소스가 하나도 없습니다 — 모든 선체는 코드로 생성된 지오메트리이고, 모든 소리는 Web Audio API로 실시간 합성됩니다.
시뮬레이션은 60 Hz 고정 스텝으로 돌아가며 완전히 결정론적입니다. 이것이 lockstep 멀티플레이가 가능한 이유입니다 — 두 플레이어가 같은 입력으로 같은 시뮬레이션을 돌리고, 서로의 세계가 여전히 일치하는지 계속 검증합니다. 결정성 요구가 엄격해서 시뮬레이션은 시스템 시계를 읽을 수도, 일반 난수 생성기를 쓸 수도, 심지어 브라우저 내장 삼각함수를 호출할 수도 없습니다. 브라우저 엔진마다 반올림이 다르고, 그 차이만으로도 두 클라이언트가 어긋나기 때문입니다.
백엔드는 Cloudflare Worker로 매치메이킹 중계, 랭크 래더, 선택적 클라우드 저장을 처리합니다. 나머지는 전부 사용자 기기에서 돌아갑니다.
게임은 무료입니다. 광고로 운영되며, 선택 구매인 풀 에디션은 위장도색, 항공모함 함선, 성장 가속을 제공합니다. 경쟁 랭크전은 모든 보너스를 끈 기본 사양 함선으로만 진행되므로, 결제가 전투 우위를 사는 일은 없습니다. 자세한 내용은 이용약관을 참고하세요.
버그 제보, 밸런스 항의, 기능 제안 모두 환영합니다. ooohbest1@gmail.com로 보내주세요. 버그 제보라면 어떤 함선으로 어떤 모드를 플레이 중이었는지 함께 적어주시면 큰 도움이 됩니다.