콘텐츠로 이동
GameDesign

(신규 기획) 제작 (크래프팅) 초안미구현밸런싱미완료

본 문서는 괴람의 제작(크래프팅) 시스템 신규 기획이다. 채집·루팅으로 모은 재료·잡템을 소모품·요리·재료·장비·강화로 가공하는 콘텐츠를 정의한다. 코드를 참고하되, 레시피·요리·강화는 거의 백지에서 신규 설계한다.

항목내용
재료 공급(채집)채집은 이미 구현됨GatherableGroupTableData/GatherableInfoTableData + 맵 연동(드랍의 상자 그룹과 유사 배치). 제작의 재료 공급원으로 바로 활용. 제작 도입의 블로커 아님.
제작대 틀Anvil(모루) = 상호작용 → 격자 인벤토리 팝업. UI 패턴 재사용.
파츠 조립CombinerBase/EquipItemCombiner = 피벗 기반 기하 조립(레시피 아님). 장비 제작의 조립 단계에만 사용.
신규 개발레시피 DTO·제작 로직·요리·강화·수리·시설 확장·제작 UI 전부 없음 → 신규.
연계아이템 분류(Material·Utility), 인벤토리, 드랍, NPC·상인.
항목내용
정의재료·잡템을 입력해 더 유용한 아이템(소모품·요리·재료·장비)으로 변환·강화하는 시스템.
핵심 행동재료 수집 → 제작대/시설 접근 → 레시피 선택 → 재료 소비 → 결과 획득.
플레이어 목적루팅만으론 부족한 소모품·식량·강화 수단을 스스로 조달.
게임 설계 목적잡템·재료에 수요를 만들어 채집·루팅 가치를 끌어올림. 메타 성장·자원 순환의 축.

2. 시스템 구조 — 한 시스템, 두 계층

섹션 제목: “2. 시스템 구조 — 한 시스템, 두 계층”

제작은 휴대 간이거점 본격 두 계층으로 운영하되, 레시피·재료 데이터는 공유한다. 레시피마다 “현장 가능 여부” 플래그만 둔다.

계층위치범위비용의도
휴대 간이런 중 어디서나(휴대 제작)현장 가능 레시피만 (붕대·미끼·간이 회복식 등)점유 시간 + 소음 (무방비·피격 위험)런 중 급한 조달. 자원·위치 관리 긴장
거점 본격주막(안전지대) 시설전체 레시피 + 강화·수리안전, 시간 여유메타 성장·장비 준비
  • 어디서나 메뉴로 제작 가능(휴대형). 단 제작 중 점유 시간 동안 무방비.
  • 제작은 소음을 발생시켜 인지를 끈다 (감지 시스템 연동). 시체 루팅·상자 해제와 동일한 “런 중 점유 = 위험” 긴장.
  • → “지금 여기서 만들 것인가, 안전한 곳까지 참을 것인가”의 판단을 만든다.

제작 결과물 4종과, 거점에서 담당하는 시설을 매핑한다.

결과물군예시담당 시설휴대 간이
소모품·요리포션·약·붕대·음식·미끼화로 · 약초방일부 가능 (붕대·미끼·간이식)
재료 가공광석→주괴, 가죽→무두질, 약초→추출물작업대 · 제련제한적
장비·부품무기·방어구·파츠대장간(모루)불가 (거점 전용)
강화·수리장비 강화(+N), 내구도 수리대장간불가 (거점 전용)
  • 시설은 데이터로 구분한다 (facility: 대장간/화로/약초방/작업대). 레시피가 어느 시설 소속인지 명시.
  • 배치는 **“구분 배치할 수 있는 설계”**로 둔다 — 한 시설이 다 하지도, 전면 분리로 복잡하지도 않게. 물리적으로 시설을 따로 배치할지/한 곳에 모을지는 운영 단계 결정(§11). 시스템은 분리를 지원.
  • 현재 코드 시설은 모루(대장간)만 존재 → 화로·약초방·작업대는 신규(§10).
  • 콘텐츠 목표는 2단계: 원재료 → 중간재(주괴·무두 가죽·추출물) → 최종물.
  • 시스템은 임의 깊이를 지원한다 — 레시피의 출력이 다른 레시피의 입력이 될 수 있게 설계(재귀). 깊이는 데이터로 정해지므로, 콘텐츠가 2단계면 2단계, 더 필요하면 시트만 늘리면 된다.

장비를 **강화 레벨(+1 ~ 상한)**로 키운다. 소울류 무기 업그레이드 방식.

