본문으로 건너뛰기

ADR: Base Viewport 640×360 채택

항목내용
날짜2026-04-02
상태제안 (approved 대기)
작성Designer
관련 태스크TASK #3 (해상도 조정)

컨텍스트

현재 viewport가 1920×1080으로 설정되어 있어, 픽셀아트 캐릭터/몬스터가 매우 작게 보인다. 뱀서라이크 장르의 핵심 경험인 "밀집된 적 무리 속 서바이벌"이 희석되고, 32×32px 스프라이트가 화면에서 점처럼 보이는 문제.

선택지

옵션viewport스케일장점단점
A640×3603x → 1920×1080업계 표준, 정수 스케일링, 캐릭터 3배 확대UI 좌표 전체 재계산 필요
B960×5402x → 1920×1080더 넓은 시야캐릭터 여전히 작음, VS와 차별 없음
C480×2704x → 1920×1080매우 큰 캐릭터시야 너무 좁음, 뱀서라이크 부적합

결정

옵션 A: 640×360 채택.

근거

1. 업계 표준

게임base viewportstretch비고
Vampire Survivors640×360viewport장르 정의 게임
Brotato640×360viewport상업적 성공
HoloCure640×360viewport인디 히트
Soulstone Survivors640×360viewport

640×360은 뱀서라이크 장르의 사실상 표준.

2. 정수 스케일링

640 × 3 = 1920, 360 × 3 = 1080 → 완벽한 정수 배율. 픽셀아트의 선명함이 보장됨. 서브픽셀 블러 없음.

3. 체감 변화

항목현재 (1920×1080)변경 후 (640×360)
32×32 캐릭터 크기화면 1.7%화면 5% (3배)
적 가시성점처럼 보임명확하게 보임
전투 밀도 체감희소밀집
화면 내 최대 적 수분산집중

영향 범위

project.godot 변경

viewport_width=640
viewport_height=360
window_width_override=1920
window_height_override=1080
stretch/mode="viewport"
stretch/aspect="keep"

window_width_override는 1920 유지 (실제 창 크기). viewport만 640×360으로 변경.

UI 좌표 재계산

docs/design/ui-ux/screen-designs.md모든 픽셀 좌표/크기를 1/3로 변환 필요.

HUD 요소현재변경 후
HP 바 위치(32, 32)(11, 11)
HP 바 크기240×12px80×4px
XP 바 크기1920×6px640×2px
영혼 아이콘(32, 56) 48×48px(11, 19) 16×16px
무기 슬롯(32, 880) 56×56px(11, 293) 19×19px
음양 게이지(860, 1040) 200×16px(287, 347) 67×5px
보스 HP 바(460, 1010) 1000×14px(153, 337) 333×5px
캐릭터 카드280×400px93×133px
저주 카드320×200px107×67px
폰트: H2 36px36px12px
폰트: H3 24px24px8px
폰트: Body 18px18px6px

업데이트 필요한 문서/파일

파일변경 내용
game/project.godotviewport 640×360
docs/design/ui-ux/screen-designs.md모든 좌표/크기 1/3 재계산
docs/design/ui-ux/design-system.md폰트 크기, 컴포넌트 크기 재계산
game/src/ui/*.gdUI 코드 내 하드코딩된 좌표 (있을 경우)
game/src/pickups/*.gdMAGNET_RANGE, 시각적 크기 등 조정
game/src/enemies/spawn_manager.gd스폰 반경 (화면 기준)
game/src/systems/game_world.gd카메라/월드 바운드

코드 영향 분석

game/src/ 내 하드코딩된 좌표가 viewport 의존적인 경우 수정 필요:

  • xp_gem.gd: MAGNET_RANGE 50 → viewport 비례값으로 유지 (게임 월드 좌표이므로 변경 불필요할 가능성)
  • equipment_drop.gd: AUTO_PICKUP_RADIUS 64 → 동일
  • UI 스크립트: _draw() 내 하드코딩 좌표 → 확인 필요

중요: 게임 월드 좌표와 UI 좌표를 구분해야 함. 월드 좌표는 viewport 변경에 비례 축소되므로, 기존 50px 자석 범위는 시각적으로 3배 넓어진 효과.


변경 이력

날짜버전변경 내용
2026-04-02v1.0초기 작성: 640×360 viewport 채택 제안