Dogkov Arena 소개
게임
Dogkov Arena는 1996년 Quake와 1999년 Quake 3 Arena의 정수를 2D 탑다운으로 재해석한 빠른 템포의 멀티플레이 데스매치 슈터입니다. 브라우저에서 설치 없이 실행되고, 회사 LAN에서 동료들과 룸을 만들어 5분 한 라운드 빠르게 즐길 수 있도록 설계됐습니다.
설계 원칙
- 설치 없음 — 브라우저 한 탭이면 끝
- 학습 곡선 5분 — WASD + 마우스 + 1~9 무기 키. 그 외 없음
- 한 매치 5분 — 점심시간 한 라운드, 또는 회의 직전 두 판
- 호스트 = 서버 — 누군가
npm start또는 fly.dev 사이트 띄우면 다른 동료들은 URL로 접속 - 전면 코드 처리 — 에디터·메뉴 설정 없이 모든 게임 데이터/로직이 소스에 있음
핵심 기능
- 9종 무기 — 건틀릿, MG, 샷건, 유탄, 로켓, 라이트닝, 레일건, 플라즈마, BFG10K
- 호스트-권한 시뮬레이션 — 60Hz 서버 tick, 50ms 클라 보간, 본인 회전 client-side prediction
- FOV 시야 시스템 — 90° 시야 원뿔 + 벽 raycasting 안개 (120 rays)
- 봇 AI — 거리별 무기 선택, 시야 LoS 추적, 회피 무빙
- 룸 시스템 — 비밀번호, 방장이 봇 추가, 매치 종료 후 대기실 복귀
- 파워업 — Quad Damage(4배), Haste(이속·연사↑), 메가헬스, 옐로우 아머
- 맵 픽업 — 무기 12개, 탄약 12개, 체력 5개, 아머 3개, 파워업 2개 (각자 리스폰 타이머)
기술 스택
- 프론트엔드 — HTML5 Canvas, Vanilla JS (CommonJS 모듈, esbuild 번들링)
- 백엔드 — Node.js 20+, Express, Socket.io
- 배포 — Fly.io (도쿄 리전, 1GB · 1vCPU). LAN 호스팅은
npm start - 통신 — WebSocket / Long-polling fallback (Socket.io)
- 오디오 — Web Audio API 합성 (별도 .wav 파일 없음)
코드 구조
src/
├── shared/ # 호스트·클라 공통 (CommonJS)
│ ├── constants.js, weapons.js, map.js, geom.js
├── host/ # Node 측 시뮬레이션
│ ├── sim.js, bots.js, room.js
└── client/ # 브라우저 측 (esbuild로 번들)
├── main.js, net.js, input.js, render.js, effects.js, ui.js, audio.js
server.js # 시그널링 + 정적 파일 서빙
개발자
- 개발자: 정우균
- 위치: 대한민국
- 연락: kopome@gmail.com
저작권
© 2026 Dogkov Arena. 본 사이트의 모든 콘텐츠(소스 코드, 그래픽, 사운드, 디자인 등)의 저작권은 개발자에게 있습니다. Quake / Quake 3 Arena는 id Software의 상표이며, 본 프로젝트는 동 게임에서 영감을 받은 독립 프로젝트입니다.