최종 갱신 (KST)

GameDesign/design/building/README.md

11. 건물 (Building)

상위 문서: 게임기획코어.md 상태: 방향 확정(2026-10-16 · T-105) · 서버 구현(T-166 — 레벨 · 트리 · 속도·산출량 노드) · 데이터 테스트값 · 클라 ❌ · 희귀도·기능 노드 미착수 바뀌면 갱신: 게임기획코어 · 작업슬롯 · 특성 · 해금

섬에 1차 산업 건물을 짓고, 채취한 자원으로 레벨을 올린다. 건물마다 기술 트리가 있고, 앞 노드를 열어야 다음 노드가 열린다. 판매(골드) 말고는 출구가 없던 자원의 첫 직접 사용처다. 구조는 Escape from Duckov의 은신처(건물 레벨 + 선행이 있는 강화 트리)를 따른다.


1. 확정 사항 (2026-10-16)

# 항목 확정 내용
1 섬에 산업 건물을 짓는다 자원으로 짓고 레벨을 올린다. 섬 개발 컨셉(1장)의 화면이다
2 건물마다 기술 트리 노드마다 필요 건물 레벨이 있다. 레벨이 오르면 다음 층 노드를 열 수 있다
3 선행 노드 앞 노드를 열지 않으면 다음 노드를 열 수 없다
4 노드는 수치도 연다 속도·산출량·희귀도 확률 같은 수치 가산과 기능(레시피·제작) 해금을 모두 둔다. 산업마다 노드가 달라도 된다 — 희귀도 공통값(#42)은 기본값이고, 노드는 특성처럼 플레이어가 얻는 보너스다
5 계정 특성 · 슬롯 시설 개량은 그대로 둔다 세 시스템이 함께 간다 — 붙는 대상이 다르다 → 2장
6 대기 타이머 없음 비용을 내면 바로 열린다. 재촉하지 않는다(P1)
7 영구 한 번 올린 레벨·연 노드는 되돌아가지 않는다
8 비용은 자원만 골드를 받지 않는다. 한 단계에 여러 종을 요구하면 전부 낸다
9 건물 5개 · 산업당 하나 농장 · 발굴 캠프 · 광산 · 제재소 · 사냥꾼 오두막. BuildingTID = IndustryType 값

2. 다른 성장 시스템과의 구분

시스템 붙는 곳 무엇으로 올리나 효과
특성 계정 특성 포인트(계정 레벨) 산업 개척 · 산업 속도 · 공통/산업 산출량
슬롯 시설 개량 (T-125) 슬롯 한 칸 목재 + 광물 그 칸의 속도(건축) · 산출량(설비)
건물 (이 문서) 산업 하나 자원 (그 산업 + 다른 산업) 그 산업 전체의 수치 가산 + 기능 해금
  • 특성은 포인트를 어디에 쓸지 고르는 성장이고, 건물은 자원을 모아 하나씩 여는 성장이다.
  • 슬롯 개량은 칸 하나에만 붙고, 건물은 그 산업을 돌리는 모든 칸에 붙는다.

2.1 수치는 기존 합성식의 가산 항으로 들어간다

수치 합성 근거
작업속도 적성 × (1 + Σ가산) × Π승산 — 건물 노드는 Σ가산의 한 항 작업슬롯 3.4
산출량 100% + 공통 + 그 산업 — 건물 노드는 그 산업 항에 더한다 특성 2.3
  • 승산으로 두지 않는다. 보정원이 늘어도 적힌 숫자가 곧 그 보정의 몫이어야 한다(특성 2.5와 같은 이유).
  • 속도는 판정 최소 주기를 넘으면 버려진다. 상한은 그대로다.
  • 효과를 바꾸기 직전에 정산한다. 이전 구간에 소급되지 않는다.

3. 구조 — UnlockTable 재사용

건물 레벨과 노드를 해금 행 하나씩으로 둔다. 판정·클라 잠금 표시·DB(t_user_unlock)를 그대로 쓰고, 건물 쪽에는 화면과 노드 효과만 새로 만든다 → 해금 1장.

농장 Lv1 (해금 행)  ──선행──>  농장 Lv2  ──선행──>  농장 Lv3
   │                             │
   └─ 노드 A (선행: 농장 Lv1)     └─ 노드 C (선행: 농장 Lv2 · 노드 B)
        └─ 노드 B (선행: 노드 A)
  • 건물 레벨 N = 레벨 N−1 행이 선행인 해금 행. 다른 건물 레벨을 선행에 넣으면 산업끼리 서로 필요해진다(예: 광산 Lv3 ← 제재소 Lv2).
  • 노드 = 건물 레벨 행 + 앞 노드 행이 선행인 해금 행. 선행 검사는 RequiredUnlockTIDs가 이미 한다.
  • 노드 효과는 별도 표가 UnlockTID를 참조한다(해금 1장 #4 "콘텐츠가 해금을 참조한다").

3.1 자원 비용 — UnlockTable.ItemTIDs · ItemCounts

  • 두 배열이 짝이다(개수가 다르면 기동 실패). 건물 행은 Gold = 0이라 해금 1장 #16(지불 컬럼끼리는 OR)과 부딪치지 않는다.
  • 적힌 종을 전부 낸다. 하나라도 모자라면 NotEnoughItem으로 거절하고 아무것도 빼지 않는다. 인벤토리 먼저, 모자란 만큼 창고에서 뺀다.
  • 잠근 자원(판매·경매 잠금)도 건물에는 쓸 수 있다 — 잠금은 팔지 않게 막는 것이다.

3.2 데이터 (Building.xlsx · 2026-10-16)

표 컬럼 내용
BuildingTable BuildingTID · Name · Industry · Description 건물 5개. TID = IndustryType 값
BuildingNodeTable UnlockTID · BuildingTID · Level · EffectType · EffectValue · Description 해금 행 하나 = 줄 하나. Level 1 이상 = 건물 레벨(효과 None) · 0 = 트리 노드
Enum.xlsx BuildingEffectType SpeedAdd · YieldAdd 천분율. 효과는 그 건물의 산업에만 붙는다
  • 해금 TID 4 + 건물 TID + 두 자리 — 레벨 01~ · 노드 11~ (농장 Lv1 = 4101, 농장 첫 노드 = 4111).
  • 테스트 데이터: 건물마다 Lv1~3 + 노드 3개(속도 +3% → 산출량 +5% → 속도 +5%). 광산 Lv3 ← 제재소 Lv2 · 제재소 Lv3 ← 광산 Lv2.
  • 상태는 따로 저장하지 않는다 — 열린 해금 목록(t_user_unlock)이 곧 건물 상태다. 패킷도 해금 패킷 그대로다.

3.3 서버

  • UnlockCatalog가 노드를 해금 TID로 역색인하고 로드 때 검사한다(없는 해금 · 없는 건물 · 한 해금을 두 콘텐츠가 참조 → 기동 실패).
  • User.GetBuildingEffect(효과, 산업) — 열린 노드의 합. 속도는 슬롯 내역의 TraitAddPermille(특성·아티팩트와 같은 자리), 산출량은 그 산업 항에 더한다.
  • 수치 노드를 열기 직전에 정산하고, 속도 노드면 열고 나서 슬롯 속도를 다시 매긴다.

4. 미정

항목 지금 생각 (확정 아님)
건물 최대 레벨 · 노드 수 정하지 않았다 (테스트 데이터는 Lv3 · 노드 3개)
노드 효과 목록 수치: 그 산업 속도 · 산출량 / 기능: 농장 = 도시락 레시피 · 사냥꾼 오두막 = 토벌령 제작 · 발굴 캠프 = 유물 감정 · 제재소·광산 = 슬롯 시설 개량 단계
갈래 선택 한 갈래만 고르게 할지, 결국 전부 열 수 있게 할지
비용 구성 상위 레벨·노드에 다른 산업 자원을 섞는다
희귀도 확률 노드의 적용 방식 지금 희귀도에 붙는 보너스가 없다(특성도 개입하지 않는다). 가중치에 더할지 등 새로 정한다

5. 참고

  • T-105 — 자원 사용처 검토 (이 문서의 출발점)
  • T-166 — 서버 구현 (레벨 · 트리 · 속도·산출량 노드 · 자원 비용)
  • T-125 — 산업별 자원 출구(도시락 · 슬롯 시설 개량 · 토벌령)
  • Escape from Duckov 은신처 — 재료로 짓는 건물 · 선행 건물 · 단계형 작업대 · 아이템 + 재화로 여는 스킬 트리