프로젝트 실행¶
브라우저에서 바로 플레이¶
SFH Web 빌드 바로 실행을 열면 Godot 설치 없이 현재 main 기준 프로토타입을 플레이할 수 있습니다. 데스크톱 Chrome·Edge·Whale 등 최신 Chromium 브라우저와 키보드, 1280×720 이상의 화면을 권장합니다.
Windows x86_64¶
Windows 빌드 작업의 최신 성공 실행에서 SFH-Windows-x64-v0.1.0 산출물을 받습니다. ZIP에는 SFH.exe, SFH.pck, 라이선스 원문과 BUILD-METADATA.json이 들어 있으며 같은 산출물에 .zip.sha256 체크섬이 제공됩니다.
메타데이터에는 빌드 커밋, Godot 4.7.2, CSV 데이터 버전과 Weapon·런 버프·업그레이드 CSV별 SHA-256이 기록됩니다. Cloudflare R2 검증이 끝날 때까지 이 Actions 산출물이 기준 원본이며, 이후에도 R2에는 검증을 통과한 동일 파일만 업로드합니다.
Cloudflare 병렬 배포¶
무중단 전환 동안 GitHub Pages와 Cloudflare를 함께 유지합니다. 공개 위키 주소는 https://sfh-dev-wiki.pages.dev/, 게임 후보 주소는 계정 고유 workers.dev 하위의 https://sfh-game.vstock-market.workers.dev/입니다. Windows 다운로드는 같은 게임 게이트웨이의 /downloads/v0.1.0/ 아래에 둡니다.
CI는 Web·Windows·위키를 다시 만들지 않고 앞 단계에서 검증해 업로드한 GitHub Actions 산출물만 내려받습니다. Web 파일은 R2의 game/releases/<commit>/ 불변 경로에 먼저 저장하고 마지막에 Worker의 활성 커밋만 바꿉니다. 위키는 게임 대용량 파일을 제외해 Pages Direct Upload 제한을 지키며 /play/ 요청은 게임 Worker로 넘깁니다. 위키·게임·WASM Range·ZIP SHA-256 E2E가 모두 성공하기 전에는 README와 기본 링크를 Cloudflare로 전환하지 않습니다.
Web 빌드는 게임 코드와 문서가 main에 반영될 때 GitHub Actions가 자동 생성해 개발 위키의 /play/ 경로에 결합합니다. 게임 내보내기, 위키 빌드, 필수 HTML·WASM·PCK 검증 중 하나라도 실패하면 Pages 배포를 중단하므로 README의 플레이 버튼은 마지막으로 검증된 빌드를 유지합니다. 한글 UI는 프로젝트에 포함된 OFL 1.1 Nanum Gothic 전역 폰트를 사용해 운영체제 폰트에 의존하지 않습니다.
무기, 내부 성장, 장비 강화의 확정 CSV도 Web PCK에 명시적으로 포함합니다. 브라우저 런타임이 비-Resource CSV 스트림을 제공하지 못하는 환경에서는 원본과 함께 자동 생성한 EmbeddedCsvPayload를 읽습니다. 동기화 스크립트와 스모크 테스트가 세 CSV와 내장 미러의 완전 일치, 원본 경로, 내보내기 포함 계약을 함께 검사하므로 데이터가 빠지거나 어긋나면 작전 조립 전에 빌드를 차단합니다.
위키 홈의 현재 빌드 카드와 모든 문서 상단 고정 헤더의 브라우저로 플레이 버튼은 같은 /play/ 빌드를 엽니다. GitHub Pages에서는 결합된 게임을, Cloudflare Pages에서는 _redirects를 통해 별도 게임 Worker를 열므로 문서를 읽는 중에도 홈으로 돌아갈 필요가 없습니다.
브라우저 빌드는 개발 프로토타입입니다. 최초 로딩 시간이 필요하고 밸런스와 로컬 저장 데이터 호환성은 개발 중 변경될 수 있습니다.
Godot에서 로컬 실행¶
- Godot에서
project.godot을 가져옵니다. - 우측 상단의 프로젝트 실행 버튼을 누르거나
F5를 누릅니다. - 큰 단일 방의 시작 거점에서
WASD로 동쪽 작전 게이트까지 이동하고F를 누릅니다. - 세션 구성 화면에서 지역·난이도·페널티, 상점·제작·소모품과
확정 CSV/실시간 테스트를 확인합니다. - 소형·중형·대형을 누르면 표시된 영구 크레딧과 장착 소모품이 실제 차감되고 작전에 진입합니다.
- 작전에서는 기본
Space로 회피하고Q로 무기를 교체하며,I로 가방,U로 장비·개조 화면을 확인합니다.K에서 모든 조작을 바꿀 수 있습니다. - 작전 중
1점멸,2원형 자기장,3기동 가속을 사용하고 하단 HUD에서 쿨타임을 확인합니다. - 신호가 열린 뒤 탈출 지점에서
F를 누르고 15~35초 동안 구역을 지킵니다. 성공 정산과 조건 랭크 확인 후 거점으로 복귀합니다.
성공 기준¶
- 창 크기는 기본적으로 1280×720입니다.
- 데스크톱과 Web 빌드 모두 한글 UI가 네모 글리프 없이 표시됩니다.
- 시작 시 1800×1040px 단일 방의 안전 거점과 동쪽 작전 게이트가 표시됩니다.
- 상단 HUD에 체력, 경험치, 생존 시간, 레벨, 처치 수가 표시됩니다.
- 하단 중앙 HUD에 세 전투 스킬의 키·설명·남은 쿨타임이 표시됩니다.
- 플레이어가 대각선을 포함한 8방향으로 가속·제동하며 Action 기반 회피를 사용하고, K 변경값이 즉시 반영됩니다.
- 카메라가 플레이어를 부드럽게 따라갑니다.
- 적이 플레이어 주변에서 생성되어 추적합니다.
- 무기가 가장 가까운 적에게 자동으로 발사됩니다.
- Q 키로 돌격소총 3점사와 권총 고위력 관통을 교체할 수 있습니다.
- 작전 시작 전에 확정 CSV와 Google Sheet 실시간 테스트 모드를 버튼으로 선택할 수 있습니다.
- 영구 크레딧, 지역·난이도·페널티, 상점·창고·소모품·도면 제작 상태가 작전 화면에 표시됩니다.
- 자동 공격은 거리·남은 체력·우선 등급·밀집도를 합성해 대상을 선택합니다.
- 적 처치 후 경험치 결정이 생성됩니다.
- 32px 타일로 소형 18~24방, 중형 30~40방, 대형 45~60방이 생성되며 가장 작은 방도 화면 한 장보다 큽니다.
- 얇은 벽과 갈색 충돌 방해물이 표시됩니다.
- 방해물이 출입구 있는 긴 실내 칸막이, 넓은 설비 블록과 다중 기둥 형태로 표시됩니다.
- 적 머리 위에 빨간 체력과 파란 방어력 막대가 표시됩니다.
- 방에서는 현재 방 전체를 보고 통로에서는 정면 원뿔 시야만 보이지만, 미니맵은 전체 지형을 유지합니다.
- 벽면 금고·자재함·회수 단말기에서
F로 자원을 한 번만 회수할 수 있습니다. - 획득한 크레딧이 상단 HUD에 표시됩니다.
- I 키로 서로 다른 크기의 아이템 패널이 있는 격자 가방이 열립니다.
- U 키로 전체 화면 장비 관리가 열리고 왼쪽 메인·보조·신체·신발 슬롯을 전환할 수 있습니다.
- 장비 장착 탭에서 가방 장비 카드를 직접 고르고, 모듈·파츠 탭에서 장착 슬롯·코스트 막대·필터·강화 비용을 확인할 수 있습니다.
- 상단 HUD에 맵 등급과 방 수가 표시됩니다.
- 초록 원은 시작점이며 탈출 지점은 잠금 중 회색, 신호 개방 후 주황색입니다.
- 피격 후 4초 동안 피해를 받지 않으면 최대 체력 65%까지 일부 회복합니다.
- 탈출 범위에서 F를 누르면 카운트다운 방어전이 시작되고 구역 유지에 성공하면 영구 결과 정산 화면이 표시됩니다.
자동 스모크 테스트¶
시작 거점, 작전 게이트, 전투 세션 진입·복귀, 화면 크기 방, 전장의 안개, 미니맵, 자원 회수와 기존 전투·장비·성장 기능이 정상이라면 SMOKE_TEST_OK가 표시됩니다.
자동 성능 예산 테스트¶
대형 작전의 프레임 시간, Node 수, 충돌체 압축률과 동시 전기 이펙트 수가 예산 안이면 PERFORMANCE_BUDGET_OK가 표시됩니다. 이 테스트는 개발 PC의 CPU 회귀 검사용이며 실제 최소 사양은 최소·권장 사양과 성능 예산의 실기 절차로 별도 인증합니다.
실행되지 않을 때¶
문제 해결의 프로젝트가 실행되지 않음 항목을 확인합니다.
검색 별칭¶
게임 켜기, 바로 플레이, 웹 게임, 브라우저 빌드, HTML5, WebAssembly, GitHub Pages, 실행 버튼, F5, 테스트 실행, I키, U키, 인벤토리 열기, 장비창 열기