게임 내 디버깅 도구
Cataclysm: Bright Nights는 모더와 개발자가 JSON 콘텐츠를 테스트하고 디버그하는 데 도움이 되는 다양한 게임 내 디버깅 도구를 제공합니다.
디버그 메뉴 접근하기
디버그 메뉴에 접근하려면:
- 게임 실행
ESC키를 눌러 옵션 메뉴 열기- "디버그 메뉴" 선택 (또는
a키 누르기)
또는 ~ 키를 눌러 디버그 메뉴에 직접 접근할 수도 있습니다.
참고: 디버그 메뉴는 실험적 빌드에서 기본적으로 활성화되어 있습니다. 안정 버전에서는 게임 옵션에서 활성화해야 할 수 있습니다.
디버그 메뉴 카테고리
정보 (Info)
게임 상태 및 엔티티에 대한 정보를 보는 도구:
| 도구 | 설명 |
|---|---|
| 게임 상태 정보 | 현재 게임 상태, 날씨, 시간 등을 표시합니다. |
| 지형 정보 | 커서 위치의 지형 정보를 표시합니다. |
| 아이템 정보 | 아이템에 대한 상세 정보를 표시합니다. |
| 몬스터 정보 | 몬스터 통계 및 AI 상태를 표시합니다. |
| NPC 정보 | NPC 통계, 태도, 대화 옵션을 표시합니다. |
| 차량 정보 | 차량 파트, 연료, 손상 상태를 표시합니다. |
생성 (Spawning)
게임에 엔티티를 생성하는 도구:
| 도구 | 설명 |
|---|---|
아이템 생성 (i) |
ID로 아이템을 생성합니다. |
몬스터 생성 (m) |
ID로 몬스터를 생성합니다. |
차량 생성 (v) |
ID로 차량을 생성합니다. |
NPC 생성 (n) |
NPC를 생성합니다. |
| 지형 설정 | 특정 타일의 지형을 변경합니다. |
| 가구 설정 | 특정 타일에 가구를 배치합니다. |
플레이어 (Player)
플레이어 캐릭터를 수정하는 도구:
| 도구 | 설명 |
|---|---|
| 돌연변이 부여 | 플레이어에게 돌연변이를 추가합니다. |
| 특성 부여 | 플레이어에게 특성을 추가합니다. |
| 스킬 설정 | 플레이어 스킬 레벨을 설정합니다. |
| 통증 설정 | 플레이어 통증 레벨을 설정합니다. |
| 건강 설정 | 플레이어 건강 레벨을 설정합니다. |
| 사기 설정 | 플레이어 사기 레벨을 설정합니다. |
| 완전 치료 | 모든 상처, 통증, 상태 효과를 제거합니다. |
텔레포트 (Teleport)
| 도구 | 설명 |
|---|---|
| 단거리 텔레포트 | 지도의 특정 위치로 텔레포트합니다. |
| 장거리 텔레포트 | 오버맵의 특정 위치로 텔레포트합니다. |
| Z-레벨 변경 | 위 또는 아래 Z-레벨로 이동합니다. |
게임 (Game)
게임 상태를 수정하는 도구:
| 도구 | 설명 |
|---|---|
| 시간 변경 | 현재 게임 시간을 설정합니다. |
| 날씨 변경 | 현재 날씨를 설정합니다. |
| 조명 변경 | 조명 레벨을 수정합니다. |
| 맵 재생성 | 현재 맵을 재생성합니다. |
| 오버맵 표시 | 전체 오버맵을 공개합니다. |
제작 (Crafting)
| 도구 | 설명 |
|---|---|
| 모든 레시피 배우기 | 모든 제작 레시피를 배웁니다. |
| 즉시 제작 | 시간이나 자원 없이 즉시 아이템을 제작합니다. |
모딩에 유용한 도구
ID로 아이템 생성하기
JSON에서 정의한 아이템을 테스트하려면:
- 디버그 메뉴 열기 (
ESC→ 디버그 메뉴 또는~) - "아이템 생성" (
i) 선택 - 아이템 ID 입력 (예:
my_custom_sword) - 수량 입력
Enter키로 확인
아이템이 인벤토리에 생성됩니다.
몬스터 테스트하기
맞춤 몬스터를 테스트하려면:
- 디버그 메뉴 열기
- "몬스터 생성" (
m) 선택 - 몬스터 ID 입력 (예:
mon_my_custom_zombie) - 플레이어 근처에 생성
레시피 테스트하기
제작 레시피를 테스트하려면:
- 디버그 메뉴에서 "모든 레시피 배우기" 사용
- 제작 메뉴 열기 (
&) - 레시피 검색
- "즉시 제작"을 사용하여 구성 요소 없이 테스트
돌연변이 테스트하기
맞춤 돌연변이를 테스트하려면:
- 디버그 메뉴 열기
- "돌연변이 부여" 선택
- 돌연변이 ID 입력 (예:
WINGS) - 효과 확인
지형 및 가구 테스트하기
맞춤 지형이나 가구를 테스트하려면:
- 디버그 메뉴 열기
- "지형 설정" 또는 "가구 설정" 선택
- 설정할 타일로 커서 이동
- 지형/가구 ID 입력
- 외모 및 동작 확인
디버그 로그
디버그 로그는 JSON 로딩 문제 및 런타임 오류를 진단하는 데 유용합니다.
디버그 로그 보기
디버그 로그는 다음 위치에 저장됩니다:
- 리눅스/맥:
~/.cataclysm-bn/debug.log - 윈도우:
%USERPROFILE%\cataclysm-bn\debug.log
또는 디버그 메뉴에서:
- 디버그 메뉴 열기
- "정보" → "디버그 로그 보기"
일반적인 디버그 메시지
| 메시지 타입 | 설명 |
|---|---|
| ERROR | 게임 로딩을 방지하는 중요한 문제. |
| WARNING | 문제가 될 수 있는 잠재적 문제. |
| INFO | 정보 메시지. |
| DEBUG | 상세한 디버그 정보. |
JSON 오류 디버깅 팁
JSON 로딩 오류를 디버깅할 때:
- 로그 확인:
debug.log파일에서 오류 메시지를 확인하세요. - 구문 검증: JSON 구문이 유효한지 확인하세요 (쉼표, 중괄호, 인용 부호 확인).
- ID 검증: 모든 참조된 ID가 존재하는지 확인하세요.
- 타입 검증: 값 타입이 올바른지 확인하세요 (문자열, 정수, 배열 등).
- 격리 테스트: 문제 있는 정의를 별도의 파일로 격리하여 테스트하세요.
모드 테스트 워크플로우
- JSON 파일 작성
- 게임 시작
- 로딩 오류 확인 (
debug.log) - 디버그 메뉴를 사용하여 콘텐츠 생성
- 게임에서 동작 테스트
- 필요시 JSON 조정
- 게임 다시 시작 및 반복
일반적인 문제
| 문제 | 해결 방법 |
|---|---|
| 아이템이 생성되지 않음 | ID 철자 및 JSON 로딩 확인. |
| 몬스터가 잘못 동작함 | 몬스터 정의 및 AI 설정 확인. |
| 레시피가 표시되지 않음 | 레시피 요구사항 및 카테고리 확인. |
| 돌연변이가 효과 없음 | 돌연변이 정의 및 효과 확인. |
| 지형이 잘못 표시됨 | 지형 정의 및 타일셋 매핑 확인. |
추가 디버그 명령
일부 고급 디버그 명령은 메뉴가 아닌 명령줄을 통해 접근할 수 있습니다:
lua- Lua 콘솔 열기 (Lua 스크립팅이 활성화된 경우)python- Python 콘솔 열기 (Python 스크립팅이 활성화된 경우)
성능 디버깅
성능 문제를 디버깅하려면:
- 디버그 메뉴에서 "디버그 표시 켜기" 활성화
- 화면에 FPS 및 틱 시간 확인
- 성능 병목 현상 유발 요인 식별
- JSON 콘텐츠를 적절히 최적화
안전한 디버깅
디버깅할 때:
- 백업 저장: 테스트 전에 항상 저장 파일 백업
- 별도 세계: 테스트용 별도 게임 세계 사용
- 조심스럽게 생성: 너무 많은 엔티티를 생성하면 게임이 느려질 수 있음
- 크래시 확인: 불안정한 콘텐츠는 크래시를 유발할 수 있음
참고사항
- 디버그 도구는 일반 게임플레이용이 아님
- 일부 디버그 작업은 저장 파일을 손상시킬 수 있음
- 디버그 기능은 게임 버전에 따라 변경될 수 있음
- 항상 디버깅을 위해 최신 실험적 빌드 사용