Zero — 지금 이 레포 (인간용)
에이전트는 AGENTS.md를 읽는다. 사람은 이 파일만 먼저 연다.
구조·이름·역할이 바뀌면 에이전트는 같은 턴에 이 표를 고친다 (GATES.md G8).
아이템/적/방/참 목록은 여기에 없다. 그건 아래 §4 파일을 연다.
1. 지금 플레이
| URL | /games/zero/ (하드 리프레시) |
| 현황 페이지 | /games/zero/status.html (허브 Zero 카드 현황) |
| 빌드 번호 | 타이틀의 Build N. 숫자의 SSOT는 scripts/catalog/GameInfo.gd |
| Godot GUI | 없음. 맵은 게임 안 F1, 아트 F2, 엔티티 F3/F4 |
| 엔진 | Godot 4.7.2, 화면 640×360, 2.5D (CharacterBody3D) |
화면에 보이는 방·적·이름·아트는 플레이스홀더. 본편이 아니다.
2. 한 줄로
엔진 + 인게임 에디터 + 플레이 가능한 메트로바니아.
최종 상용 타깃은 PC, 콘솔, 모바일 출시를 지향하며, 웹 빌드(/games/zero/)는 개발 편의성과 즉각적인 플레이 검증을 위한 개발용 런타임이다. 모든 인게임 에디터(F1~F4)는 웹 개발 환경에서만 고려·동작한다.
룸 테이블(MegaWorldBuilder)은 과거 74개 더미 룸을 정리하고 0에서 시작하는 7개 프롤로그 룸(시작의 숲 1막)으로 재구성되었다.
폴더는 셋이다. 합치지 않는다.
| 폴더 | 하는 일 |
|---|---|
framework/ | 게임 이름 없는 엔진 조각 (Fw*). 씬 트리 금지 |
game/ | 물리 액터, 서비스, 모터, HUD |
scripts/ | 카탈로그, 룸 테이블, F1 에디터, 오토로드 파사드 |
도구는 각자 자기 일만
에디터는 만들고, 트리는 갖고, 파이프라인은 굽고, NAS는 보여 준다.
| 누가 | 하는 일 |
|---|---|
| 이 레포 | 게임 + 에셋 문 (tools/asset_put.py). 설치·프로토콜·삭제 |
| 인게임 F1/F2/F3 | 돌아가는 빌드 위 오버레이 |
| ZeroEditor | 시트/픽셀/SDF. 이 레포 PUT에 접속만 (또는 데스크톱으로 이 트리에 씀) |
| git 작업 트리 | 빌드에 들어갈 유일한 원본 |
turn_pipeline.py | 테스트·pck·/games/zero/ 출판. PUT 서버를 켜지 않음 |
| DiskStation | 마지막 익스포트 정적 호스팅 |
| Firebat | 이 레포가 사는 PC. Windows가 Zero 대신 PUT을 상주 |
웹 ZeroEditor는 도구 미리보기. Zero 트리에 넣으려면 이 레포가 연 PUT(http://firebat:8787)에 파일을 보낸다. AtlasLab / PixelArtLab 은 옛 이름.
씬 파일(scenes/)은 껍데기. 방과 엔티티는 코드가 스폰한다.
3. 지금 유통되는 코드 이름
콘텐츠 id가 아니다. 클래스·오토로드·그룹·레거시 경로만.
오토로드 (project.godot)
| 이름 | 역할 | 파일 |
|---|---|---|
GameState | 세션 창구 (세이브, 인벤, 플래그, 입력, 씬). 만능 신 아님 | scripts/GameState.gd |
Combat | 공격 쿨다운·히트박스 | scripts/Combat.gd |
Audio | 음악/효과음. 룸 → 존 | game/presentation/audio/Audio.gd |
Fx | 타격 연출 | game/presentation/vfx/Fx.gd |
GameUi | 대화, 일시정지, 상점. 입력을 막을 때 is_blocking() | game/presentation/ui/GameUi.gd |
HUD | 오토로드 아님. 체력·재화·툴바 | game/presentation/ui/HUD.gd |
월드에 나오는 종류
| 이름 | 역할 | 파일 |
|---|---|---|
Being | 움직이는 주체 (플레이어, 적) | game/adapters/actors/Being.gd |
Thing | 조사·픽업 대상 | game/adapters/actors/Thing.gd |
Surface | 바닥·벽 | game/adapters/world/Surface.gd |
SpatialVolume | 물·가시 같은 공간 | game/adapters/world/SpatialVolume.gd |
Character | 플레이어 조작 | game/adapters/actors/Character.gd |
World | 지금 방 돌리기 | scripts/World.gd |
MegaWorldBuilder | 방 목록 (더미) | scripts/world/MegaWorldBuilder.gd |
LiveMapEditor | F1 맵 | scripts/LiveMapEditor.gd |
LiveArtEditor | F2 그림 | scripts/LiveArtEditor.gd |
LiveEntityEditor | F3 엔티티 튜닝 | scripts/editor/LiveEntityEditor.gd |
LiveAssetPicker | 리소스 선택기 (비주얼 텍스처/에셋 브라우저) | scripts/editor/LiveAssetPicker.gd |
UiFonts | 글꼴. Fonts.gd를 이 이름으로 불러옴 | game/presentation/ui/Fonts.gd |
FwPhysicsLayers | 충돌 레이어 이름 | framework/FwPhysicsLayers.gd |
FwWebStore | 브라우저 저장 | framework/FwWebStore.gd |
InputConfig | 키 배치. project.godot 입력맵은 비움 | game/application/input/InputConfig.gd |
AppNodes | 오토로드 찾기 | game/adapters/runtime/AppNodes.gd |
Plat | 칸 크기·점프 높이 숫자. 파일명이 애매함 → 나중에 LayoutGrid | game/domain/world/Plat.gd |
그룹 (코드가 서로를 찾을 때)
| 그룹 | 누구 |
|---|---|
"entities" / "entity" | 기둥+볼륨 전부 (둘 다 붙음) |
"being" / "beings" / "actors" | Being |
"things" / "interactable" | Thing |
"surface" | Surface |
"spatial_volume" | 볼륨 |
"player" | 플레이어 |
"enemies" / "boss" | 적 / 보스 |
"ui_modal" | 열린 메뉴 (이동 막힘) |
"world_host" | World |
쓰지 말 것: "pawn", "metro_modal", "interact" (지금은 "things").
예전 이름 (metro) — 저장 경로만
| 문자열 | 역할 |
|---|---|
assets/ui/metro_theme.tres | UI 테마 파일 |
user://metro_save.json | 세이브 파일 (옛 경로, 그대로 읽음) |
metro_rooms_v* | 맵 JSON 키 (옛 키, 그대로 읽음) |
user://metro_settings.cfg | 설정 파일. 웹 키는 zero_settings_v1 |
새 코드에 metro_ 이름을 만들지 않는다.
4. 콘텐츠 이름은 여기 없음
방 id, 아이템, 적, 참, 키 배치는 파일을 연다. 이 문서에 목록을 베끼지 않는다.
| 알고 싶은 것 | 파일 |
|---|---|
| 지금 빌드 문구 | scripts/catalog/GameInfo.gd |
| 키/패드 | game/application/input/InputConfig.gd |
| 방 id·시작점 | scripts/world/RoomCatalog.gd |
| 방 배치 (더미) | scripts/world/MegaWorldBuilder.gd |
| 아이템 | scripts/catalog/Items.gd |
| 적 | scripts/catalog/Enemies.gd |
| 월드 오브젝트 | scripts/catalog/Objects.gd |
| 참 | scripts/catalog/Charms.gd |
| 재화 아이콘 | scripts/catalog/Currencies.gd |
| 존/BGM | scripts/catalog/Zones.gd |
| 화면 글 | localization/translations.csv |
전체 색인: AGENTS.md §3.
5. 더 읽고 싶을 때
| 파일 | 누구용 |
|---|---|
이 파일 STATUS.md | 사람. 지금 상태 |
TASKS.md | 단기 개선 과제·백로그·설계 고민 |
AGENTS.md | 에이전트 작업 규칙 |
ARCHITECTURE.md | 시스템 상세 (영어, 김) |
UI.md | HUD·모달·폰트 |
GATES.md | 턴이 끝났는지 |
README.md | 플레이어용 조작 안내 |
6. 이 표를 고치는 때
클래스, 오토로드, 그룹, F-키 에디터, 레거시 저장 경로를 추가·개명·폐기하면 이 파일을 같은 턴에 고친다.
콘텐츠 한 줄(아이템 스탯 등)만 바꾸면 이 파일이 아니라 §4 카탈로그만 고친다.