04. 아이템 (Item)
상위 문서:
게임기획코어.md최종 업데이트: 2026-08-02 · 상태: 실 데이터 156종 입력 ·BasePrice필수 확정 · 분류 정책 미정 바뀌면 갱신:거래·게임기획코어·기획평가·농사·벌목·사냥자원채취
ItemTable이 엑셀→.bytes 파이프라인으로 돌고 있고, 2026-07-31에 더미가 실 데이터로 교체됐다.
1. 확정 사항
1.1 코드에 존재하는 스키마
Server/GameData/Tables/ItemTable.cs (엑셀 Item.xlsx에서 생성):
| 컬럼 | 타입 | 비고 |
|---|---|---|
ItemTID |
int |
아이템 고유 ID |
Name |
string |
|
ItemType |
ItemType |
산업 분류 |
GlobalRarity |
GlobalRarity |
희귀도 (구 ItemRarity — 2026-08-02 개명) |
MaxStack |
int |
스택 상한. 현재 전 아이템 9999 |
Description |
string |
기획 메모 — 로직에서 읽지 않는다 (오타 수정됨) |
1.2 확정 enum
ItemType—Farming=1/Fishing=2/Mining=3/Logging=4/Hunting=5/Misc=6/Special=7GlobalRarity—Common/Uncommon/Rare/Epic/Legendary/Mythic(색상 정의 포함). 구ItemRarity. 아이템 전용이 아니라 가챠 등 전역 등급 축이라 2026-08-02 개명 (프로토콜EGlobalRarity도 같은 값으로 정렬됨)
⚠️
Hunting은 값5로 중간에 삽입됐다 —Misc·Special이 한 칸씩 밀렸다. 기획 문서 일부가 "값 7로 뒤에 추가"라고 적고 있었으나 실제 구현은 5다. 지금 되돌리면t_user_workstation_slot.industry에 저장된 값이 어긋나므로 그대로 둔다. "enum은 뒤에만 추가한다"는 규칙은 앞으로에만 적용된다.
1.3 실 아이템 데이터 (2026-07-31 · 2026-08-01 레벨 확장)
현재 ItemTable은 156종이다. 더미 A~F는 제거됐다.
| 구분 | 종수 | 계산 |
|---|---|---|
| 산업 자원 | 150종 | 5산업 × 5레벨 × 희귀도 6등급 |
| 가챠 전용 | 6종 | Special · 테스트값 (2026-08-02) |
| 합계 | 156종 |
⚠️ 2026-08-01에 30종 → 150종이 됐다. 산업 레벨이 도입되면서 레벨마다 6종이 붙었다. 이 문서가 오래 "30종"으로 남아 있었다(2026-08-02 정정).
TID 규칙 — 산업 대역 + 레벨당 10칸 + 희귀도 순 1~6
| 레벨 | 낚시 | 농사 | 벌목 | 채굴 | 사냥 |
|---|---|---|---|---|---|
| Lv1 | 10001~10006 |
20001~ |
30001~ |
40001~ |
50001~ |
| Lv2 | 10011~10016 |
20011~ |
30011~ |
40011~ |
50011~ |
| Lv3 | 10021~10026 |
20021~ |
30021~ |
40021~ |
50021~ |
| Lv4 | 10031~10036 |
20031~ |
30031~ |
40031~ |
50031~ |
| Lv5 | 10041~10046 |
20041~ |
30041~ |
40041~ |
50041~ |
Lv1 아이템 이름 (Lv2~5는 Item.xlsx 참조)
| 산업 | Common → Mythic |
|---|---|
| 낚시 | 붕어 · 잉어 · 월척 붕어 · 향어 · 대물 잉어 · 전설의 잉어 |
| 농사 | 밀 · 감자 · 옥수수 · 인삼 · 변종 인삼 · 태초의 씨앗 |
| 벌목 | 잡목 · 소나무 목재 · 참나무 목재 · 흑단 목재 · 고급 원목 · 세계수 가지 |
| 채굴 | 돌덩어리 · 구리 광석 · 은광석 · 금광석 · 보석 원석 · 심연의 원석 |
| 사냥 | 질긴 고기 · 토끼 가죽 · 늑대 가죽 · 곰 모피 · 거대한 뿔 · 마수의 심장 |
| 가챠 전용 | 100001~100006 — 유리 구슬 · 호박 구슬 · 진주 구슬 · 오팔 구슬 · 용안 구슬 · 창세의 구슬 |
- 대역은 산업당 10000개다. 레벨당 10칸 중 6칸만 쓰므로 희귀도가 늘어도 대역이 밀리지 않는다. 레벨이 늘면 자기 대역 뒤로 이어 붙인다.
- 아이템
Description의 레벨 표기는IndustryLevelTable.Name과 같아야 한다 (예:저수지(Lv2)). 어긋나도 로직은 멀쩡하므로 사람이 맞춰야 하는 규칙이다. - 결번:
1~6(구 더미) ·1001~1006(구 낚시). 다시 쓰지 않는다.
1.3 기획 확정 내용
채취로 얻은 아이템으로 특성·스킬을 획득·성장시킨다❌ 폐지 (2026-08-01). 특성은 계정 레벨 포인트로 찍는다 → 특성.- 모든 아이템은 거래소 등록이 가능하다.
아이템의 출구 3개 (2026-08-01 확정)
특성 재료라는 소비처가 없어진 대신, 아이템은 세 곳으로 나간다.
| 출구 | 대상 | 상세 |
|---|---|---|
| 즉시 판매 → 골드 | 주로 Common·Uncommon | 거래 3.1 |
| 거래소 등록 | 주로 Rare~Mythic | 거래 2장 |
| 캐릭터에게 먹이기 | 전 등급 (자원 sink) | 캐릭터 3.1 |
낮은 등급이 죽은 재고가 되지 않는 것이 핵심이다. 거래소만 있으면 Common은 아무도 사지 않아 인벤토리만 채운다.
1.4 채취 보상 3층 구조 (2026-07-27 확정)
채취 판정 1회가 만들어내는 아이템은 세 경로에서 나온다. → 자원채취 2.4
| 층 | 비율 | 아이템 성격 | 테이블 |
|---|---|---|---|
| 채취 보상 | 전량 | 산업 자원. 가중치·아이템 모두 산업별 | <산업>BasicTable ✅ 생성됨 |
| ❌ | 폐지 (2026-07-30). 대물·보석·변종 작물·보스 티켓의 경로 미정 | — | |
| 공통 보상 | 별도 롤 | 가챠 티켓 · 고유 아이템 | CommonRewardTable ❌ 미작성 |
- 티켓·고유 아이템은 전 산업 공통이다. 특정 산업에 몰아주지 않는다. 채취 보상과 무관하게 매 판정마다 별도로 롤한다.
- 산업별 테이블에 중복 정의하면 확률 조정 시 5곳을 고쳐야 하고 산업 간 편차가 생긴다.
폐지 (2026-07-31). 공통 분포 테이블을 두지 않는다 — 가중치는 각 산업의 드롭 시트가 직접 갖는다. → 자원채취 2.4RarityWeightTable(전 산업 공통 분포) +<산업>BasicTable(매핑만)
각 산업이 레벨마다 희귀도 6단계를 전부 채운다.
5산업 × 5레벨 × 6등급 = 150종이 기본 자원이며, 2026-08-01에 전부 입력됐다 (1.3).
2. 아이템 역할 분류 (제안)
⚠️ 제안이다. 현재
ItemType은 산업 출처만 나타내고 용도를 나타내지 않는다.
| 역할 | 설명 | 예 |
|---|---|---|
| 재료 | 특성 해금·레벨업에 소모 | 산업별 기본 자원 |
| 고유 아이템 | 수집·거래 대상. 소모되지 않음 | 희귀 산출물 |
| 티켓 | 가챠·이벤트 재화 | 가챠 티켓 |
| 입장권 | 콘텐츠 도전에 소모 | 보스 티켓 (사냥 전용, ⚠️ 획득 경로 미정) |
| 화폐 | 거래소 결제 수단 | 돈 |
보스 티켓은 가챠 티켓과 다른 축이다. 가챠는 확률 뽑기, 보스 티켓은 콘텐츠 입장권이다.
ItemUsage를 도입한다면 이 둘을 구분해야 한다. 거래 가능 여부도 갈릴 수 있다 (보스 티켓이 거래되면 사냥을 안 하고도 보스에 갈 수 있다 — 의도인지 확인 필요).
현재 스키마에는 이 축이 없다.
ItemUsage컬럼을 추가하거나,Misc/Special을 용도 표기로 전용하는 두 가지 방법이 있다. 전자를 권장 — 후자는 "출처"와 "용도"를 한 컬럼에 섞는다.
스택 정책
MaxStack이 이미 존재한다. 역할별 기준을 세운다.
| 역할 | 스택 | 이유 |
|---|---|---|
| 재료 | 큰 값 (1,000~) | 방치로 대량 축적됨 |
| 고유 아이템 | 1 | 개체 식별 필요 시 |
| 티켓 | 중간 | |
| 화폐 | 스택 개념 없음 (별도 필드) |
✅ 개체 변량 없음 (2026-07-27 확정)
모든 아이템은 개체별 수치 롤을 갖지 않는다. 같은 ItemTID면 완전히 동일하다.
- 한때 검토됐던 물고기 크기(개체마다 다른 수치)는 폐기됐다.
- 등급 차이는 희귀도가 다른 별도
ItemTID로 표현한다. 예:붕어(Common)/월척 붕어(Rare)/대물 붕어(Epic) - 따라서 모든 아이템이
MaxStack대로 정상 스택된다. 개체 인스턴스 테이블이 필요 없다.
| 얻은 것 | 내용 |
|---|---|
| 인벤토리 | 스택 충돌 없음. 행 수가 아이템 종류 수로 제한됨 |
| 정산 | Dictionary<ItemTID, count> 집계로 끝남 |
| 거래소 | 같은 아이템은 같은 값. 개체별 시세가 없어 UI·검색이 단순 |
대가로 아이템 종류 수가 늘어난다. 어종 × 등급만큼
Item.xlsx행이 생긴다. 같은 자원의 등급 변형을 몇 단계로 둘지는 산업 문서에서 정한다.
3. 인벤토리 (제안)
| 논점 | 선택지 | 권장 |
|---|---|---|
| 용량 제한 | 있음 / 없음 | 없음 또는 매우 큼 — 방치 중 가득 차면 P2 위반 |
| 가득 찼을 때 | 채취 중단 / 초과분 소멸 / 자동 판매 | 용량을 두려면 자동 판매 |
| 정렬·필터 | 산업별 / 희귀도별 | 팝업 UI에서 제공 |
방치형에서 "인벤토리가 차서 채취가 멈춰 있었다"는 최악의 경험이다. 용량 제한을 넣을 거면 반드시 넘침 처리가 함께 있어야 한다.
4. 가챠 · 티켓
- 티켓은 채취 중 낮은 확률로 획득한다.
- 가챠 풀은 엑셀이 원본이다 (2026-08-02).
Gacha.xlsx → GachaTable(GachaId별 풀 ·ItemTID에Ref: ItemTable.ItemTID— 실재하지 않는 아이템은 생성 단계에서 막힌다). 서버 하드코딩 풀(GachaTable.cs)은 폐기됐다. 등급은 풀에 두지 않고ItemTable에서 읽는다(단일 원본). - 가챠 결과물의 정체 미정 — 특성? 고유 아이템? 외형?
현재 풀(1번)은 테스트용 전용 아이템 6종(
100001~100006)을 준다. 기획 확정이 아니다. - 확률 공개 여부 미정. 수익화와 연결되면 법적 고지 의무가 생길 수 있다. → 거래 / BM 미정 상태와 함께 결정.
5. 데이터 설계
기존 Item.xlsx를 확장한다. 컬럼 추가는 엑셀에서만 하고 GameDesign/generate-tables.ps1을 돌린다.
| 항목 | 조치 |
|---|---|
Desciption 오타 |
✅ 수정 완료 — Description |
| ✅ 입력 완료 — 30종(2026-07-31) → 150종(2026-08-01 레벨 확장) (1.3) | |
기준 가격 BasePrice |
🔴 필수 · 선행 작업 (2026-08-01 확정). 즉시 판매가와 거래소 하한가의 기준 |
아이콘 키 IconKey |
클라 리소스 매핑. 156종이 들어와 우선순위가 올라갔다 (T-015) |
ItemUsage 컬럼 |
역할 분류 도입 시 추가 (미정) |
| 거래 가능 여부 | Tradable bool 컬럼 (P4 예외 관리, 미정) |
BasePrice가 없으면 즉시 판매도 거래소 하한도 구현할 수 없다. 즉시 판매는 거래의 골드 faucet이므로, 경제 구현의 첫 블록이 이 컬럼이다. 150종 전부에 값이 필요하며, 희귀도가 오를수록 가격도 오르는 단조 증가를 유지한다 — 어긋나면 상위 등급을 갈아 하위를 사는 재정거래가 생긴다.⚠️ 레벨 축이 생겨 단조 증가가 2차원이 됐다. 희귀도뿐 아니라 레벨이 오를수록도 비싸야 한다. 상위 레벨은 판정이 1/3씩 느려지므로(→ 산업 레벨 2.4) 가격이 그만큼 벌충하지 않으면 아무도 상위 레벨을 돌리지 않는다. T-009와 함께 정한다.
6. 서버 / 클라이언트 책임
| 책임 | 주체 |
|---|---|
| 인벤토리 소유·증감 | 서버 (DB) |
| 스택 상한 검증 | 서버 |
| 가챠 결과 롤 | 서버 |
| 아이콘·툴팁·정렬 | 클라이언트 |
DB 조회는 전용 Row record로 받는다 (Protocol DTO를 직접 쓰지 않는다).
7. 결정 필요 (Open Questions)
BasePrice의 실제 값 150종은? (컬럼 추가는 확정. 값이 미정) 레벨 축이 생겨 희귀도 × 레벨 2차원 단조 증가를 맞춰야 한다 (5장)- 즉시 판매가 =
BasePrice의 몇 %인가? → 거래 6장 ItemUsage(역할) 축을 도입하는가?- 인벤토리 용량 제한을 두는가? 넘침 처리는? (개체 변량 폐기로 부담은 크게 줄었다 — 행 수가 아이템 종류 수로 묶인다)
- 채굴은 깊이 구간마다 행이 더 필요하다 — 깊이를 몇 구간으로 묶는가?
- 가챠 결과물의 정체는? (캐릭터가 유력하나 획득 경로 자체가 미정 → 캐릭터 5장)
- 거래 불가 아이템이 존재하는가? (P4 예외 —
Tradable) IconKey를 넣는가? 156종이 들어왔으므로 클라 표시(T-015)에서 곧 걸린다. 아이콘을 레벨마다 따로 그리는가도 함께 정해야 한다 — 150종은 손그림으로 감당하기 어렵다MaxStack을 역할별로 가르는가? 현재 156종 전부9999다
해소됨: 개체 변량 폐기 ✅ / 티켓·고유 아이템 전 산업 공통 ✅ / 보상 한 층 ✅ /
Desciption오타 수정 ✅ / 실 아이템 입력 ✅ / TID 대역 규칙 확정 ✅ (2026-07-31) / 레벨 확장 150종 ✅ (2026-08-01) /BasePrice컬럼 추가 = 필수로 확정 ✅ / 아이템 출구 3개 확정 ✅ / 특성 재료 용도 폐지 ✅ (2026-08-01)