웹 브라우저 기술이 고도화되면서 별도의 무거운 클라이언트 설치 없이 브라우저 URL 접속만으로 쾌적한 3D 멀티플레이 게임을 즐길 수 있는 환경이 열리고 있습니다.
Pastel Nuketown(luckeyfaraday/pastel-nuketown)은 콜 오브 듀티(Call of Duty)의 전설적인 맵 ‘Nuketown’을 아기자기한 파스텔톤 로우폴리 3D 그래픽으로 구현하고, Three.js와 Node.js WebSocket을 결합해 완벽한 싱글 및 실시간 멀티플레이 FPS 시스템을 구축한 오픈소스 프로젝트입니다.
Sources
1. Pastel Nuketown 기술 아키텍처
flowchart TD
classDef clientNode fill:#c5dcef,stroke:#2b6cb0,stroke-width:1.5px,color:#333;
classDef engineNode fill:#e0c8ef,stroke:#6b46c1,stroke-width:1.5px,color:#333;
classDef netNode fill:#fde8c0,stroke:#d69e2e,stroke-width:1.5px,color:#333;
classDef outNode fill:#c0ecd3,stroke:#38a169,stroke-width:1.5px,color:#333;
Browser["웹 브라우저 클라이언트"] --> Three["Three.js 3D 렌더링 엔진
(파스텔톤 맵 & 무기 애니메이션)"]
Browser <--> WS["WebSocket 실시간 동기화
(플레이어 위치, 탄도, 킬피드)"]
WS <--> Server["Node.js 백엔드 서버
(게임 세션 & 룸 매니저)"]
Three --> Game["완전한 웹 FPS 게임플레이
(헤드샷, 리스폰, 킬캠, 스코어보드)"]
class Browser clientNode;
class Three engineNode;
class WS,Server netNode;
class Game outNode;2. 주요 핵심 구현 기능
- 실시간 멀티플레이 & 싱글플레이 모드 지원:
- Node.js WebSocket 서버를 통해 다수의 플레이어가 동일한 룸에 접속하여 지연 없이 동기화된 총격전을 즐길 수 있습니다.
- 정교한 무기 및 타격 시스템:
- SMG(기관단총), 샷건(산탄총), 라이플(소총) 3대 무기군이 구현되어 있으며, 탄도학, 무기 반동, 재장전(Reload) 애니메이션, 헤드샷 판정을 완벽히 지원합니다.
- 완전한 FPS 인게임 이벤트 시스템:
- 실시간 킬피드(Kill Feed), 킬캠(Killcam), 점수판(Scoreboard), 플레이어 사망 후 리스폰 메커니즘 등 상용 FPS의 필수 요소가 모두 갖춰져 있습니다.
3. 웹 3D 개발 레퍼런스로서의 가치
- Three.js 씬 최적화: 로우폴리 파스텔톤 에셋을 활용해 웹 브라우저에서도 높은 프레임률(FPS)을 유지하는 렌더링 최적화 레퍼런스를 제공합니다.
- 클라이언트-서버 상태 동기화: 고속으로 움직이는 플레이어의 좌표 및 타격 판정을 WebSocket으로 가볍게 처리하는 네트워킹 아키텍처를 학습하기에 적합합니다.