Claude Code를 사용하여 어린 시절 즐겼던 1989년 DOS 게임을 상대성 이론 시뮬레이션으로 변신시키다
요약
1989년 DOS 게임 'Gravity Wars'를 상대성 이론 시뮬레이션으로 리메이크한 프로젝트입니다. 이 과정에서 코드의 대부분을 Claude Code가 작성했으며, 순수 JavaScript와 WebGL 셰이더 등을 활용하여 복잡한 물리 현상(시간 지연, 렌즈 효과 등)을 구현했습니다. 개발 워크플로우는 여러 세션을 거쳐 진행되었으며, Playwright, Cloudflare Worker 등을 이용해 테스트 및 버그 보고 시스템까지 구축했습니다.
핵심 포인트
- Claude Code를 활용하여 복잡한 물리 시뮬레이션 게임을 개발함.
- 순수 JavaScript와 WebGL 셰이더로 고성능의 웹 기반 게임 구현.
- Playwright, Cloudflare Worker 등을 이용해 체계적인 테스트 및 버그 보고 시스템 구축.
- 모든 장치에서 동일하게 작동하는 오프라인/저사양 최적화에 중점을 둠.
이전에 올렸던 내용을 다시 게시합니다. 비디오가 작동하지 않았기 때문입니다. 플레이해 보세요: gravwars.com (무료, 계정 필요 없음, 휴대폰 또는 컴퓨터). Gravity Wars는 곡선 시공간에서 진행되는 2인용 포병 게임입니다. 플레이어들은 행성, 별, 블랙홀을 지나 미사일을 발사하는 차례를 번갈아 가며 가지며, 중력이 모든 사격에 영향을 줍니다. 이 게임은 Sohrab Ismail-Beigi가 만든 퍼블릭 도메인의 1989년 DOS 게임 리메이크로 시작하여 작은 상대성 이론 시뮬레이션으로 발전했습니다: 블랙홀 근처에서는 궤도가 세차 운동을 하고, 블랙홀은 렌즈 효과와 함께 레이 트레이싱되며, 미사일은 시간 지연(time dilation)을 느낍니다. 코드의 거의 모든 부분은 Claude Code가 작성했으며, 저는 게임 플레이, 테스트, 그리고 다음에 무엇을 만들지 결정하는 역할을 했습니다.
어떻게 구축했나: Claude Code를 데스크톱 앱에서 여러 세션에 걸쳐 작업했습니다. 저장소(repo)에는 로드맵 폴더와 CLAUDE.md 파일이 계획과 규칙을 담고 있어, 매번 새로운 세션은 이전 세션이 멈춘 곳부터 이어서 진행됩니다. 순수 JavaScript로 작성되었습니다. 프레임워크나 npm 패키지, 빌드 단계가 없습니다. 작은 Python 스크립트가 게임을 하나의 HTML 파일로 묶어줍니다. WebGL 셰이더는 우주를 그리고 블랙홀을 레이 트레이싱하며, Canvas 2D는 우주선, 흔적(trails), 계기판(readouts)을 그립니다. 그리고 Web Audio API는 물리 현상으로부터 음악을 생성합니다.
테스트: 모든 커밋 전에 Node 스크립트가 물리학(에너지 보존, 궤도 세차 운동, CPU 정확도)을 확인합니다. Playwright는 헤드리스 Chrome과 Firefox에서 모든 변경 사항의 스크린샷을 찍습니다. 안드로이드 에뮬레이터는 휴대폰 레이아웃을 커버합니다.
호스팅: Cloudflare Pages에 정적 파일을 호스팅했습니다. 트레일러는 Playwright와 ffmpeg를 사용하여 게임 자체에서 프레임별로 렌더링되었습니다.
버그 보고: 게임 내의 ! 버튼은 보고서를 Cloudflare Worker로 보내고, 이 워커가 이를 비공개 GitHub 저장소에 이슈로 등록합니다 (스팸 방지를 위해 Cloudflare Turnstile 및 속도 제한 사용). Claude가 읽고 분류(triage)합니다.
디자인 선택: 의존성이 없습니다. 게임은 파일에서 바로 열리며 업데이트하거나 감사할 것이 아무것도 없습니다. 두 가지 뷰, 하나의 물리학을 가집니다. 클래식 모드는 평면적인 2D이며, '3D 라이트'는 공간을 중력의 고무 시트 그림으로 기울입니다. 미사일은 두 경우 모두 동일한 방정식으로 비행합니다. 어디서든 같은 우주를 공유합니다.
세상은 고정된 16:9 필드이며 모든 우주는 씨앗에서 비롯되므로, 링크는 어떤 장치에서도 정확히 동일한 레이아웃을 재구축합니다. 휴대폰은 최우선 순위입니다. 옆으로 플레이 가능하고, 설치 가능하며, 오프라인에서 작동하고, 앱 전환 후에도 재개되며, 성능이 낮은 GPU에서는 그래픽을 낮춥니다. CPU 상대는 공식으로 속이는 대신 자체적으로 사격 횟수를 시뮬레이션합니다. 기본적으로 비공개입니다. 계정 없음, 추적 없음, 광고 없음. 제가 여러분께 바라는 것은 몇 라운드를 CPU 또는 친구와 플레이하는 것입니다. Chrome, Firefox 또는 Edge에서 가장 좋습니다. Safari 및 iPhone은 테스트되지 않았으므로, 해당 기기에서의 보고가 특히 환영받습니다. 무언가가 작동하지 않거나 혼란스럽다면, !를 누르고 무슨 일이 일어났는지 말한 다음 전송을 누르세요. 그러면 장치와 경기 세부 정보가 자동으로 추가됩니다. 워크플로우에 대한 질문에 답변드리게 되어 기쁩니다. 제출자: /u/gmccolgan3 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기