항목결정
방식별도 강화 레벨 (enhanceLevel). 아이템은 그대로, +N 수치가 따로 붙어 성능 상승.
드랍 모델 관계value(등급)와 축이 다름드랍 모델의 “등급별 별개 아이템”과 충돌 없음. 등급은 어떤 아이템인가, 강화는 그 아이템을 얼마나 키웠나.
실패/리스크없음 — 확정 상승. 익스트랙션이 이미 “잃을 수 있다” 긴장을 주므로 강화까지 가혹하게 두지 않는다.
상한고정 상한 (예 +5, 밸런싱). 모든 장비 동일 상한.
재료전용 강화재(강화석류). 단계가 높을수록 더 상위 강화재 요구 (소울류 티탄석 단계 방식). 강화재는 드랍·채집·제작으로 조달.
시설대장간(거점 전용). 휴대 강화 불가.
  • 장비 내구도(durability, 아이템 시트에 존재)를 재료로 회복.
  • 대장장이 전담 (NPC·상인). 강화와 별개 행위.

음식은 사전 버프가 아니라 회복·대응 수단으로 둔다. 기존 UtilityTableData 효과 시스템(optionType/optionValue/effectDuration) 활용.

효과내용
허기·갈증 회복Hunger/Thirst 게이지 회복. 좋은 요리일수록 많이·오래. (기존 Hunger/Thirst 단계 페널티와 연동)
즉시 회복HP·스태미너 즉시 회복. 전투 중 급하게 먹는 용도.
정신력/특수Mental 회복·디버프 해소 등 특수 효과 (해당 시스템 도입 시).
Recipe = 결과물(1종 × N개) + 입력 재료(M종 × 개수) + (선택 입력) + 조건
조건 = 담당 시설 / 해금 여부 / (선택) 숙련도·미션

레시피 출력이 다른 레시피의 입력이 될 수 있다(재귀, §3.2).

종류획득
기본 레시피시설 보유 시 항상 사용 가능대장간 = 기본 무기·수리 / 화로 = 기본 음식
해금 레시피도면(레시피 아이템) 을 드랍·구매·미션 보상으로 획득 → 영구 등록고급 무기 도면, 특수 요리법, 강화 상위 단계
  • 해금 레시피는 한 번 등록하면 영구(메타 보존). 도면 아이템은 소비.
  • 해금형이 수집·탐험·상점 소비 동기를 만든다.
flowchart TD
GATHER[재료 확보<br/>채집(구현됨) · 루팅 · 구매] --> ACCESS

subgraph FIELD [휴대 간이 · 런 중]
  F1[어디서나 휴대 제작]
  F2[현장 가능 레시피만]
  F3[점유 시간 · 소음 리스크]
end
subgraph BASE [거점 본격 · 주막]
  B1[시설 접근<br/>대장간·화로·약초방·작업대]
  B2[전체 레시피 + 강화·수리]
  B3[안전 · 시간 여유]
end

ACCESS{어디서?} -->|런 중| F1 --> F2 --> F3 --> CRAFT
ACCESS -->|거점| B1 --> B2 --> B3 --> CRAFT

CRAFT[레시피 선택 → 재료 검증 → 소비 → 결과 생성] --> RESULT[인벤토리 적재]

classDef g fill:#bbf7d0,stroke:#16a34a,stroke-width:2px,color:#14532d
classDef f fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f
classDef b fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#075985
classDef c fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#4c1d95
class GATHER g
class F1,F2,F3 f
class B1,B2,B3 b
class CRAFT,RESULT c

제작 단계: ① 접근(휴대/거점 시설) → ② 레시피 선택(미해금·재료부족 비활성) → ③ 재료 검증 → ④ 소비·생성(품질 §9.4) → ⑤ 적재(공간 부족 처리 §11).

기존 모루 팝업(AnvilAnvilInventoryPopup) 패턴을 확장한다 — 격자 인벤토리 기반.

