Files
little-fairy/moon/README.md

5.6 KiB

Little Fairy - MapManager 시스템

프로젝트 개요

Little Fairy는 "살아있음의 기쁨"과 "생명의 연속성"을 체험할 수 있는 한국적 정서의 RPG 게임입니다. 이 프로젝트는 Godot 4.4.1 엔진과 C#을 사용하여 개발되었습니다.

현재 구현된 기능은 **노드 기반 맵 시스템(MapManager)**입니다.

구현된 기능

MapManager 시스템

  1. 노드 기반 맵 이동

    • 각 맵은 의미있는 장소들로 구성된 노드 네트워크
    • 클릭 기반 즉시 이동 (복잡한 이동 메커니즘 배제)
    • 방향키를 통한 직관적인 노드 이동
  2. 4개의 테스트 맵

    • Map A - 꽃마루: 어린 선녀가 깨어나는 봄의 산골 마을
    • Map B - 물소리 벌판: 성장기 선녀의 여름 강변 들판
    • Map C - 단풍골: 성숙기 선녀의 가을 도시 근교
    • Map D - 백설봉: 지혜의 시기 겨울 설산
  3. 노드 잠금/해제 시스템

    • 스토리 진행에 따른 점진적 영역 확장
    • 테스트용 비밀길 해제 기능
  4. JSON 기반 맵 데이터

    • 유연한 맵 구성과 쉬운 수정
    • 각 노드별 상세 정보 (이름, 설명, 연결 정보 등)

파일 구조

moon/
├── scripts/
│   ├── data/
│   │   └── MapData.cs              # 맵 데이터 클래스
│   ├── managers/
│   │   └── MapManager.cs           # 맵 관리 시스템
│   └── MainGame.cs                 # 메인 게임 클래스
├── data/
│   └── maps/
│       ├── map_a_flower_village.json  # 꽃마루 맵 데이터
│       ├── map_b_river_plains.json    # 물소리 벌판 맵 데이터
│       ├── map_c_maple_valley.json    # 단풍골 맵 데이터
│       └── map_d_snow_peak.json       # 백설봉 맵 데이터
└── scenes/
    └── MainGame.tscn               # 메인 게임 씬

조작법

키보드 조작

  • ↑↓←→: 방향키로 연결된 노드로 이동
  • 현재 노드에서 연결된 노드 중 방향에 가장 가까운 노드로 이동

마우스 조작

  • 노드 버튼 클릭: 해당 노드로 직접 이동
  • 연결되지 않은 노드는 클릭해도 이동되지 않음

UI 기능

  • 맵 선택: 드롭다운 메뉴로 다른 맵으로 전환
  • 비밀길 해제: 테스트용 잠긴 노드 해제 버튼

맵 구조

Map A - 꽃마루 (Spring Mountain Village)

  1. 선녀의 둥지 - 시작 지점, 신성한 장소
  2. 마을 광장 - 사회적 중심지, 해찬이가 있음
  3. 할머니 집 - 달빛 할머니의 거주지
  4. 시든 꽃밭 - 치유가 필요한 자연 공간, 꽃님 정령
  5. 나무꾼 오두막 - 석주 나무꾼의 작업장
  6. 성스러운 샘 - 치유의 성스러운 장소
  7. 비밀 숲길 - 잠긴 특별한 장소 (해제 가능)

Map B - 물소리 벌판 (Summer River Plains)

  1. 강변 선착장 - 맵 진입점
  2. 광활한 들판 - 농부 철수의 작업 공간
  3. 물방앗간 - 전통적인 작업 시설
  4. 용궁 입구 - 용왕 미르의 신비한 거처
  5. 약초밭 - 의원 혜련의 치유 공간
  6. 마을 회관 - 청년 준호와의 사회적 공간

Map C - 단풍골 (Autumn Maple Valley)

  1. 한옥 보존지구 - 영숙의 전통 보존 공간
  2. 현대식 아파트 단지 - 기업인 태영의 거주지
  3. 예술가의 거리 - 예술가 소희의 창작 공간
  4. 환경운동 거점 - 환경운동가 민수의 활동 기지
  5. 도시계획사무소 - 도시 수호신 한울의 업무 공간
  6. 전통시장 - 다양한 사람들이 모이는 곳

Map D - 백설봉 (Winter Snow Peak)

  1. 설산 입구 - 신성한 산으로의 입구
  2. 명상의 동굴 - 깊은 성찰의 공간
  3. 선조들의 터 - 지혜가 축적된 역사적 장소
  4. 별빛 정상 - 산신령 설봉과의 만남, 완성의 장소

기술적 특징

MapManager 클래스

  • 이벤트 기반 통신: Signal을 통한 노드 변경, 맵 변경, 노드 해제 알림
  • JSON 데이터 로딩: 동적 맵 구성과 유연한 수정
  • 방향 기반 이동: 방향키 입력에 따른 지능적 노드 선택
  • 잠금 시스템: 스토리 진행에 따른 점진적 영역 확장

데이터 구조

  • MapData: 전체 맵 정보 (이름, 설명, 배경음악 등)
  • MapNodeData: 개별 노드 정보 (위치, 타입, 연결 정보 등)
  • NodeType: 노드 분류 (거주지, 자연명소, 작업장, 성지 등)

실행 방법

  1. Godot 4.4.1 엔진에서 프로젝트 열기
  2. MainGame.tscn 씬을 메인 씬으로 설정 (이미 설정됨)
  3. F5 키로 프로젝트 실행
  4. 방향키나 마우스로 노드 이동 테스트
  5. 맵 선택 드롭다운으로 다른 맵으로 전환

향후 확장 계획

  1. 캐릭터 시스템: NPC와의 상호작용
  2. 인연 시스템: 관계 발전과 호감도
  3. 매듭 시스템: 한국 전통 매듭을 활용한 스킬 시스템
  4. 생명의 동반자: 깊은 관계 형성과 결합
  5. 선녀의 별자리: 세대 간 유전 시스템

개발 환경

  • 엔진: Godot 4.4.1
  • 언어: C#
  • 플랫폼: Windows (추후 다른 플랫폼 확장 예정)

라이선스

Little Fairy 프로젝트는 개발 중인 게임으로, 모든 권리는 개발팀에 있습니다.


MapManager 시스템은 Little Fairy 게임의 핵심 이동 시스템으로, 한국적 정서가 담긴 아름다운 장소들을 노드 기반으로 연결하여 플레이어가 직관적이고 의미있는 이동 경험을 할 수 있도록 설계되었습니다.