최종 갱신 (KST)

GameDesign/design/게임기획코어.md 최종 업데이트 2026-10-06

게임기획코어 — Window Simulator

최종 업데이트: 2026-10-06 (상급 큐브 이전 값 유지 — T-127 · 이슈 #53 · 슬롯 해금 골드 단독 — T-012 · 이슈 #43 · 캐릭터 레벨 효과 = 작업속도 가산 — T-003 · 이슈 #35) · 2026-10-02 (도달 목표 타임라인 · 상자 별도 롤 · 레벨형 특성 · 산출량 — T-108 · 창고 → 인벤토리 용어 정리 — T-101) 바뀌면 갱신: 거래 · 게임UI · 기획평가 · 낚시 · 농사 · 벌목 사냥 · 산업레벨 · 아이템 · 우편 · 자원채취 · 작업슬롯 · 진행 및 성장 채굴 · 캐릭터 · 퀘스트 · 특성 · 해금

이 문서는 게임 기획의 최상위 문서이자 단일 진입점이다. 게임 시스템·콘텐츠를 개발하는 모든 작업은 착수 전에 이 문서를 먼저 읽고, 해당 영역의 상세 기획안을 이어서 읽는다. 상세 수치·예외는 여기 쓰지 않는다. 여긴 **"무엇을 왜 만드는가"**만 담는다.

바뀐 내용만 적는다. 기획이 달라지면 이전 서술을 지우고 새 내용으로 대체한다 — 취소선·"폐지"·"재정의됨" 같은 이력을 남기지 않는다. 이 문서는 지금 확정된 상태만 보여준다. 변경 이력은 git이 갖는다.

무엇을 찾나 절
게임이 무엇인가 · 설계 원칙 P1~P4 1. 정체성
플레이어가 반복하는 것 2. 코어 루프
어느 시스템이 있고 상세 기획안이 어디인가 3. 시스템 지도
산업 5종 · 작업슬롯 · 산업 레벨 · 보상 · 코드값(ItemType·희귀도) · 식별자 규칙 4. 콘텐츠 지도
무엇이 확정이고 무엇이 미정인가 — 구현 전 확인 5. 확정 / 미확정 현황
코드가 지켜야 할 고정 규칙 6. 개발 시 지켜야 할 접점
문서 링크 모음 7. 문서 지도

필요한 절만 읽어도 된다. 규칙·수치가 바뀌는 작업이면 5장·6장은 반드시 본다.


1. 정체성

항목 내용
한 줄 요약 바탕화면 위에서 자라는, 캐릭터를 배치해 굴리는 1차 산업 방치 게임
컨셉 싼값에 산 썩은 무인도를 개발한다 (2026-08-01 확정)
장르 방치형 · 경영/수집
플랫폼 Windows 데스크톱 (투명 창 위젯, 상시 동작)
아트 Pixel + Stylized (AI)
승패 조건 없음. 장기 목표는 섬 가치 랭킹과 자원 축적·거래 경쟁
세션 형태 몰입형 세션이 아님. 업무·일상 중 바탕화면 한켠에서 진행

컨셉 — 썩은 무인도를 개발한다 (2026-08-01 확정)

플레이어는 싼값에 섬을 샀다. 와 보니 아무것도 없는 썩은 무인도였다. 이제 그 섬을 개발한다.

시스템을 바꾸지 않고 이름을 준 것이다. 기존 확정 사항이 전부 이 위에서 자연스럽게 읽힌다.

시스템 섬 컨셉에서의 의미
작업슬롯 개간한 땅. 늘어날수록 섬이 커진다
캐릭터 섬에서 일하는 일꾼
1차 산업 5종 섬에서 나는 것
계정 레벨 · 특성 섬주인 본인. 일하지 않고, 특성 레벨로 기여한다
거래 거래소 섬 밖의 시장
섬 가치 랭킹 개발한 섬끼리의 경쟁 → 진행 및 성장 2.8

이것이 "왜 계속 하는가"(R1)의 답이다. 방치형의 성장이 "내 섬이 나아진다" 로 번역된다. 읽어야 하는 스토리는 두지 않는다 — 상황 설정 한 줄로 충분하다 (P1).

설계 원칙 (Design Pillars)

개발 중 판단이 갈릴 때 이 4개를 기준으로 결정한다.

# 원칙 의미 위반 예시
P1 주의를 뺏지 않는다 플레이어의 주 작업은 게임이 아니다. 알림·모달·소리는 최소 필수 클릭 타이머, 화면 중앙 팝업
P2 띄워만 두면 자란다 바탕화면에 떠 있는 동안 조작 없이 진행. 접속이 곧 플레이다 진행하려면 클릭·조작이 필요함
P3 하루에 한 번, 들여다볼 이유는 있고 놓쳐도 손해는 없다 ✅ 하루 리듬을 주되 접속을 강제하지 않는다 연속 접속 보너스, 미완료 이월, 위젯 배지
P4 모든 재화는 흐른다 획득물은 거래소를 통해 유저 간 순환. 계정에 고이지 않음 거래 불가 귀속 아이템의 남발

⚠️ P1~P4는 초기 컨셉에서 도출한 제안이다. 기획자 확정 전이며, 확정 시 이 표에서 ⚠️ 표기를 제거한다.

P2 — 쳐다보지 않아도 자란다

이 게임은 바탕화면 위젯으로 상시 동작한다(1장 정체성). 업무 중 띄워 두면 접속 시간이 자연히 하루 대부분이 되므로, "접속 중에만"이 곧 "PC를 쓰는 동안"이다. 클릭·조작 없이 진행된다는 것이 방치형의 핵심이다.

항목 내용
진행 조건 클라이언트가 접속해 있으면
접속의 의미 접속 자체가 플레이다
리텐션 축 "켜 둘 만하다" ← 게임UI의 요구사항이 된다

⚠️ 복귀 유인이 될 누적 보상이 없다. 접속 보상도 두지 않으므로 위젯 자체가 띄워 둘 만해야 한다. → 게임 UI

리텐션은 섬 가치 랭킹(구간 리그)과 캐릭터 애착이 맡는다.

P3 — 하루에 한 번, 들여다볼 이유는 있고 놓쳐도 손해는 없다

하루 리듬 장치 담당
액티브 부스트 하루 2회 · 1시간 지속 특성 2.4
가벼운 일일 퀘스트 퀘스트 2.1

⚠️ P3는 P1의 하위 원칙이다. 둘이 부딪히면 P1이 이긴다. 일일 장치의 보상은 전부 "가속"이지 "총량"이 아니다 — 안 써도 잃는 것이 없고, 쓰면 그날이 빨라질 뿐이다.

금지: 연속 접속(streak) 보너스 · 미사용분 이월 · 미완료 누적 · 위젯의 배지/타이머/"오늘까지" 표시. 하나라도 붙는 순간 바탕화면 상주물이 재촉하는 물건이 되어 P1을 어긴다.

오프라인 진행은 두지 않는다. 총량이 접속 시간에 정비례한다는 성질이 지금 밸런싱의 유일한 발판이다.


2. 코어 루프

캐릭터 배치 → 자원 채취 → 보상 → 캐릭터 + 특성 + 아이템 → 재배치 → 거래
  (슬롯)       (방치)      (희귀)        (성장)            (가속)   (축적·경쟁)
단계 하는 일 담당 시스템
캐릭터 배치 작업슬롯에 산업을 지정하고 캐릭터를 배치 작업슬롯
자원 채취 배치된 슬롯마다 자동 진행되며 자원 획득 자원채취
보상 자원·아이템 지급, 낮은 확률로 희귀 보상 자원채취 · 아이템
성장 캐릭터 레벨(판정 1회마다 경험치) → 계정 레벨(같은 경험치 전량) → 특성 포인트 → 특성 레벨 캐릭터 · 특성
재채취 강화된 상태로 루프 반복(가속) 자원채취
거래 잉여 자원을 화폐로 전환, 유저 간 경쟁 거래

루프에 목표를 부여하는 퀘스트 와, 루프 전체의 속도를 규정하는 진행 및 성장 이 위 5단계를 가로지른다.


3. 시스템 지도

No 시스템 한 줄 정의 상세 기획안 상태
00 작업슬롯 슬롯에 산업을 지정하고 캐릭터를 배치해 굴린다 작업슬롯 골격 확정 · 수치 미정
01 자원 채취 배치된 슬롯마다 방치로 진행되며 자원·아이템 산출 자원채취 산업 5종 확정 · 수치 미정
08 캐릭터 슬롯에 배치되는 일꾼. 적성이 곧 작업속도 캐릭터 적성·장비·장비 인챈트·획득(가챠)·경험치 곡선·레벨 효과(작업속도 가산) 확정 · 30종
09 해금 콘텐츠를 여는 규칙 하나 — UnlockTable + 해금 행동 해금 골격·데이터 확정 · 첫 구현(슬롯) 미착수
02 퀘스트 채취·성장에 단·중기 목표를 부여하는 과제 퀘스트 역할 확정 · 상세 미정
03 특성 섬주인(계정)의 레벨형 특성 — 산업 개척(산업 레벨 해금) · 산업별 속도 · 공통/산업 산출량 · 액티브 부스트 특성 레벨형 4종 서버 구현(T-108) · 클라 ❌ · 수치 테스트값 · 액티브 미착수
04 아이템 산업 자원 · 상자 · 상자 전용 특수 아이템 · 인챈트 큐브 아이템 실 데이터 176종(상자 15 · 상자 전용 3 · 인챈트 큐브 2 포함) · BasePrice 임시값
05 거래 즉시 판매·거래소·상점을 통한 화폐 순환과 경쟁 거래 즉시 판매 구현 완료 · 거래소(경매장 서버) 즉시구매 구현 · 수치 테스트값
06 진행 및 성장 온보딩 → 성장 페이스 → 후반 목표 진행 및 성장 도달 목표 타임라인 확정 · 후반 목표 확정 · 수치 역산 미착수
07 게임 UI 바탕화면 위젯·팝업 UI·알림 규칙 게임 UI 방향만
10 우편 운영 지급과 인벤토리 넘침 보상을 맡겨 두는 곳 우편 기획 확정 · 서버 완료 · 클라 미착수

4. 콘텐츠 지도

1차 산업 5종 (확정)

게임의 채취 콘텐츠는 농사 · 벌목 · 낚시 · 채굴 · 사냥 5종이다. 각 산업은 서로 다른 고유 축을 하나씩 갖는다 — 스킨만 다른 반복이 되지 않게 하기 위함이다.

플레이어는 작업슬롯마다 산업을 하나씩 지정한다. 슬롯이 여러 개면 여러 산업이 동시에 돈다. 산업은 수치가 아니라 플레이어가 느끼는 심리로 구분한다 — "무엇이 나오는가"가 아니라 "왜 이걸 고르는가" 가 산업의 정의다.

산업 enum 심리 정의 투자 비유 고유 메커니즘 상세
낚시 Fishing ✅ 확실한 도파민 소액 잦은 당첨 없음 ⚠️ 낚시
농사 Farming ✅ 안정적인 수익 적금 파종 선택 농사
채굴 Mining ✅ 확실한 스노우볼 ⚠️ 복리 장기투자 깊이 누적 폐지(2026-09-27) 채굴
벌목 Logging ✅ 절제하면 지속되는 수익 ⚠️ 배당주 자원 고갈·재생 폐지(2026-09-27) 벌목
사냥 Hunting ✅ 도전 · 목표 지향 ⚠️ 적립식 목표 투자 사냥터 + 보스 사냥

5개 산업이 투자 성향 스펙트럼을 이룬다. 슬롯이 늘어날수록 "어떤 조합으로 채울까" 가 이 게임의 질문이 된다.

주기와 실패는 전 산업 공통이지만, 희귀도 분포는 2026-07-31부터 산업별로 다르게 둘 수 있다. 수치 차별화 수단은 회당 산출 + 희귀도 분포 둘이고, 여기에 고유 메커니즘이 더해진다. → 자원채취 1-1

작업슬롯 — 배치로 굴린다 (2026-07-29 확정)

플레이어는 작업슬롯(WorkStationSlot)을 여러 개 갖는다. 슬롯마다 산업 1개를 지정하고 캐릭터 1명을 배치하면 그 슬롯이 독립적으로 돌아간다.

항목 내용
슬롯당 캐릭터 1명 (확정)
슬롯당 산업 1개 (5종 중 선택)
슬롯당 산업 레벨 1개 — 해금된 레벨 중 선택 (2026-08-01)
최대 슬롯 수 시작 2 · 상한 8. 칸마다 UnlockTable 해금 — 골드 단독 + 선행 칸(계정 레벨 게이트 폐기 · 2026-09-30 #43) → 해금 4.1
동시 가동 슬롯 수만큼

산업을 하나만 고르게 하거나 요일로 유도하지 않는다. 슬롯이 늘어나면 결국 5종을 다 돌리게 되므로 "오늘 무엇을 고를까"라는 질문이 성립하지 않는다. → 작업슬롯

⚠️ 슬롯 수가 곧 재화 생성량의 배수이고, 여기에 캐릭터 속도까지 곱해진다. 슬롯마다 배치된 캐릭터가 다르므로 실효 채취 주기도 슬롯마다 다르다. 총량 = 접속 시간 × 슬롯 수 × 속도 배수 — 세 항이 전부 곱셈이다.

산업 레벨 — 배치할 때 함께 고른다 (2026-08-01 신설)

산업마다 레벨이 있고, 슬롯 배치는 (산업, 레벨, 캐릭터) 세 칸이 된다.

항목 내용
레벨의 단위 산업마다 따로 — 농사Lv · 벌목Lv · 낚시Lv · 채굴Lv · 사냥Lv
해금 계정 단위. 유저가 산업별로 어디까지 열었는지를 갖는다
선택 슬롯 단위. 해금된 레벨 중 아무거나 고른다 — 하위도 계속 고를 수 있다
산업당 레벨 수 5개 (2026-08-01)
효과 ① 판정 1회 필요 점수 ② 드롭 테이블 — 둘이 함께 바뀐다 (2026-08-01)
경험치 없다. 조건을 채우면 해금되고 선택지에 추가된다
해금 조건 개척 특성을 올린다 — 특성 레벨 = 열린 산업 레벨. 레벨마다 특성 포인트 1 + 계정 레벨 ≥ M (2026-10-02) → 특성 2.2
해금의 영속성 영구. 한 번 열리면 되돌아가지 않는다 (2026-08-01)

적성 조건을 뺀 이유와 잃는 것(가챠 동기 하나)은 해금 4.2에 있다.

✅ 캐릭터 획득 경로는 가챠로 확정됐다 (2026-09-02). 골드를 내고 캐릭터 풀을 뽑는다 → 캐릭터 5장. ⚠️ 다만 확정 지급(천장·상점·퀘스트) 보조 경로는 아직 없다. 가챠 천장은 여전히 미정이지만 산업 레벨 해금과는 무관해졌다.

이 결정이 만든 것 — 낚시터·사냥터·수종이 하나의 축으로 통합된다. 5개 산업이 각자 다른 이름으로 갖고 있던 "구간 선택"이 IndustryLevel 하나가 된다. 고유 메커니즘이 없던 낚시에 개입 지점이 생긴다.

산업 기존 축 산업 레벨 도입 후
낚시 낚시터 (1개) ✅ 레벨이 대신한다 — 개입 지점 생김
사냥 사냥터 (FieldTID) ✅ 레벨 = 사냥터
벌목 수종 (TreeTable) ✅ 레벨 = 수종. 자원 고갈은 직교 고갈 폐지(2026-09-27)
농사 파종 작물 ⚠️ 레벨과 겹친다 — 결정 필요
채굴 깊이 (자동 누적) ✅ 레벨 = 갱도. 깊이·하강은 폐지(2026-09-27)

판정 비용이 레벨별 점수가 된다 (2026-08-01)

전역 상수 하나였던 "판정 1회 비용"이 (산업, 레벨)의 테이블 값이 됐다. 상위 레벨일수록 한 판정이 오래 걸린다.

레벨 필요 점수 적성 1 적성 10
Lv1 30,000 30초 7.5초
Lv2 90,000 1분 30초 22.5초
Lv3 270,000 4분 30초 1분 7.5초
Lv4 810,000 13분 30초 3분 22.5초
Lv5 2,430,000 40분 30초 10분 7.5초
  • 점수는 작업속도로 쌓인다 — 적성 1 캐릭터가 1초 일하면 1000점(BaseWorkSpeedPermille).
  • 필요 점수는 지금 전 산업 공통이다. 행이 (산업, 레벨)이라 나중에 산업별로 벌릴 수 있다.

✅ 이 구조가 "왜 낮은 레벨을 고르는가"를 푼다. 상위 레벨은 시간당 판정 횟수가 1/3씩 줄어드니 하위는 박리다매, 상위는 저빈도 고가치로 갈린다. 하위 아이템의 지속 수요처(기획에 없다)에 기대지 않고도 하위 레벨이 살아남는다. → 산업 레벨 4.2

✅ 기준 채취주기 30초는 Lv1의 값이다. 전 산업 공통이다.

⚠️ 레벨은 재화 총량의 곱셈 항이 아니라 나눗셈 항이다. 상위 레벨은 시간당 산출이 1/3씩 줄고, 그 손실을 아이템 가치로 벌충하는 구조다. 벌충이 맞는지는 회당 산출량과 함께 정한다(T-009).

진행은 접속 중에만 (2026-07-29 확정)

접속 중에만 자란다. 오프라인 진행도, 접속 보상도 없다.

시점 동작
접속 모든 슬롯이 진행도 0에서 시작한다
접속 중 슬롯마다 독립적으로 채취가 진행된다
접속 종료 완성된 판정은 지급하고, 진행 중이던 조각은 버린다
비접속 아무 일도 일어나지 않는다

이 구조가 주는 것:

  • 총량이 접속 시간에 정비례하므로 시간당 산출만 정하면 경제 총량이 정해진다.
  • 한 번에 정산할 구간이 세션 길이로 묶인다.
  • 모든 속도 변경 구간을 서버가 관측한다 — 버프가 과거 구간에 소급되지 않는다.

⚠️ "접속 중" 판정이 곧 재화 생성 조건이다. TCP는 클라이언트가 죽어도 서버가 즉시 알지 못해, 노트북을 덮거나 랜선을 뽑으면 수십 초~수 분간 채취가 계속 쌓인다. 하트비트로 끊김을 빠르게 감지한다 — 주기 5초 · 무응답 판정 15초 (2026-08-04 확정). 판정 시간이 채취 기준 주기(30초)보다 짧아 부당 적립 구간이 판정 1회를 채우지 못한다. → 작업슬롯 3.3

PC 절전은 끊김으로 본다. 절전 진입 시 소켓이 닫히므로 그 구간은 진행하지 않는다.

보상 구조 — 한 층 (2026-07-30 확정)

실패(허탕)는 없다. 판정하면 반드시 무언가 나온다. 판정 1회 = 희귀도 롤 한 번이다 — 기본/특별 같은 층 분기를 두지 않는다.

층 내용
채취 보상 산업의 드롭 시트에서 아이템을 뽑는다. 가중치·아이템 모두 산업별 (2026-07-31)
상자 별도 롤. 확률은 레벨별 공통 · 특정 산업만 덮어쓴다. 레벨마다 나무·은·황금 3종 — 가치는 그 레벨 판정 기대값의 ×10 · ×30 · ×100 → 아이템 4.1

산업 개성의 수치 축은 고유 메커니즘 · 회당 산출 · 희귀도 분포가 담당한다.

보스 (신규 · 상세 미정)

보스 티켓 획득 경로는 미정이다. 모아서 플레이어가 원할 때 도전한다.

  • 채취 루프 바깥으로 나가는 유일한 통로이며, R3(후반 목표 부재)에 대한 첫 답이다.
  • 도전 시점은 플레이어가 정하고, 실시간 조작을 요구하지 않는다 (P1).
  • 상세는 미정. 구체화되면 별도 시스템 문서로 분리한다. → 사냥 4장

산업 · 아이템 분류 (코드값)

산업 축과 아이템 분류 축은 별개의 enum이다 (2026-08-10 · 일감 T-023).

enum 무엇 담는 값
GameData.IndustryType 산업 — 배치·적성·드롭·산업 레벨 1차 산업 5종만
GameData.ItemType 아이템 분류 — ItemTable.ItemType 산업 5종 + Misc·Special

값은 1:1로 유지한다 (농사 1 · 낚시 2 · 채굴 3 · 벌목 4 · 사냥 5). DropTID(산업×100000+…)와 DB(t_workstation_slot.industry 등)가 그 숫자에 묶여 있어서다 — 어긋나면 저장된 데이터가 통째로 다른 산업을 가리킨다. 서버 테스트가 이 제약을 지킨다.

둘 다 엑셀 Enum.xlsx가 원본이다. 코드에서 임의 추가 금지.

값 의미 상태
Farming = 1 농사 ✅
Fishing = 2 낚시 ✅
Mining = 3 채굴 (주석은 "채광" — 용어 통일 필요) ✅
Logging = 4 벌목 ✅
Hunting = 5 사냥 ✅
Misc = 6 기타 ✅
Special = 7 특수 ✅

1차 산업 5종이 1~5로 연속이고 Misc·Special이 뒤에 붙는다. t_user_workstation_slot.industry가 이 정수를 저장하므로 중간에 끼워 넣지 않는다(아래 규칙).

식별자 규칙 — DB에 저장되는 정수는 의미를 바꾸지 않는다

한 번 DB에 쓰인 식별자는 영원히 그 뜻이어야 한다. 엑셀을 고쳐도 이미 디스크에 적힌 정수는 아무도 다시 쓰지 않기 때문이다.

저장되는 정수 값을 정하는 주체 위험 규칙
enum (ItemType·IndustryType·CurrencyType) 엑셀 EID 컬럼 중간에 끼우면 뒤가 전부 밀린다 뒤에만 추가한다
테이블 TID (ItemTID·CharacterTID) 엑셀에 직접 적는다 밀리지는 않는다. 대신 폐기한 번호를 되쓰면 옛 DB 행이 다른 것으로 둔갑 번호를 재사용하지 않는다
참조 전용 (GlobalRarity — DB 컬럼 없음) 엑셀 없음 자유롭게 바꿔도 된다
DB 발급 PK (t_character.character_id) DB (auto increment) 없음 —
  • .bytes는 이 규칙과 무관하다. 엑셀에서 매번 다시 생성되고 서버·클라가 같이 갱신되므로 번호가 바뀌어도 어긋날 수 없다. 문제는 DB와 패킷 와이어다.
  • 패킷은 클라·서버 버전이 갈릴 수 있을 때만 위험하다. 구버전 클라가 보낸 5를 신버전 서버가 다른 뜻으로 읽는다. 강제 업데이트가 보장되면 무시해도 된다.

⚠️ 두 개의 사각지대가 있다.

  • DataLog의 JSON은 enum을 이름으로 덤프하므로 번호를 바꿔도 diff에 아무것도 안 나온다. 안전한 경우에도 변경 사실 자체가 리뷰에서 보이지 않는다.
  • Ref 무결성 검사는 엑셀 안에서 엑셀만 검사한다. DB에 살아 있는 TID를 시트에서 지워도 검증은 통과하고, DB에만 참조 불가능한 고아가 남는다.

희귀도 (코드 확정값)

GameData.GlobalRarity — Common → Uncommon → Rare → Epic → Legendary → Mythic 6단계. 아이템 전용이 아니라 가챠 등 전역에서 쓰는 등급 축이다. 등급별 색상까지 Enum.xlsx에 정의되어 있다. 드랍 확률은 미정.

희귀도가 아이템 분류의 유일한 등급 축이다. 개체 변량(크기 등 개체별 수치 롤)은 두지 않는다. "더 큰 것 / 더 좋은 것"은 희귀도가 높은 별도 ItemTID 로 만든다. 예: 붕어(Common) / 월척 붕어(Rare) / 대물 붕어(Epic).

이 결정으로 모든 아이템이 정상 스택되고, 정산이 단순 집계로 끝난다.

"상태 등급(상/중/하)" 같은 개체 속성도 같은 이유로 두지 않는다. 개체마다 값이 달라지는 순간 스택이 깨지고 정산이 단순 집계가 아니게 되며, 인벤토리·UI·거래가 전부 개체 단위로 두꺼워진다. 얻는 것(등급 표현)에 비해 치르는 값이 크다.

희귀도 가중치는 산업 시트가 직접 갖는다 (2026-07-31 확정)

공통 분포 테이블을 두지 않는다. 가중치는 각 산업의 드롭 시트 (<산업>BasicTable의 Weight 컬럼)에 있고, 산업마다 분포가 달라도 된다.

쓸 수 있는 것 내용
낚시의 차별화 낚시만 상위 등급 비중을 높여 "확실한 도파민"을 수치로 만들 수 있다
채굴의 깊이 보상 깊이가 희귀도를 올리는 설계가 가능하다 → 채굴 1장
수치 차별화 축 회당 산출 + 희귀도 분포 두 개

⚠️ 대가는 밸런싱 비용이다. 5개 분포를 따로 관리하므로 확률을 조정하려면 5개 시트를 함께 봐야 하고, 의도치 않게 어긋나기 쉽다. 산업마다 다르게 두는 것은 의도가 있을 때만 한다 — 기본은 같은 값으로 시작한다.


5. 확정 / 미확정 현황

Agent는 "미확정" 항목을 임의로 결정하지 않는다. 구현이 필요하면 사용자에게 확인한다.

영역 상태 비고
코어 루프 5단계 ✅ 확정
1차 산업 5종 (농사·벌목·낚시·채굴·사냥) ✅ 확정 IndustryType 1~5
작업슬롯 — 슬롯당 캐릭터 1명 · 산업 1개 ✅ 확정 2026-07-29. → 작업슬롯
슬롯 여러 개 동시 가동 ✅ 확정 최대 슬롯 수는 해금으로 증가 → 해금 4.1
산업 레벨 — 산업마다 따로 ✅ 확정 2026-08-01. 합산하지 않는다 → 산업 레벨
산업 레벨 — 해금은 계정 · 선택은 슬롯 ✅ 확정 2026-08-01. 배치할 때 (산업, 레벨, 캐릭터)를 고른다
산업 레벨 — 경험치 없음 ✅ 확정 2026-08-01. 조건 충족이 곧 해금. 진행 바를 두지 않는다
산업 레벨 — 효과는 필요 점수 + 드롭 테이블 ✅ 확정 2026-08-01. 상위 레벨은 판정 1회가 오래 걸린다 → 산업 레벨 2.4
산업 레벨 — 판정 비용 = 레벨별 점수 ✅ 확정 2026-08-01. Lv1 30,000에서 레벨당 ×3 (Lv5 2,430,000). 점수는 작업속도로 쌓인다
산업 레벨 — 필요 점수의 산업 차등 ✅ 확정(당분간 없음) 2026-08-01. 5종 공통값으로 시작. 행이 (산업, 레벨)이라 나중에 벌릴 수 있다
산업당 레벨 개수 ✅ 확정 2026-08-01. 5개
산업 레벨 — 하위 레벨도 계속 선택 가능 ✅ 확정 2026-08-01. 상위가 하위를 대체하지 않아야 한다
산업 레벨 — 레벨 드롭 구성 ✅ 확정 2026-10-01. 자기 자원 6종. 하위 자원은 섞지 않는다 → 산업 레벨 4.3
산업 레벨 해금 = 개척 특성 레벨 ✅ 확정 2026-10-02. 5개 산업 Lv1은 처음부터 열림(기본 레벨 1) · Lv2~5는 개척을 올려 연다. 기록은 t_user_trait · 서버 구현 완료(T-108) → 특성 2.2
산업 레벨 해금은 영구 ✅ 확정 2026-08-01. 재검사 없음. 캐릭터를 방출해도 열린 레벨은 유지 → 3.2
산업 레벨 해금 요구치 M ⚠️ 테스트값 Lv2~5 = 계정 Lv 5·15·30·50(UserTraitLevelTable). 실측 뒤 확정
계정 경험치 = 캐릭터 경험치 전량 · 곡선 = 캐릭터 × 8 ✅ 확정 · 곡선은 테스트값 2026-09-19. 레벨마다 특성 포인트 1(2026-10-02 — Lv100까지 99점) → 특성 3장
특성 = 레벨형 · 4종 ✅ 확정 · 수치는 테스트값 2026-10-02(T-108). 특성마다 기본 → 최대 레벨, 레벨마다 계정 레벨 조건. 산업 개척 · 산업 속도(+5%/Lv) · 공통 산출량(+2%/Lv) · 산업 산출량(+5%/Lv) — 합계 130점이라 다 찍지 못한다. 최대 레벨을 늘려 업데이트한다 · 클라 ❌ 미구현(T-108) → 특성 2장
산출량 = 100% + 공통 + 그 산업 ✅ 확정 2026-10-02. 판정마다 같은 아이템을 정수부만큼, 소수부는 확률로 1개 더(120% = 1개 + 20% 확률로 1개 더). 자원에만 — 상자·경험치는 늘지 않는다. 특성으로만 오른다 → 특성 2.3
하위 레벨의 존속 근거 ✅ 확정 2026-08-01. 상위가 느려진 것만으로 하위가 살아남는다 → 산업 레벨 4.2
하위 레벨 아이템의 수요처 ❌ 미작성 레벨 시스템의 전제 조건은 아니다. 있으면 좋다
농사 파종 vs 산업 레벨 ❌ 미결 둘이 같은 일을 한다 → 산업 레벨 4.2
채굴 깊이 vs 산업 레벨 ✅ 해소 2026-09-27. 깊이를 두지 않는다 — 레벨이 곧 갱도다(A안). 하강 메커니즘 폐지 → 산업 레벨 5.3
채취 판정 = 서버 권위 · 실시간 푸시 ✅ 확정 클라 신고 없음. 접속 중 서버가 밀어 준다
요일·주말 보너스 없음 ✅ 확정 2026-07-29. 효율배수에 요일 항이 없다
기준 채취주기 = 전 산업 공통 30초 ✅ 확정 Lv1의 값(2026-08-01). 산업별로 다르지 않고, 캐릭터 속도로 실효 주기가 갈린다
캐릭터가 채취 속도를 바꾼다 ✅ 확정 2026-07-29. 산출량 배수가 아니라 주기에 작용한다
캐릭터는 판정 1회의 양·질에 관여하지 않는다 ✅ 확정 2026-09-20. 수량 보너스(+N)도 상위 희귀도 확률 가중도 두지 않는다. 좋은 캐릭터는 판정 횟수로 이미 보상받는다(적성 1~9 = 실효 주기) → 자원채취 2.1
속도 보정 = 가산 기본 · 승산 예외 ✅ 확정 2026-07-30. 적성 × (1 + Σ가산) × Π승산 → 작업슬롯 3.4
적성 0 = 배치 불가 ✅ 확정 2026-08-01. WorkSpeedTable TID 0 = 0
캐릭터 장비 부위 = 무기1·장신구2·보석1 ✅ 확정 2026-07-30. 장비 효과는 가산으로 붙는다. 2026-09-17 서버 구현 — 종류(EquipKind)와 칸(EquipSlot)을 분리, 대상 산업 지정 가산, 장비는 적성을 바꾸지 않는다 (T-002). 획득 = 장비 뽑기, 무기·장신구·보석 풀을 따로 둔다(2026-09-19 · T-067) → 캐릭터 5.1.1
장비 인챈트 — 개체마다 등급 하나 + 장비 등급별 칸 ✅ 확정 · 수치는 테스트값 2026-10-01 개편(#46). 칸 수 = 장비 등급(일반·고급 1 · 희귀·영웅 2 · 전설·신화 3) · 인챈트 등급 일반~신화(GlobalRarity 재사용)는 장비 하나에 하나이고 모든 칸이 그 등급의 고정 수치를 쓴다 · 효과는 속도 가산 · 캐릭터 경험치 둘뿐(판정마다 경험치는 늘리지만 획득 아이템의 양·질에는 관여하지 않는다 → 자원채취 2.1) · 큐브 2종(A 기본 · B 상승 ×1.25 + 이전 값 유지 — 이전·새 값 중 고른다 · ❌ 미구현 T-127 · #53) — 첫 사용은 일반, 이후 한 단계씩 상승 판정 + 칸 전부 다시 뽑기, 실패해도 소모 · 착용 중에는 큐브 불가 · 상자에서 얻는다. 확률·수치는 테스트값 · 서버 ✅ · 클라 UI ❌ → 캐릭터 1.4
진행은 접속 중에만 ✅ 확정 2026-07-29. 오프라인 진행도, 접속 보상도 없다. P2 → 1장
접속 시 진행도 0에서 시작 · 종료 시 조각 폐기 ✅ 확정 2026-07-29
PC 절전 = 끊김 ✅ 확정 2026-07-29
부스트는 주기에 작용한다 ✅ 확정 2026-07-29. 캐릭터 스탯·버프가 실효 주기를 바꾼다
하트비트로 끊김 감지 ✅ 확정 2026-08-04. 주기 5초 · 무응답 판정 15초 — 채취 주기(30초)보다 짧아 부당 적립이 판정 1회를 못 채운다. 🔒 두 값은 한 쌍이다 — 핑 주기 ≤ 판정 시간 ÷ 3(2026-09-02 규칙화, 이슈 #19에서 두 번 어겼다) → 작업슬롯 3.3
판정 횟수 단위 시스템의 속도 대응 ✅ 해소 2026-09-27. 판정 횟수를 단위로 쓰는 시스템을 두지 않는다 — 채굴 하강·벌목 고갈 폐지. 속도가 바꾸는 것은 판정 횟수뿐이다 (아래 · T-011)
슬롯 연출 = 방치형 루프 · 전 산업 공통 ✅ 확정 2026-09-27 · 2026-10-04 갱신. 캐릭터는 오른쪽에서 제자리 달리기, 배경이 흐르고 대상이 왼쪽에서 다가온다 → 공격(배경 멈춤) → 처치 → 다시 달리기, 무한 반복. 처치 1회 = 판정 1회. 모션 길이는 고정이고 실효 속도는 때리는 횟수를 줄인다(마지막 타격 = 판정) → 게임UI 2.5
채굴·벌목 심리 정의 재검토 ❌ 미결 2026-09-27 고유 메커니즘(깊이·고갈)이 빠져 "스노우볼"·"절제"의 근거가 사라졌다. 산업 차별화를 자원 쓰임새로 옮기는 제안이 이슈 #42에서 동의를 기다린다 — 결정되면 함께 정리
실패(허탕) 폐기 — 전 산업 ✅ 확정 판정하면 반드시 보상이 나온다
산업 = 심리 정의로 구분 ✅ 확정 도파민/안정/스노우볼/절제/도전 (사냥만 ⚠️)
채취 보상 = 한 층 ✅ 확정 2026-07-30. 판정 1회 = 희귀도 롤 한 번. 상자는 별도 롤(2026-10-02)
사냥 = 사냥터 분리 + 사냥터별 드랍 ✅ 확정 낚시터 1개와 대비
보스 티켓 획득 경로 ❌ 미결 ⚠️ 정해진 경로가 없다
희귀도 가중치 = 산업 시트가 직접 갖는다 ✅ 확정 2026-07-31. <산업>BasicTable의 Weight. 분포를 산업마다 다르게 둘 수 있다
개체 변량 없음 · 희귀도로 분류 ✅ 확정 등급은 별도 ItemTID. 전부 스택 가능
상자 = 산업 레벨별 15종 · 자원과 별도 롤 ✅ 확정 · 수치는 테스트값 2026-10-02. 나무·은·황금 × Lv1~5. 확률은 레벨별 공통(CommonRewardTable) · 특정 산업만 그 레벨을 통째로 덮어쓴다(CommonRewardOverrideTable — 지금 0행). 모든 레벨에서 세 등급이 다 나온다(판정당 2% · 0.3% · 0.03%). 가치 = 그 레벨 판정 기대값 × 10 · 30 · 100. 골드·그 레벨 자원·장비·상자 전용 아이템·인챈트 큐브를 준다 · 캐릭터 없음 · 최대 50개, 채취로 넘치는 몫은 버린다 → 아이템 4.1
ItemType / IndustryType / GlobalRarity enum ✅ 확정 엑셀이 원본. 산업 축과 아이템 분류 축은 별개(2026-08-10 · 값은 1:1) → 4장
승패 조건 없음 · 방치 기반 ✅ 확정
낚시 — 루프 전체 ✅ 확정 확률값만 미정 → 낚시
산업별 고유 축(정체성) ⚠️ 제안 차별화 수단은 고유 메커니즘 · 회당 산출 · 희귀도 분포
설계 원칙 P3 ✅ 확정 2026-08-01. "하루에 한 번, 들여다볼 이유는 있고 놓쳐도 손해는 없다" → 1장
하루 리듬 장치 = 액티브 2회 + 일일 퀘스트 ✅ 확정 2026-08-01. streak·이월·배지 금지
캐릭터 — 적성이 곧 작업속도 · 장비 4칸 ✅ 확정 2026-08-01 문서화 → 캐릭터
캐릭터 획득 경로 = 가챠 ✅ 확정 2026-09-02. 골드를 내고 캐릭터 풀을 뽑는다(T-026·T-027) → 캐릭터 5장
캐릭터 등급 = GlobalRarity 재사용 ✅ 확정 2026-09-02. 아이템과 같은 6단계 축. 등급이 곧 최고 적성의 상한이다
캐릭터 중복 = 개체를 늘린다 · 정원 없음 ✅ 확정 2026-09-02. 조각·강화로 바꾸지 않는다 → 캐릭터 1.1
캐릭터 경험치 = 판정 1회마다 · 만렙 100 · 곡선 ✅ 확정 2026-09-13. IndustryLevelTable.ExpPerJudge(Lv1 1 → Lv5 81) · CharacterLevelTable.RequiredExp(Lv2 10 → 레벨당 ×1.2). 수치는 테스트용 · 서버 ✅ 구현 · 클라 반영 ⏸ → 캐릭터 5.2
캐릭터 레벨의 효과 = 작업속도 가산 ✅ 확정 2026-10-06 (2026-09-17 적성 포인트를 대체 · 이슈 #35). 레벨이 오르면 자동으로 빨라진다 — CharacterLevelTable.SpeedAddPermille, 초안 레벨당 +1%. 적성은 고정. 서버·엑셀 ✅ 구현(T-003) → 캐릭터 5.4
가챠 확정 지급(천장·상점·퀘스트) ❌ 미정 산업 레벨 해금과는 무관해졌다(적성 조건 폐지) → 캐릭터 5.1
계정(섬주인) 레벨 · 특성 ✅ 확정 2026-08-01. 계정 경험치는 작업으로만 오른다
액티브 = 하루 2회 · 1시간 · 조건 없음 ✅ 확정 2026-08-01
시작 슬롯 2 · 상한 8 · 칸마다 UnlockTable 해금 ✅ 확정 2026-09-14. 골드 + 선행 칸. 2026-09-30 계정 레벨 요구치 폐기 — 골드 단독 (#43) → 해금 4.1
해금 시스템 — 한 표 · 해금 행동 · 영구 · 전부 보임 ✅ 확정 2026-09-14 · 09-16 재검토: Name 표시명 · GrantUnlock · 로드 검증 · 지불 컬럼 OR · 상점 확장권 폐지. 서버 ✅ 작업슬롯 첫 적용(2026-09-16, T-038) · 클라 UI T-039 → 해금
해금 — 퀘스트 조건 · OR 조합 ❌ 보류 → 해금 8장
슬롯 수 대비 경제 총량 ❌ 미작성 슬롯이 곧 faucet 배수다. 거래와 함께 정해야 한다
핵심 재미 = 썩은 무인도 개발 ✅ 확정 2026-08-01. R1 → 1장
우편 = 운영 지급 + 넘침 보관 ✅ 확정 2026-09-22. 안 받은 우편은 만료 없음 · 받은 우편 7일 뒤 삭제 · 수령은 원자적 · 우편함 상한 100통 · 골드 첨부는 우편만 예외 · 서버 ✅ 운영 우편(T-081) · 넘침 보관(T-082) · 클라 ✅ 우편함 화면(T-083 · 2026-09-26) → 우편
후반 목표 = 섬 가치 랭킹(종합 개발도) + 구간 리그 ✅ 확정 2026-08-01. R3. 가중치 미정
시즌 리셋 ❌ 두지 않는다 2026-08-01. 캐릭터 애착·누적 성장과 충돌
faucet = 채취 하나뿐 ✅ 확정 2026-08-01. 퀘스트는 골드를 주지 않는다
즉시 판매 → 골드 · BasePrice 필수 ✅ 확정 2026-08-01. 거래소 하한가를 겸한다
즉시 판매가 = BasePrice의 100% ✅ 확정 2026-09-02. 서버 상수 1곳. 서버 구현 완료(T-028)
거래 방식 = D안(자유 거래 + 가격 밴드) ✅ 확정 2026-08-01
sink 3종 = 수수료 · 슬롯 확장권 · 가챠 비용(골드) ✅ 확정 2026-09-02. 티켓 대신 골드를 직접 받는다 → 거래 3.2
상점 = 골드 상점 ✅ 확정 2026-08-01. 현금 상품 없음
유료 재화 없음 — 다이아 폐지 ✅ 확정 2026-09-28. 게임 안 화폐는 골드 하나. 쓰는 곳이 0일 때 걷어냈다 (#41)
캐릭터 종족 = 외형 + 적성 분포만 ✅ 확정 2026-08-01. 상성·전용 스킬 금지. ⏸ Race 컬럼 투입은 보류(2026-08-02) → 캐릭터 4장
일반 캐릭터 1001~1030 30종 입력 ✅ 확정 2026-09-02. 등급별 6/8/7/5/3/1종. 1001=시작 · 1030=만능형 Mythic. 수치는 테스트용
시작 캐릭터 = 1001 램볼 (전 산업 적성 1) ✅ 확정 2026-08-02. 적성 0이면 그 산업이 시작부터 잠긴다 → 캐릭터 3.3
CharacterTID 1은 영구 결번 ✅ 확정 2026-08-02. CharacterTable은 1001~1030 30행. 번호를 되쓰지 않는다
희귀도 분포 확률값 ❌ 미작성 최우선. 산업별로 두므로 5개 시트를 정해야 한다. 기본은 같은 값으로 시작
산업별 회당 산출 ❌ 미작성 희귀도 분포와 함께 두 개 남은 수치 차별화 수단
보스 시스템 전체 ❌ 미작성 전투 형태·보상·난이도 → 사냥 4.3
낚시의 차별화 수단 ⚠️ 후보 희귀도 분포를 낚시만 상위로 기울일 수 있다. 수치 미정
낚시의 개입 지점 ✅ 확정 2026-08-01. 산업 레벨이 낚시터를 대신한다 → 산업 레벨 4.1
농사 파종 구조 재해석 ❌ 미결 30초 주기와 "심고 기다린다"가 충돌 → 농사 2
도달 목표 타임라인 (첫 세션~10주) ✅ 확정 2026-10-02. 24시간 상시 접속 · 첫 세션 1시간 · 최종 도달 약 10주 · 앞이 짧고 뒤가 긴 곡선. 모든 수치를 여기서 역산한다 → 진행 및 성장 2장
온보딩 남은 질문 ❌ 미결 거래소 개방 · 튜토리얼 (산업은 Lv1 전부 열림 · 상위는 개척 특성) → 진행 및 성장 2.7
성장 곡선 · 해금 비용 · 가챠 비용 ⚠️ 테스트값 도달 목표에 아직 맞추지 않았다 — 타임라인에서 역산한다 (T-012)
섬 가치 랭킹 가중치 ❌ 미정 기준은 확정, 식이 없다
퀘스트 상세 ❌ 미작성 개수·조건·보상 (역할은 확정)
거래 수수료율 · 가격 밴드 배수 · 상점 가격 ❌ 미작성 구조는 확정, 수치가 전부 미정
BasePrice 156종 값 ⚠️ 임시값 2026-09-02 입력. 단조 증가는 구조적으로 보장. 산업 간 시간당 수익 조정이 남았다(T-018)
수익화 모델(BM) ⚠️ 방향만 유료 재화 없음(2026-09-28). 과금은 게임 밖 — DLC + 스팀 마켓 수수료(TBH 모델). 무엇을 팔지는 미정
스토리 · 세계관 · 사운드 ❌ 미작성 컨셉 한 줄(섬)은 확정. 그 이상은 두지 않는다

✅ 속도 가변과 "판정 횟수" 단위 설계의 충돌 — 해소 (2026-09-27 · T-011)

채굴 DescendCycles(N판정마다 하강)·벌목 DepletionPerCut(판정마다 고갈)이 "판정 1회당"으로 설계돼 있어, 빠른 캐릭터가 진행 구조 자체를 앞당기는 문제가 있었다.

두 메커니즘을 폐지했다. 전 산업이 같은 방치형 루프(처치 1회 = 판정 1회)를 따르고, 속도가 바꾸는 것은 판정 횟수(= 산출량)뿐이다. 판정 횟수에 걸린 상태값이 없으니 충돌할 것도 없다. → 게임UI 2.5

문서 곳곳의 "하루 2,880회"는 여전히 기준 속도(1.0배)·Lv1 기준이라는 단서가 붙는다.


6. 개발 시 지켜야 할 접점

기획을 코드로 옮길 때의 고정 규칙이다. 상세는 GameDesign/CLAUDE.md 참조.

규칙 내용
데이터 원본 밸런스 수치·테이블은 코드 상수가 아니라 GameDesign/Excel/*.xlsx에 넣는다
식별자 DB에 저장되는 정수는 의미를 재할당하지 않는다. enum은 뒤에만 추가, TID는 폐기해도 되쓰지 않는다 (4장)
DB 이름 소유를 이름에 드러낸다 — 유저 소유는 t_user_*, 캐릭터 소유는 t_character / t_character_*
생성물 금지 Server/GameData, Server/Shared/Data, GameDesign/DataLog, Unity 미러는 직접 수정 금지
갱신 절차 엑셀 수정 후 GameDesign/generate-tables.ps1 실행, 엑셀+생성물을 같은 커밋에
권위 자원·재화·거래는 서버 권위. 클라 계산 결과를 신뢰하지 않는다 (P4·거래 경쟁 때문)
진행 조건 접속 중에만 진행한다. 로그인 시 진행도를 0으로 리셋하고, 오프라인 구간은 정산하지 않는다 (P2)
진행도 표현 시간이 아니라 작업량으로 누적한다. 속도가 바뀌어도 자투리를 재환산할 필요가 없다
속도 변경 캐릭터·버프로 속도를 바꾸기 직전에 반드시 정산한다. 안 그러면 이전 구간에 소급된다
문서 이름 폴더는 영문 소문자 kebab-case, 문서(.md)명은 한글. Excel·DataLog는 코드가 경로를 참조하므로 예외

7. 문서 지도

모든 기획 문서는 GameDesign/design/ 아래에 있다.

GameDesign/
├─ design/
│  ├─ 게임기획코어.md          ← 이 문서 (최상위 · 단일 진입점)
│  ├─ 기획평가.md              ← 설계 평가·리스크
│  ├─ workslot/README.md       ← 배치 구조 (채취의 전제)
│  ├─ gathering/README.md      ← 시스템별 상세 기획안
│  │  ├─ 산업레벨.md           ← 슬롯에 배치할 때 고르는 산업 × 레벨
│  │  ├─ farming/README.md     ← 1차 산업 5종
│  │  ├─ logging/README.md
│  │  ├─ fishing/README.md
│  │  ├─ mining/README.md
│  │  └─ hunting/README.md
│  ├─ character/README.md      ← 슬롯에 배치되는 일꾼 (적성·장비·계정 레벨)
│  ├─ unlock/README.md         ← 콘텐츠를 여는 규칙 (UnlockTable · 해금 행동)
│  ├─ quest/README.md
│  ├─ trait/README.md
│  ├─ item/README.md
│  ├─ trade/README.md
│  ├─ progression/README.md
│  └─ ui/README.md
├─ Excel/                    ← 게임 데이터 원본 (.xlsx)
└─ DataLog/                  ← 생성된 .bytes의 JSON 덤프 (리뷰용)

Excel·DataLog는 Server/ExcelGenerator/Program.cs가 경로를 직접 참조하므로 이름을 바꾸지 않는다.

문서 역할
게임기획코어.md (이 문서) 최상위 진입점 — 정체성·루프·시스템 지도·확정 현황
기획평가.md 기획 전체에 대한 평가·리스크 정리
<시스템>/README.md 시스템별 상세 기획안
gathering/<산업>/README.md 1차 산업 5종별 기본 기획안
../DataLog/*.json 생성된 .bytes의 JSON 덤프 (데이터 diff 리뷰용)

Window Simulator · 게임기획코어 · 2026-08-14