┌─────────────────────────────────────────────────────────┐
│ [대장간 ▾] 시설 탭 (대장간 / 화로 / 약초방 / 작업대) │
├──────────────┬──────────────────────┬─────────────────────┤
│ 레시피 목록 │ 레시피 상세 │ 내 재료 (격자) │
│ ┌──────────┐ │ ┌────────────────┐ │ ┌──┬──┬──┬──┐ │
│ │ 철검 ✓ │ │ │ 결과: 철검 │ │ │광│광│가│ │ │
│ │ 강철검 🔒│ │ │ 필요: │ │ ├──┼──┼──┼──┤ │
│ │ 강화 +N │ │ │ · 주괴 ×3 (2) │ │ │약│ │ │ │ │
│ │ 회복약 ✓ │ │ │ · 손잡이 ×1(0) │ │ └──┴──┴──┴──┘ │
│ │ 수리 │ │ │ 시간: 즉시 │ │ (휴대 인벤토리) │
│ └──────────┘ │ └────────────────┘ │ │
│ │ [ 제작 ] (재료부족 비활성) │
└──────────────┴──────────────────────┴─────────────────────┘
영역내용
시설 탭대장간/화로/약초방/작업대 전환. 시설별 레시피 필터.
레시피 목록등록 레시피. ✓ 제작가능 / 🔒 미해금 / 회색 재료부족. 강화·수리도 항목.
레시피 상세결과물·필요 재료(보유/요구)·시간·결과 미리보기.
내 재료휴대 인벤토리 격자 (기존 인벤토리 UI 재사용).
제작 버튼요건 충족 시 활성. 다중/연속 제작 §11.
  • 간소화 팝업 — 현장 가능 레시피만, 시설 탭 없음.
  • 어디서나 호출. 제작 중 점유 게이지(소음·피격 노출) 표시 — 시체 루팅 UI와 동일 결.

9.1 신규 — 레시피 테이블 RecipeTableData

섹션 제목: “9.1 신규 — 레시피 테이블 RecipeTableData”
컬럼의미
recipeId레시피 식별자
resultItemId / resultCount결과 아이템·개수
facility담당 시설 (smithy/hearth/herb/bench)
inputs입력 재료 배열 (itemId × count)
optionalInputs선택 입력 (품질 보정용, §9.4)
unlockTypebase(상시) / blueprint(해금)
unlockItemId해금형일 때 필요한 도면 아이템
fieldCraftable휴대 간이 가능 여부 (계층 플래그)
craftTime제작 시간 (즉시/대기/점유)
category결과물군 (소모품·요리/재료/장비/강화수리)

9.2 신규 — 강화 테이블 EnhanceTableData

섹션 제목: “9.2 신규 — 강화 테이블 EnhanceTableData”
컬럼의미
targetCategory강화 대상 (무기/방어구 등)
level강화 단계 (+1 ~ 상한)
materials이 단계에 필요한 강화재 (itemId × count)
statMul / statAdd단계별 성능 보정

→ 강화는 레시피와 별개 테이블. 아이템 인스턴스에 enhanceLevel 필드 추가 필요(§10).

  • 입력·결과는 아이템 마스터itemId 참조.
  • 요리 효과는 기존 UtilityTableData(optionType/optionValue/effectDuration) 재사용.
  • 수리는 durability, 강화는 신규 enhanceLevel.
  • 장비 제작 중 파츠 조립은 기존 EquipItemCombiner 재사용.
  • 기본: 레시피가 고정 결과.
  • 선택: 입력 재료 등급(value)·숙련도·선택 입력이 결과를 보정. 도입 여부 결정 필요.
#항목현재필요규모
1레시피 DTO·마스터 시트없음제작 데이터 토대
2제작 로직 (검증·소비·생성)없음핵심 동작
3레시피 해금·등록 저장없음도면→영구 해금, 메타 보존 연동
4제작 UI (목록·상세·재료·결과)모루 팝업 껍데기모루 팝업 확장중~대
5요리·조합 효과 처리없음Utility 효과 생성 연동
6강화 시스템 (enhanceLevel·강화 테이블·성능 적용)없음§4
7수리 로직 (durability 회복)없음§4.1
8거점 시설 확장모루만화로·약초방·작업대 (구분 배치 지원)소~중
9휴대 간이 제작 트리거없음어디서나 제작 + 점유·소음 리스크
항목내용
강화 상한 수치+몇까지, 단계별 강화재 종류·개수. 밸런싱.
결과 품질 보정고정 결과 vs 재료 등급·숙련도 보정(§9.4).
시설 물리 배치구분 배치 가능 설계는 확정. 실제 주막에 따로 둘지/모을지 운영 결정.
제작 시간 비용거점 즉시 vs 대기. 휴대는 점유(확정).
다중·연속 제작한 번에 N개, 대기열 지원 여부.
결과 적재 공간 부족인벤토리 가득 시 처리(바닥/보류).
숙련도 연계제작 숙련이 효율·품질·해금에 영향 (성장·숙련도).
정신력 효과Mental 시스템 도입 후 음식 특수 효과 확정.