docs(BT23~BT27-FirstRising): FR 시스템 기획 세션 공유 — 기획서·몬스터/보스·아이템 점검·BM 조사·보스 구현 노트·인수인계
PD 지시 "본 세션 작업물은 세션 공유해줘"(2026-09-27) — 본 세션 작업물 한정 커밋 - 시스템기획(BT23): 기획서 v1 27장 · 원고 · 로비 실캡처 · 빌더 - 몬스터보스(BT24·BT27): 기획서 · 레이드 보스 패턴 상세 22장 · 도식 · 빌더 · 보스 패턴 구현 노트 v1 · 검증용 eval 스크립트 - 아이템(BT25): 리소스 점검 문서 · ComfyUI/LoRA 학습·생성 스크립트 · 비교표 - BM(BT26): 시장 조사 PPT 20장 · 원문 · 리뷰 실측 CSV · 수집 도구 - 대화로그 09-24·09-25·09-27 · 세션 인수인계서 갱신(다음 세션 첫 프롬프트 포함) - PD 지시 로그: 개발팀 BT27 진행중·세션 인계 / 기획팀 BT23~BT26 BT27 상태: R1 1차 빌드·Play 검증 완료, R2~R5·C1~C5 정의는 컴파일 오류 0 확인(빌드·Play 검증 전) FR 레포(bt/work)는 미커밋 — 커밋·push 는 PD 판단 대기 제외(로컬 유지): 개발팀_백업 1.1GB · 리뉴얼 · 레퍼런스_TBH · 시스템분석 · 타 세션 대화로그 · CLAUDE.md · scripts 2건 · fr-worker.md · 몬스터 리스트 xlsx(.gitignore) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
|
@ -34,6 +34,12 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
|
||||||
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|
||||||
|---|------|----------|----------|-----------|----------|----------|
|
|---|------|----------|----------|-----------|----------|----------|
|
||||||
| BT7-Plan | 2026-04-24 | **카드 시스템 개정** — 1) 세계관(narrative) 현행 유지 2) 덱빌딩 방식 VS 순수형 확정 (공격 버튼 제거, 이동·점프만) 3) 카드 구조 **"액티브 + 패시브 = 각성"** 3분류 확정 4) **"3→4 변경" 폐기** (새 구조가 확정안) 5) **각성 조건 확정** (VS 원조 방식: 액티브 최대 강화 + 특정 패시브 + 보물상자) 6) **규모 확정** (액티브 15~20종·패시브 25종 이내·각성 15~20종) 7) **기본 라이프 4 + 젤다 방식 하트 분할 시스템** (♥ 아이콘 · **하트 1개 = 4 HP 확정** · 기본 시작 하트 1개 · 피해 1 = 1/4조각 감소 · 피해 2 = 반조각 감소 · 피해 4 = 하트 1개 소멸 · 카드/성장으로 최대 하트 수 증가 가능) 8) **적 공격력 1부터 점진 강화** (스테이지·등급 진행에 따라 ATK 수치 증가) 9) **동일 카드 스택 업그레이드 Lv.5까지** (기존 Lv.3 확장) 10) **각성 발동 조건 VS 원작 동일 재확인** (액티브 Lv.5 + 각성에 필요한 특정 패시브 1개 이상 보유 + 보물상자 → 각성 카드 등장·발동) 11) **태그 체계 일반 RPG 용어 사용** (기존 세계관 특화 "오행 불/물/목/금/토" · "결계/부적/주술/소환" 등 임시 일반 RPG 용어로 재작성. 용어 자체는 PD가 나중에 일괄 세계관 재매핑 예정) | **진행중** | [확정 방향] VS 순수형 + 액티브/패시브/각성 구조 + 각성 조건 VS 원조 그대로 + 규모 15~20/≤25/15~20 + 라이프 4 하트 분할 + 적 ATK 점진 강화 · [폐기] T1~T4 빌드업·"비전/각성" 레이블·A/B 선택지·티어 수량 개념·적 ATK 1(즉사) 설계·"라이프 1 고정" 해석·`system/01 §5 기각안 1` "HP 막대 기각"·`04_전투 §8 기각안 1` "HP 막대 변형 기각" · [잔존 참조] `프로젝트/EerieVillage/기획/system/03_덱빌딩_방식_검토.md` 는 방식 비교 근거만 유효 · 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` | — | **PD 추가 지시 대기 잔존 0건 — BT7-Plan 방향 완전 확정**. 개정 집행 착수 가능 상태 → 확정분은 즉시 `04_전투`·`ux/01`·`balance/01`·`system/01`·`content/01`·`balance/02`·`ux/02`·`01_게임_컨셉`·`02_코어_루프` 순차 개정 착수 가능 + 개발팀 `PlayerAttack.cs` 주기 타이머 전환 + `InputActions` Attack 제거 + `Health.cs` maxHP 가변+쿼터 단위 구조 |
|
| BT7-Plan | 2026-04-24 | **카드 시스템 개정** — 1) 세계관(narrative) 현행 유지 2) 덱빌딩 방식 VS 순수형 확정 (공격 버튼 제거, 이동·점프만) 3) 카드 구조 **"액티브 + 패시브 = 각성"** 3분류 확정 4) **"3→4 변경" 폐기** (새 구조가 확정안) 5) **각성 조건 확정** (VS 원조 방식: 액티브 최대 강화 + 특정 패시브 + 보물상자) 6) **규모 확정** (액티브 15~20종·패시브 25종 이내·각성 15~20종) 7) **기본 라이프 4 + 젤다 방식 하트 분할 시스템** (♥ 아이콘 · **하트 1개 = 4 HP 확정** · 기본 시작 하트 1개 · 피해 1 = 1/4조각 감소 · 피해 2 = 반조각 감소 · 피해 4 = 하트 1개 소멸 · 카드/성장으로 최대 하트 수 증가 가능) 8) **적 공격력 1부터 점진 강화** (스테이지·등급 진행에 따라 ATK 수치 증가) 9) **동일 카드 스택 업그레이드 Lv.5까지** (기존 Lv.3 확장) 10) **각성 발동 조건 VS 원작 동일 재확인** (액티브 Lv.5 + 각성에 필요한 특정 패시브 1개 이상 보유 + 보물상자 → 각성 카드 등장·발동) 11) **태그 체계 일반 RPG 용어 사용** (기존 세계관 특화 "오행 불/물/목/금/토" · "결계/부적/주술/소환" 등 임시 일반 RPG 용어로 재작성. 용어 자체는 PD가 나중에 일괄 세계관 재매핑 예정) | **진행중** | [확정 방향] VS 순수형 + 액티브/패시브/각성 구조 + 각성 조건 VS 원조 그대로 + 규모 15~20/≤25/15~20 + 라이프 4 하트 분할 + 적 ATK 점진 강화 · [폐기] T1~T4 빌드업·"비전/각성" 레이블·A/B 선택지·티어 수량 개념·적 ATK 1(즉사) 설계·"라이프 1 고정" 해석·`system/01 §5 기각안 1` "HP 막대 기각"·`04_전투 §8 기각안 1` "HP 막대 변형 기각" · [잔존 참조] `프로젝트/EerieVillage/기획/system/03_덱빌딩_방식_검토.md` 는 방식 비교 근거만 유효 · 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` | — | **PD 추가 지시 대기 잔존 0건 — BT7-Plan 방향 완전 확정**. 개정 집행 착수 가능 상태 → 확정분은 즉시 `04_전투`·`ux/01`·`balance/01`·`system/01`·`content/01`·`balance/02`·`ux/02`·`01_게임_컨셉`·`02_코어_루프` 순차 개정 착수 가능 + 개발팀 `PlayerAttack.cs` 주기 타이머 전환 + `InputActions` Attack 제거 + `Health.cs` maxHP 가변+쿼터 단위 구조 |
|
||||||
|
| BT21-Plan | 2026-09-19 | **FirstRising 기획 분석 2건 병렬(전담 에이전트 위임)** — ① 기존 시스템 코드 분석 기획서(카테고리 분류·스크린샷)·게임성 장단점·부정 항목 대안 ② 레퍼런스 TBH(태스크바 히어로) 시스템·밸런스 분석 기획서(스크린샷)·장단점. 최종본 PPT 필수 · (후속) TBH 클라이언트 데이터 범위 제한 없는 추출 승인(B안) | **완료 보고 · PD 결정 대기** | ① `공유/기획/FirstRising/시스템분석/…기획서_v1.pptx`(36장·실캡처 8) ② `공유/기획/FirstRising/레퍼런스_TBH/…기획서_v2.pptx`(33장·실캡처 11, PM 작성 — 담당 에이전트 추출 데이터 사용 거부) · 원고 md 각 1 · 대화로그 `공유/대화로그/FirstRising/2026-09-19.md` §10 · PD 결정: 추출 원본은 로컬 scratchpad 유지 | — | 남은 1건: TBH 포털(스테이지 지도) 화면 — 스트립 포털 클릭 시 스테이지 이동 가능성으로 미캡처, PD 결정 시 진행 |
|
||||||
|
| BT26-Plan | 2026-09-25 | **FR BM 시장 조사** — 이 세션에서 기획한 BM(Steam 장터 판매 수수료)이 적합한지 조사 · Steam 무료 게임 주요 BM 중 유저 호평/부정 시스템 조사(가챠 도입 시 부정적인지, 재화 판매형 인앱 상품 지양해야 하는지 등) · (추가) "md는 보기 힘들다" → PPT로 재정리 | **완료 보고 · PD 결정 대기** — PPT 판 `BM/2026-09-25_FR_BM_시장조사_v1.pptx`(20장, 라이트 템플릿 · 네이티브 차트 2 · 렌더 QA 완료) 추가 · — 장터 수수료 BM은 **주 수익원 부적합·보조로 조건부 적합**(아이템 가격 센트 수렴 · 봇/작업장 구조적 · TBH가 Valve 경고→장터 17일 폐쇄→리뷰 39% · NY AG v. Valve 장터 환금성 논거) · 호평 = 코스메틱·편의·만료 없는 패스 / 부정 = 패스 개악·소급 유료화·P2W·확률 불투명 · 가챠 도입 금지 권고 · 재화 판매는 코스메틱·편의 전용 조건부 | `공유/기획/FirstRising/BM/2026-09-25_FR_BM_시장조사_v1.md`(§0~§7, 출처 30여) · 리뷰 실측 50종 `BM/data/steam_reviews_2026-09-25.csv` · 수집기 `BM/tools/` · 대화로그 `공유/대화로그/FirstRising/2026-09-25.md` | — | PD 결정 요청 5건(§6): 장터 보조화·코스메틱/편의 DLC 주 수익원 승인 · 거래 범위/계정 조건/슬롯 수치 시점 · 가챠·파워 판매 금지 원칙 · 코스메틱 라인업 착수 · 드롭 확률 자율 공개 · PPT 판 필요 여부 |
|
||||||
|
| BT25-Plan | 2026-09-25 | **FR 아이템 리소스 점검** — 보유 아이템 리소스 종수와 기획 부위 분류(8부위)에 맞게 준비돼 있는지 확인 · (추가) ComfyUI로 기존 톤앤매너를 유지하며 제작 가능한지 체크 · (추가 2) FR 아이템 아이콘을 학습시킨 LoRA로 테스트 | **완료 보고** — (추가 2) 기존 아이콘 26장(S 오버레이 6장 제외)으로 스타일 LoRA `FR_icons_v1` 학습(13.5분) → 4차 생성 16장 **팔레트 일치, 방어구·장신구·신규 부위(투구·반지·방패·오브·마도서·화살통) 사용 가능 · 무기 약함 · 3/16 잘림** · 4차b(강도 0.75)는 퇴화 → 1.0 유지 · 이전: 프롬프트 시험 3회는 톤 불일치 · 3D 불가 · 증빙 `아이템/img/comfy_test/`(비교표 1~4차b) · 문서 §4-5 · **PD 결정(09-25): 리소스 보강은 PD 직접 · 이후 아이콘 제작은 ComfyUI 활용, 필요 시 LoRA 학습으로 대응** | `공유/기획/FirstRising/아이템/2026-09-25_FR_아이템리소스_점검_v1.md` — 데이터(장비 32종×14단계=448 · 비장비 254) · 아이콘(장비 32+범용 6 · 기타 76 · Layer Lab 45/90) · 3D(무기 23 사용 중 6 연결 · 팩 147 · 방패 ~15 · 방어구 변형 0) · 8부위 대조표 | — | 8부위 중 보조무기·모자·반지는 데이터 없음, 벨트 5종 잉여 → 전환·신설 제안 6건 PD 판단 대기(리소스 보강 자체는 PD 가 추후 직접) · 아이콘 제작 방식은 확정(ComfyUI + 필요 시 LoRA) |
|
||||||
|
| BT24-Plan | 2026-09-24 | **FR 몬스터 분류·아키타입 + 보스 기믹·패턴 기획** — (PD 결정) 아이템 기본 옵션 고정·상위 단계 획득은 매우 어렵게·로컬 전용 부가 옵션은 랜덤(장터 비대화 방지) · 핵심 목표 = 다양한 패턴의 거대 보스 클리어(방치·파밍은 성장 과정, 극한 컨트롤·손맛·고스펙 장비의 이유) · 현재 프로젝트 몬스터 분류 → 분류별 아키타입·특성 · 모션 다양·임팩트 있는 몬스터를 보스 후보로 선정해 기믹·패턴 설계(보유 이펙트·자원 활용) · 초거대 레이드 보스 오픈 스펙 3~5종, 다페이즈 · (추가) 아키타입 특성 기획 후 모델 이미지를 넣은 엑셀 "몬스터 리스트" 표 제작 | **완료 보고 · PD 결정 대기** | `공유/기획/FirstRising/몬스터보스/` — 기획서 `2026-09-24_FR_몬스터분류_보스패턴_기획서_v1.pptx`(16장) · 원고 md · **엑셀 `2026-09-24_FR_몬스터리스트_v1.xlsx`**(몬스터 리스트 93행 + 이미지 91 · 아키타입 · 보스 후보 · 범례) · `img/monsters_all/`(AssetPreview 83) · **(PD 보강 지시) 레이드 보스 패턴 상세 `2026-09-24_FR_레이드보스_패턴상세_v1.pptx`(22장 · 패턴 45 + 아레나 5 탑뷰 도식 `img/patterns/` · 예고·실행·피해·회피·구현 5줄)** · `tools/`(xlsx·pptx·도식 빌더) · 대화로그 `공유/대화로그/FirstRising/2026-09-24.md` | — | PD 결정 요청 6건 + 패턴 상세 5건(방어 무시 60% · 예고 시간/시간 제한 · 그로기 3회 · 골렘 모델 교체 · 도식 수치 채택): ① 레이드 5종(R1 검성·R2 원소 거신·R3 거미 여왕·R4 역병 군주·R5 사형집행인) ② 페이즈 임계 70/40/15%·시간 제한 ③ 그로기 규칙 ④ 처형류 방어 무시 % ⑤ 챕터 보스 배치 ⑥ 한글 이름 확정 |
|
||||||
|
| BT23-Plan | 2026-09-24 | **FR 시스템 기획서(PPT)** — 최신 프로젝트 파악(UI 구성으로 게임 파악) 후 초기 컨셉(Steam PC 방치형 RPG · TBH식 아이템 Steam 거래 BM + DLC · 핵앤슬래시 액션 · 스펙 맞춤 자동 파밍 → 상위 지역·보스 → 다음 챕터 · 도전 컨텐츠) 기준으로 소개·특징·재미요소 정리, 재미/우려 점검, 단점 보완 기획·제안 · (추가) 완료 후 중단 없이 재검토·보완 | **완료 보고 · PD 결정 대기** | `공유/기획/FirstRising/시스템기획/2026-09-24_FR_시스템기획서_v1.pptx`(27장 · 로비 실캡처 10 · 자체 검토 반영: 제안 K·위젯 알림·검증 방법·이탈 신호 추가) · 원고 `…_원고_v1.md` · 빌더 `시스템기획/tools/` · 대화로그 `공유/대화로그/FirstRising/2026-09-24.md` | — | PD 결정 요청 7건: ① 방치×개입(열기) ② 구역 선택 방식 ③ 아이템화 범위 ④ 성장 축 역할 ⑤ 도전 우선순위 ⑥ DLC 목록 ⑦ 스탯 수치 설계 착수 (BT22 대기 4건은 그대로 유효) |
|
||||||
|
| BT22-Plan | 2026-09-19 | **FirstRising 리뉴얼 기획서(개발 승인용)** — TBH 3대 요소(작업표시줄 상주 방치형 · 디아블로식 파밍 · Steam 장터 거래)를 핵심 콘텐츠로 설정, 무엇을 왜 바꿔야 하는지 근거·이유를 논리적으로. 스크린샷 등 비주얼 활용, 핵심만 요약. PPT | **완료 보고 · PD 승인 결정 대기** | `공유/기획/FirstRising/리뉴얼/2026-09-19_FirstRising_리뉴얼_기획서_v2.pptx`(19장, PD 레퍼런스 라이트 템플릿 — 최신) · v1(어두운 템플릿) 보존 · PM 작성 — 실캡처 FR 5·TBH 7 + 목업 2 · 원고 md · 빌더 `tools/` · 로비 UI 개편안 `2026-09-20_FirstRising_로비UI개편안_v1.pptx`(8장·와이어프레임 2) · 대화로그 §11 · **세션 인수인계서 `공유/대화로그/FirstRising/2026-09-22_FR_시스템분석기획_세션인수인계.md`** | — | 승인 요청 4건: Steam PC 우선 · 모바일 BM 폐기 · P0 프로토타입 착수 · 법률 검토 착수 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,205 @@
|
||||||
|
# FR(Dead Archive) BM 시장 조사 v1 — Steam 장터 수수료 BM 적합성 · Steam 무료 게임 BM별 유저 반응
|
||||||
|
|
||||||
|
- 안건: BT26-Plan (2026-09-25, PD 지시 "이 세션에서 기획한 BM(스팀 마켓 판매 수수료 BM)이 적합한지, 스팀 무료 게임 주요 BM 중 무엇이 호평·부정인지 시장 조사")
|
||||||
|
- 작성: 총괄PM · 조사일 2026-09-25 · 수치는 조사 시점 실측(Steam 공개 API·공지·기사) · 추정은 **(안)** 표기
|
||||||
|
- 대상 BM(BT23 시스템기획서 제안 H·C·I): 방치로 모은 아이템을 Steam 커뮤니티 장터에서 거래 → 게임 수수료 수익 + 인벤토리 확장 등 DLC
|
||||||
|
|
||||||
|
## 0. 결론 요약
|
||||||
|
|
||||||
|
| 질문 | 결론 | 근거 요지 |
|
||||||
|
|---|---|---|
|
||||||
|
| Q1. Steam 장터 수수료 BM은 적합한가 | **주 수익원으로는 부적합, 보조 수익원으로 조건부 적합** | ① 수익 = 거래대금 × 게임 수수료(통상 10%, Valve 5%는 별도)인데 방치형·드롭형 장터는 아이템 가격이 **센트 단위**로 수렴(TBH 상위 등록 아이템 $0.16~0.35 · Banana $0.03) ② **봇·작업장·치터가 구조적으로 유입** — TBH는 출시 2주 만에 Valve로부터 서버 가이드라인 위반 통보·"아이템 종류를 줄이라"는 요구를 받고 장터 정책을 4번 바꿨고(등급 제한·슬롯 4개·8시간 쿨다운·상위 등급 일시 금지) 장터를 17일간 닫았으며 리뷰가 '대체로 부정적'까지 떨어짐 ③ **법률 위험의 정중앙** — 뉴욕주 검찰의 Valve 소송(2026-02)은 '랜덤 아이템 + 장터 환금성'을 도박의 핵심 근거로 삼음, 벨기에·네덜란드·한국 규제도 같은 축 ④ Valve가 수수료·장터 운영을 언제든 바꾸거나 중단할 수 있고(구독자 계약 3.D) 지갑은 현금화 불가(3.C) |
|
||||||
|
| Q2. 어떤 BM이 호평인가 | **코스메틱 전용 · 편의(창고·인벤토리) 판매 · 만료 없는 시즌 패스 · 무과금이 프리미엄 재화를 벌 수 있는 구조** | Warframe 88% · Path of Exile 89% · TF2 91%(리뷰 긍정률, 전체 기간) · Marvel Rivals "배틀패스 만료 없음"이 호평 · 방치형 F2P 중 NGU Idle 96%·Farmer Against Potatoes 95%는 '편의 결제·강제 없음' |
|
||||||
|
| Q3. 어떤 BM이 부정적인가 | **파워 판매(P2W) · 강제·FOMO 배틀패스 개악 · 소급 유료화 · 불투명 확률 · 다크패턴 재화 판매 · 리뷰 유도** | Apex(2024-07 배틀패스 개악 → 부정 리뷰 7만 건 → 철회) · Overwatch 2(32%, 출시 시 Steam 최저 평점) · Lost Ark 70%→최근 60% · MapleStory 61%→최근 38%(확률 조작 과징금 116억) · Blue Archive 65%(리뷰 유도 이벤트로 Steam 규정 위반 지적) · Epic $2.45억 환불 명령(다크패턴) |
|
||||||
|
| Q4. 가챠(뽑기) 도입은 | **FR에는 도입하지 않을 것을 권고** | Steam에서도 관대한 가챠(Reverse:1999 93%·Wuthering Waves 88%)는 호평이지만, FR은 '아이템 거래'가 핵심이라 **유료 랜덤 + 거래 가능**이 되면 규제 최상위 위험(도박 판정 기준) · 한국은 유상 확률형 아이템 전부 확률 표시 의무(위반 시 3배 배상·입증책임 전환) · Steam은 확률 표시 강제가 없어 오히려 소송 노출이 큼 |
|
||||||
|
| Q5. 재화 판매형 인앱 상품은 | **파워와 무관한 '코스메틱·편의 전용 재화'만, 실제 가격 병기·필요 수량 단위·게임플레이 획득 경로 병행** 조건으로 허용 | EU 소비자보호 네트워크 7원칙(2025-03: 실화폐 가격 표시·강제 구매 금지 등) · FTC-Epic 사건 · Warframe 플래티넘(유저 간 거래로 무과금도 획득)이 호평 사례 |
|
||||||
|
|
||||||
|
**권고 BM 구성(안)**: ① 코스메틱 확정 판매(스킨·펫·스킬 이펙트·데스크톱 위젯 테마) ② 편의 DLC(인벤토리·창고·짐꾼 확장 = PoE 창고 탭 모델, 초기 컨셉과 일치) ③ 시즌 패스는 '만료 없음 + 재화 페이백' 형식(선택) ④ **장터는 보조 수익·리텐션 장치** — 거래 가능 아이템을 처음부터 '고등급·희소·계정 조건'으로 제한(TBH가 한 달 걸려 도달한 정책을 출시 전에), 등록 슬롯·쿨다운·등록 시 로컬 옵션 초기화 ⑤ 가챠 ✕ · 파워 판매 ✕ · 재화 판매는 코스메틱·편의 전용. 상세는 §5.
|
||||||
|
|
||||||
|
## 1. 조사 방법·범위
|
||||||
|
- **1차 자료**: Steam 공지(TBH 개발팀 공지 106건, 스팀 뉴스 API) · Steam 구독자 계약 · Steamworks 문서 · 뉴욕주 검찰 보도자료 · FTC 보도자료 · 한국 정책브리핑·법률신문 · EU 집행위
|
||||||
|
- **실측**: Steam 공개 API로 F2P·비교군 50종의 리뷰 집계(전체 기간·최근 30일·월별 추이) — `data/steam_reviews_2026-09-25.csv`, 수집기 `tools/steam_reviews.py` · Steam 장터 검색 API로 TBH·Banana·Rust·PUBG·CS2의 등록 아이템 수·가격
|
||||||
|
- **2차 자료**: 게임 언론(인벤·게임메카·경향게임스·ZDNet·GamesRadar·Dexerto 등), Wikipedia, 법률 리뷰
|
||||||
|
- 한계: Steamworks의 장터 수수료 설정 문서는 파트너 비공개 영역이라 **게임 수수료율의 공식 수치는 미확인**(공개 자료·거래 사이트 기준 10%) · 개별 게임의 수수료 매출은 공개되지 않아 규모는 (안)
|
||||||
|
|
||||||
|
## 2. Steam 커뮤니티 장터 수수료 BM의 실태
|
||||||
|
|
||||||
|
### 2-1. 구조
|
||||||
|
| 항목 | 내용 | 출처 |
|
||||||
|
|---|---|---|
|
||||||
|
| 수수료 | Steam 거래 수수료 5% + **게임별 수수료(퍼블리셔 몫, 통상 10%)** = 판매가의 약 15%를 구매자가 부담. 수수료 종류별 최소 $0.01 → $0.03짜리 아이템은 판매자가 $0.01만 받음(수수료 67%) | SteamWiki · 수수료 계산기(SkinWise·SteamVaults) · Rust 사례 |
|
||||||
|
| 등록 상한 | 건당 $2,000(미국 기준) | SteamWiki·계산기 |
|
||||||
|
| 지갑 | "Steam Wallet funds have no cash value and are not exchangeable for cash" — **현금화 불가**, Steam 상품 구매에만 사용 | Steam 구독자 계약 §3.C |
|
||||||
|
| 플랫폼 권한 | "Valve may decide to cease operation of any Subscription Marketplace, change the fees that it charges or change the terms or features" · 아이템은 소유권 없는 라이선스 | 구독자 계약 §3.D |
|
||||||
|
| 기술 | Steam Inventory Service 아이템 정의에 `tradable`·`marketable` 플래그, 플레이타임 기반 드롭(`drop_interval`·`drop_max_per_window` 창당 최대 10) | Steamworks Inventory Schema |
|
||||||
|
| 확률 표시 | Steam은 Apple·Google·콘솔 3사와 달리 **랜덤 아이템 확률 표시를 강제하지 않음** → 개발사가 자율 표시하지 않으면 다른 플랫폼보다 법적 노출이 큼 | Promise Legal 2025·Wikipedia 규제 항목 |
|
||||||
|
|
||||||
|
### 2-2. 사례 A — TBH: 태스크바 히어로 (FR의 직접 레퍼런스, 한국 인디 · F2P + 장터 + DLC 코스튬)
|
||||||
|
출시 2026-05-27(누젬·테세라크 공동 개발). 동접 출시일 1만 → 4일 후 10만 → 6/5 267,545(스팀 일 최고 5위) → 6/9 415,374 → 일일 최고 54만(스팀 역대 30위권). 초기 장터가: 20레벨 전설 활 $198, 무쇠 주괴 개당 $700(경향게임스).
|
||||||
|
|
||||||
|
| 날짜(KST) | 사건 | 출처 |
|
||||||
|
|---|---|---|
|
||||||
|
| 05-30 | Steam 아이템 서버 불안정 · 장터 대량 구매 시 아이템 미수령 버그 | 개발팀 공지 |
|
||||||
|
| 05-31~06-14 | 치팅 계정 영구 제재 매일 공지(411·559·285·**3,534**·410·607·425·322·275·189·223·196) — 2회 감지 시 장터 영구 제한, 제재 기준 모호 항의 → 소명 창구 개설 | 공지·인벤 |
|
||||||
|
| 06-01 04:04 | **[긴급] 장터 아이템 즉시 회수 요청** — "Steam has confirmed that, because we failed to properly meet their server usage guidelines, the game was sending excessive server requests… Steam has asked us to reduce the number of items" → 큐브 Lv10 이상만 장터 사용 · **전설 등급 이상 장비만 거래 가능**(재료는 일반 등급도 가능) · 일반/고급/희귀 장비·특정 레벨 장비·B타입 삭제 | 공지 |
|
||||||
|
| 06-02 | 1.00.07 아이템 리셋·장터 정책 변경 적용, "current situation is the fault of our development team for failing to follow Steam's technical guidelines" 사과 · 장터 등록 재개 | 공지 |
|
||||||
|
| 06-02 | Steam 측이 "서버 사용 기준을 충족하지 못했다" 통보(ZDNet) · 리뷰 6,000여 건 긍/부 반반 | ZDNet |
|
||||||
|
| 06-05 | 리뷰 '복합적' 43%(11,671명) · 국내 '대체로 부정적' · 불법 매크로·작업장 대거 유입, 서버 랙·아이템 유실 | 게임메카 |
|
||||||
|
| 06-08~06-25 | **장터 등록 임시 폐쇄 17일** — "Bots and similar activity are currently generating excessive traffic" · 자체 서버 이전(06-15) · 재개 시 **등록 슬롯 4개·슬롯당 8시간 쿨다운**, 상위 3등급(Cosmic·Divine·Celestial) 등록 금지 | 공지 |
|
||||||
|
| 06-09 | 리뷰 '대체로 부정적' 39%(18,830명) — 상자 미수령·합성 시 재료 증발 버그 | 게임메카 |
|
||||||
|
| 06-19 | 패치 후 이모탈 등급이 수십 달러 → 센트 단위로 추락, "하루 종일 굴려도 한 달 20~30달러 건지기조차 불가능" · 일반 유저 오제재 사례 | 경향게임스 |
|
||||||
|
| 06-25 | 장터 재개 + 치팅 6,180계정 제재 | 공지 |
|
||||||
|
| 07-22 | 1.01.00 상위 등급 거래 재개 | 공지 |
|
||||||
|
| 09-25(실측) | 장터 등록 아이템 1,063종, 상위 노출 아이템 $0.35(등록 10,752건)·$0.16(13,503건) · DLC 스킨은 무료 지급 기간 종료 후 유료 전환(09-21) · **현재 리뷰 54% '복합적'(46,648명), 최근 30일 58%, 월간 최저 35%(2026-06)** | Steam 장터 검색·리뷰 API·공지 |
|
||||||
|
|
||||||
|
교훈: **거래 가능 아이템 범위를 넓게 열면 봇·작업장이 먼저 몰리고, Valve의 서버 가이드라인이 개발사보다 먼저 한계에 닿는다.** TBH가 사후에 도달한 정책(고등급만 거래·계정 조건·슬롯·쿨다운·상위 등급 단계 개방)이 곧 '처음부터 설계해야 할 기본값'이다. 유저 반응은 "장터 수수료 절대 못 놓겠다 이건가?"(Steam 토론)처럼 수수료 BM 자체가 개발사 탐욕으로 읽히는 순간이 온다.
|
||||||
|
|
||||||
|
### 2-3. 사례 B — Banana · Egg · Cats (장터 드롭 전용 클리커, 2024)
|
||||||
|
- Banana(2024-04-23 출시, 4인 개발): 클릭하면 바나나 아이템이 드롭되어 장터에서 거래. 6월 동접 70만~91.7만으로 Steam 2위(CS2 다음). 개발자 스스로 "6월 초 플레이어의 약 2/3가 봇". IGN: "기술적으로 사기는 아니지만" 쓸모없는 아이템으로 Steam과 개발자에게만 이익인 인공 경제. 커뮤니티는 "Valve가 이 장르를 금지해야" 청원했으나 Valve의 공식 조치는 확인되지 않음.
|
||||||
|
- 실측(2026-09-25): 등록 아이템 457종, 'Banana' $0.03에 **2,439만 건** 등록, 'Bluescreenana' $31.53 2건. 리뷰는 82% '매우 긍정적'(97,037명) — '공짜로 돈이 생긴다'는 재미가 리뷰를 떠받치지만, 게임성 없는 BM이라 FR이 참고할 모델은 아니다.
|
||||||
|
|
||||||
|
### 2-4. 사례 C — 장터가 주 수익이 되는 조건 (CS2·Dota 2·TF2·Rust·PUBG)
|
||||||
|
- Steam 'Best of 2025' 플래티넘(상위 12, 추정 매출 $1.25억 초과) 중 F2P는 Dota 2·CS2·PUBG·Apex — 4년 연속. CS2 스킨 시장은 $43억 규모(2025-03, 뉴욕주 검찰 인용), 한 아이템이 $100만 이상에 거래.
|
||||||
|
- 공통점: **수백만 동접 + 케이스/키(유료 랜덤) + 희소성 통제 + 코스메틱 전용(파워 무관)**. 장터 수수료가 의미 있는 매출이 되려면 이 규모와 희소성 설계가 전제다. 대신 이 모델이 지금 뉴욕주 소송의 피고다(§4).
|
||||||
|
- Rust·PUBG: 장터 아이템 5,497·358종. 개발사는 아이템 스토어 직접 판매 + 장터 게임 수수료를 병행하며, 아이템은 전부 코스메틱.
|
||||||
|
|
||||||
|
### 2-5. FR에 적용했을 때의 수익 감각 (안)
|
||||||
|
- 수익식: **개발사 수익 = 장터 거래대금 × 게임 수수료율(≤10%)**. 판매자가 아니라 구매자가 수수료를 부담하므로 거래가 성립할 때만 발생.
|
||||||
|
- 가정 예시(안): 동접 1만 · 하루 거래 1만 건 · 평균 $0.30 → 거래대금 $3,000/일 → 수수료 $300/일 ≈ **월 $9,000**. 동접 10만이라도 월 $9만 수준이며, TBH·Banana처럼 가격이 센트로 수렴하면 최소 수수료 $0.01이 상한처럼 작동한다. 아이템당 $5~20을 유지하려면 희소성(고등급만 거래·드롭 상한·소멸 요소)이 필수인데, 그 순간 '방치로 모아 판다'는 접근성은 줄어든다.
|
||||||
|
- 반대로 편의 DLC는 전환율 3~5%(안) × $5~10이면 동접 1만 기준 월 수천 달러가 **봇 리스크 없이** 나온다. 장터는 '지갑 자금이 생기니 DLC를 산다'는 순환(PoE·Warframe식)의 보조 장치로 쓰는 편이 안전하다.
|
||||||
|
|
||||||
|
### 2-6. 리스크 정리
|
||||||
|
| 리스크 | 실제 사례 | FR 대응(안) |
|
||||||
|
|---|---|---|
|
||||||
|
| 봇·작업장·치터 | TBH 6,180계정 제재·매일 수백 건 · Banana 2/3 봇 | 계정 조건(큐브 Lv 상당 = 챕터 진행·플레이타임) · 드롭 상한(`drop_max_per_window`) · 등록 슬롯·쿨다운 · 서버 검증(자체 서버 필수, TBH는 서버 이전에 3주 소요) |
|
||||||
|
| Valve 서버 가이드라인 | TBH: Steam이 "아이템 수를 줄이라" 요구, 장터 17일 폐쇄 | 아이템 종류·인벤토리 호출 최소화, 출시 전 Steam 기술 검토 |
|
||||||
|
| 가격 붕괴 → 이탈 | TBH 이모탈 등급 수십 달러 → 센트 | 거래 가능 등급 제한, 소멸(제물·합성) 경로, 상위 등급 단계 개방 |
|
||||||
|
| 법률(도박) | NY AG v. Valve(장터 환금성이 핵심 논거) · 벨기에 유료 랜덤 박스 금지 · 한국 확률 표시·3배 배상 | **유료 랜덤 요소 없음** · 드롭 확률 자율 표시 · 장터 아이템은 확정 옵션(PD 결정 ①)만 |
|
||||||
|
| 플랫폼 의존 | Valve가 수수료·장터를 변경·중단 가능(SSA 3.D) | 장터 없이도 성립하는 BM(코스메틱·DLC)을 기본으로 |
|
||||||
|
| 평판 | "장터 수수료 절대 못 놓겠다"(TBH 토론) · Banana "스캠" 논쟁 | 수수료율·정책 공개, 장터를 게임의 목적이 아니라 결과로 배치 |
|
||||||
|
|
||||||
|
## 3. Steam 무료 게임 BM 유형별 유저 반응
|
||||||
|
|
||||||
|
### 3-1. 유형 분류와 반응
|
||||||
|
| BM 유형 | 대표작(전체 리뷰 긍정률·조사일 실측) | 호평 요인 | 부정 요인·사례 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 코스메틱 전용 | Warframe 88% · Path of Exile 89% · TF2 91% · Dota 2 80% · Brawlhalla 80% · Marvel Rivals 75% | 파워 무관, 무과금 완주 가능, "가장 윤리적인 F2P"로 반복 언급 | 코스메틱도 유료 랜덤(케이스)이면 도박 논쟁(CS2 86%이지만 NY 소송) |
|
||||||
|
| 편의·QoL 판매 | PoE 창고 탭 · Warframe 슬롯 · NGU Idle 96% · Farmer Against Potatoes Idle 95% | '시간 절약'을 사되 필수 아님, 방치형 유저층 수용 | 인벤토리를 처음부터 좁혀 강매로 느끼면 반발(Legends of IdleOn 77%의 젬 불만) |
|
||||||
|
| 배틀패스·시즌 | Marvel Rivals(만료 없음) · Dota 2 · The Finals 78% | 만료 없음·재화 페이백·가격 유지 | **Apex 2024-07**: 시즌당 프리미엄 패스 2개·최대 $20로 개편 → 부정 리뷰 7만 2천 건, '압도적 부정적' → EA·Respawn 철회("패스 재화로 다음 패스 구매 가능" 복원) |
|
||||||
|
| 유료 랜덤(케이스·가챠) | CS2 86% · Reverse:1999 93% · Wuthering Waves 88% · Zenless Zone Zero 88% / Blue Archive 65% · Girls' Frontline 2 70% · Tower of Fantasy 66% | 확률·천장 공개, 무과금 친화(WuWa: 시작 시 5성 2종 선택), 게임 완성도 | 뽑기 개편 시 즉각 리뷰 폭격(Blue Archive 2026-07: 최근 영어 리뷰 100건 중 91건 부정) · 리뷰 유도 이벤트로 Steam 규정 위반(Blue Archive) · 규제 대상 |
|
||||||
|
| 파워 판매·강화 RNG(P2W) | Lost Ark 70%(최근 30일 60%) · Throne and Liberty 67% · Black Desert 74% · MapleStory 61%(최근 38%) | — | 골드 봇·강화 확률·과금 격차, MapleStory 큐브 확률 몰래 변경 → 공정위 과징금 116억(전자상거래법 역대 최대) |
|
||||||
|
| 소급 유료화·콘텐츠 잠금 | Overwatch 2 32%(최근 54%) | — | F2P 전환하며 무료 획득 경로 차단·영웅을 패스에 잠금 → 출시 첫날 2만 건 부정, Steam 역대 최저 평점 |
|
||||||
|
| 재화(프리미엄 통화) 판매 | 대부분의 F2P | 실화폐 가격 병기·필요 수량 단위 판매·게임 내 획득 가능(Warframe 플래티넘 거래) | 애매한 묶음·강제 구매·아동 결제 → FTC-Epic $2.45억 환불, EU 7원칙 |
|
||||||
|
| 장터 드롭·수수료 | TBH(§2-2) · Banana 82% | '돈이 되는 방치' 초기 화제성 | 봇·서버·가격 붕괴·규제·플랫폼 의존(§2-6) |
|
||||||
|
| 유료 게임 + DLC(비교군) | Melvor Idle 90% · Rust 87% · Path of Exile 2 75%(얼리액세스 유료) | 확정 구매, 확장팩 가치 | DLC 남발 시 반발 |
|
||||||
|
|
||||||
|
### 3-2. 리뷰 실측 표 (Steam 공개 API, 2026-09-25 · 전체 기간 / 최근 30일 · 월별 최저 긍정률은 논란 시점 참고)
|
||||||
|
| 게임 | BM 유형(PM 분류) | 무료 | 전체 긍정률(리뷰 수) | Steam 평가 | 최근 30일 | 월별 최저(200건↑) |
|
||||||
|
|---|---|---|---|---|---|---|
|
||||||
|
| NGU IDLE | 편의 결제 | 무료 | **96%** (12,993) | Overwhelmingly Positive | 87% (70) | — |
|
||||||
|
| Farmer Against Potatoes Idle | 편의 결제 | 무료 | **95%** (8,182) | Very Positive | 87% (52) | — |
|
||||||
|
| Leaf Blower Revolution - Idle Game | 편의·DLC | 무료 | **94%** (26,480) | Very Positive | 88% (72) | — |
|
||||||
|
| Reverse: 1999 | 가챠 | 무료 | **93%** (5,222) | Very Positive | 92% (169) | — |
|
||||||
|
| Team Fortress 2 | 크레이트·키+장터 | 무료 | **91%** (1,251,911) | Very Positive | 92% (5,374) | 92% (2026-08) |
|
||||||
|
| Clicker Heroes | 루비(편의) | 무료 | **90%** (62,165) | Very Positive | 85% (93) | — |
|
||||||
|
| Melvor Idle | 유료 + 확장 DLC | 유료 | **90%** (16,253) | Very Positive | 87% (92) | — |
|
||||||
|
| Path of Exile | 코스메틱·창고 탭 | 무료 | **89%** (249,924) | Very Positive | 81% (553) | 57% (2025-06) |
|
||||||
|
| Warframe | 코스메틱·편의·플래티넘 유저 거래 | 무료 | **88%** (678,092) | Very Positive | 87% (3,509) | 73% (2025-10) |
|
||||||
|
| Zenless Zone Zero | 가챠 | 무료 | **88%** (16,855) | Very Positive | 87% (2,212) | 86% (2026-07) |
|
||||||
|
| Wuthering Waves | 가챠 | 무료 | **88%** (56,199) | Very Positive | 81% (1,487) | 77% (2026-08) |
|
||||||
|
| Rust | 유료 + 코스메틱·장터 | 유료 | **87%** (1,401,079) | Very Positive | 80% (8,005) | 80% (2026-06) |
|
||||||
|
| Counter-Strike 2 | 케이스·키(유료 랜덤)+장터 | 무료 | **86%** (9,879,915) | Very Positive | 79% (72,928) | 77% (2025-07) |
|
||||||
|
| Idle Wizard | 편의 결제 | 무료 | **86%** (1,838) | Very Positive | 72% (25) | — |
|
||||||
|
| Paladins | 코스메틱·챔피언 해금 | 무료 | **85%** (345,323) | Very Positive | 75% (227) | 78% (2026-04) |
|
||||||
|
| Tap Ninja | 편의 결제 | 무료 | **85%** (9,808) | Very Positive | 84% (69) | 94% (2025-11) |
|
||||||
|
| Idle Slayer – Incremental RPG | 코스메틱·편의 | 무료 | **84%** (10,889) | Very Positive | 81% (119) | 77% (2026-06) |
|
||||||
|
| Banana | 장터 드롭 전용 | ? | **82%** (97,037) | Very Positive | 80% (445) | 73% (2025-07) |
|
||||||
|
| Dota 2 | 코스메틱·트레저(확률 공개)·구독 | 무료 | **80%** (2,785,107) | Very Positive | 69% (23,141) | 65% (2026-03) |
|
||||||
|
| World of Tanks | 프리미엄 차량·계정(파워성) | 무료 | **80%** (101,348) | Mostly Positive | 58% (841) | 37% (2025-05) |
|
||||||
|
| Brawlhalla | 코스메틱 | 무료 | **80%** (413,163) | Mostly Positive | 58% (2,307) | 55% (2026-08) |
|
||||||
|
| Destiny 2 | 확장팩·시즌·코스메틱 | 무료 | **79%** (662,435) | Mostly Positive | 80% (1,566) | 25% (2025-09) |
|
||||||
|
| Once Human | 코스메틱 크레이트·패스 | 무료 | **79%** (189,211) | Mostly Positive | 91% (6,814) | 73% (2025-06) |
|
||||||
|
| THE FINALS | 코스메틱·패스 | 무료 | **78%** (276,789) | Mostly Positive | 74% (2,199) | 73% (2026-08) |
|
||||||
|
| Albion Online | 프리미엄 구독·코스메틱 | 무료 | **78%** (93,993) | Mostly Positive | 72% (731) | 71% (2025-06) |
|
||||||
|
| Legends of Idleon MMO | 젬(편의·일부 랜덤) | ? | **77%** (29,881) | Mostly Positive | 66% (345) | 53% (2026-03) |
|
||||||
|
| Eternal Return | 코스메틱·패스 | 무료 | **77%** (69,486) | Mostly Positive | 66% (451) | 20% (2026-05) |
|
||||||
|
| Idle Champions of the Forgotten Realms | — | 무료 | **77%** (15,068) | Mostly Positive | 62% (58) | — |
|
||||||
|
| Path of Exile 2 | 유료 EA + 코스메틱·창고 탭 | 유료 | **75%** (226,580) | Mostly Positive | 80% (1,630) | 70% (2026-06) |
|
||||||
|
| Marvel Rivals | 코스메틱·만료 없는 패스 | 무료 | **75%** (418,511) | Mostly Positive | 63% (7,750) | 57% (2026-09) |
|
||||||
|
| Black Desert | 편의·펄 상점(P2W 논쟁) | 유료 | **74%** (94,441) | Mostly Positive | 69% (301) | 60% (2026-06) |
|
||||||
|
| EVE Online | 구독(오메가)·PLEX | 무료 | **73%** (39,545) | Mostly Positive | 67% (233) | 60% (2026-07) |
|
||||||
|
| NARAKA: BLADEPOINT | 코스메틱·외형 가챠 | 무료 | **73%** (302,920) | Mostly Positive | 62% (670) | 38% (2025-04) |
|
||||||
|
| War Thunder | 프리미엄 차량·계정(파워성) | 무료 | **71%** (786,305) | Mostly Positive | 70% (9,210) | 46% (2026-06) |
|
||||||
|
| Yu-Gi-Oh! Master Duel | 카드팩(랜덤)·젬 | 무료 | **71%** (101,850) | Mostly Positive | 50% (879) | 48% (2025-10) |
|
||||||
|
| Predecessor | 코스메틱 | 무료 | **71%** (17,768) | Mostly Positive | 67% (203) | 56% (2026-06) |
|
||||||
|
| Lost Ark | 강화·스킨·재화(P2W 논쟁) | 무료 | **70%** (203,179) | Mostly Positive | 60% (137) | 36% (2025-10) |
|
||||||
|
| GIRLS' FRONTLINE 2: EXILIUM | 가챠 | 무료 | **70%** (3,293) | Mixed | 82% (95) | — |
|
||||||
|
| Halo Infinite | 코스메틱·패스 | 무료 | **69%** (181,228) | Mixed | 61% (299) | 53% (2025-07) |
|
||||||
|
| Apex Legends | 코스메틱·팩(랜덤)·배틀패스 | 무료 | **68%** (1,070,462) | Mixed | 68% (5,970) | 58% (2025-04) |
|
||||||
|
| Throne and Liberty | 패스·코스메틱·재화(P2W 논쟁) | 무료 | **67%** (68,876) | Mixed | 55% (199) | — |
|
||||||
|
| Tower of Fantasy | 가챠 | 무료 | **66%** (12,066) | Mixed | 45% (42) | 33% (2025-05) |
|
||||||
|
| Blue Archive | 가챠 | 무료 | **65%** (28,141) | Mixed | 62% (316) | 3% (2026-07) |
|
||||||
|
| MapleStory | 큐브 등 확률형·P2W | 무료 | **61%** (15,538) | Mixed | 38% (129) | 15% (2026-06) |
|
||||||
|
| PUBG: BATTLEGROUNDS | 코스메틱·크레이트·패스+장터 | 무료 | **60%** (2,779,558) | Mixed | 24% (34,420) | 21% (2026-09) |
|
||||||
|
| Delta Force | 코스메틱·패스 | 무료 | **58%** (196,003) | Mixed | 48% (3,005) | 45% (2026-06) |
|
||||||
|
| SMITE 2 | 코스메틱·신 해금 | 무료 | **55%** (23,932) | Mixed | 48% (571) | 43% (2026-04) |
|
||||||
|
| TBH: Task Bar Hero | 장터 드롭·수수료 + DLC 코스튬 | 무료 | **54%** (46,648) | Mixed | 58% (1,850) | 35% (2026-06) |
|
||||||
|
| Overwatch® | 패스·상점(소급 유료화) | ? | **32%** (424,389) | Mostly Negative | 54% (5,794) | 46% (2025-05) |
|
||||||
|
|
||||||
|
- 총 49종 · '무료'는 Steam 스토어 검색 API 가격 기준 · 최근 30일은 리뷰 히스토그램 일별 합계 · 월별 최저는 월 200건 이상인 달 중 최저 긍정률(급락 시점 = 논란 시점)
|
||||||
|
|
||||||
|
- 표에서 읽히는 것: 월간 최저 긍정률이 급락한 달은 BM·운영 논란 시점과 겹친다 — Blue Archive 3%(2026-07, 뽑기 개편) · TBH 35%(2026-06, 장터 폐쇄·제재) · MapleStory 15%(2026-06)·PUBG 21%(2026-09)·Destiny 2 25%(2025-09)·Eternal Return 20%(2026-05)는 원인 미조사(본 안건 범위 밖). 코스메틱·편의형은 최저치도 70~90%대를 유지한다.
|
||||||
|
|
||||||
|
### 3-3. 사례별 교훈
|
||||||
|
1. **호평의 공통분모는 '파워를 팔지 않고, 시간을 존중하며, 산 것을 잃게 하지 않는다'** — 코스메틱·편의·만료 없는 패스.
|
||||||
|
2. **부정의 공통분모는 '이미 준 것을 빼앗는다'** — 소급 유료화(OW2), 패스 개악(Apex), 확률 몰래 변경(MapleStory). 리뷰는 즉시·대량으로 반응하고 Steam 평점은 매출에 직결된다.
|
||||||
|
3. **가챠는 Steam에서도 통하지만 조건부** — 관대함·투명성·완성도가 있으면 90% 가까이 나온다. 다만 FR처럼 아이템에 현금성 가치가 붙는 게임은 유료 랜덤을 얹는 순간 규제 논리(랜덤 + 환금성)에 정확히 걸린다.
|
||||||
|
4. **방치형 F2P는 편의 결제만으로도 95% 이상**(NGU·FAPI). 방치형 유저층은 '결제 강요'에 민감하고 '시간 단축 구매'에는 관대하다 — FR의 인벤토리·창고·짐꾼 DLC는 이 결에 맞는다.
|
||||||
|
|
||||||
|
## 4. 규제·플랫폼 규칙 (2026-09 기준)
|
||||||
|
| 지역 | 내용 | FR 영향 |
|
||||||
|
|---|---|---|
|
||||||
|
| 한국 | 게임산업법 확률형 아이템 확률 표시 의무(2024-03-22 시행, 유상 확률형 전부·광고 포함, 해외 플랫폼 게임도 국내 이용자 서비스 시 적용, 3년 연평균 매출 1억 이하 사업자 제외) · **소송특례 2025-08-01 시행: 입증책임 전환·고의 위반 시 3배 징벌 배상** · 2025-12 매출 3% 과징금 법안 발의(계류) · 넥슨 메이플스토리 큐브 확률 변경 과징금 116.42억(2024-01, 큐브 매출 5,500억, 소송 중) | 유료 랜덤을 두면 표시·소송 부담. 무상 드롭은 표시 의무 밖이지만 자율 공개 권장 |
|
||||||
|
| 미국 | **NY AG v. Valve(2026-02-25 제소)**: CS2·TF2·Dota 2 케이스가 도박 — "Steam Community Market enables cash conversion", 제3자 스킨 도박 사이트, 미성년자; 영구 금지·부당이득 환수·벌금 청구, 2026-09-01 기준 기각 신청 계류 · FTC-Epic $2.45억(다크패턴 구매 유도, 2022-12 합의·2023-03 확정) | 장터 연동 게임의 '랜덤 획득 + 환금성' 조합이 소송 프레임 |
|
||||||
|
| EU | 소비자보호협력 네트워크(CPC) 게임 내 가상 재화 7대 원칙(2025-03-21, 비구속): 실화폐 가격 명시, 비용 은폐·강제 구매 금지, 취약 소비자(아동) 고려 · 벨기에: 유료 랜덤 박스 = 불법 도박(형사 벌금) · 네덜란드: 2020 EA €1,000만 벌금 → 2022 최고행정법원이 뒤집음, 규제기관은 '현금화·재판매 가능 상품'을 여전히 도박으로 봄 | 재화 판매 UI 원칙 준수, 벨기에 등은 유료 랜덤 자체 비활성화 필요 |
|
||||||
|
| Steam | 확률 표시 강제 없음(플랫폼 중 예외) · 장터·수수료·지갑 규칙은 Valve 단독 변경 가능 · 리뷰 유도 이벤트 금지(Blue Archive 사례) | 자율 표시가 곧 방어 |
|
||||||
|
|
||||||
|
## 5. FR 적용 판정(안)
|
||||||
|
### 5-1. 현재 기획 BM(BT23 제안 H·C·I) 대비 판정
|
||||||
|
| 요소 | 초기 컨셉·BT23 | 판정 | 조정(안) |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 장터 수수료 | 핵심 BM | **보조로 강등** | 거래 가능 = 고등급 장비·희소 재료만, 계정 조건(챕터 2 클리어 + 플레이타임), 등록 슬롯 4·쿨다운, 등록 시 로컬 부가 옵션 초기화(PD 결정 ①과 정합), 상위 등급 단계 개방, 수수료율·정책 공개 |
|
||||||
|
| 인벤토리·창고·짐꾼 DLC | DLC | **주 수익원으로 승격** | PoE 창고 탭 모델: 기본 공간은 '불편하지 않게', DLC는 '편하게'. 가방·창고·짐꾼 각 2~3단계 확정 판매 |
|
||||||
|
| 코스메틱 | 미정 | **주 수익원** | 스킨·펫·스킬 이펙트·데스크톱 위젯 테마(FR 고유) 확정 판매, 랜덤 없음 |
|
||||||
|
| 시즌·도전(제안 G) | 도전 4종 | 선택 | 시즌 패스는 만료 없음·재화 페이백·코스메틱 보상만 |
|
||||||
|
| 가챠 | 없음 | **도입 금지** | — |
|
||||||
|
| 프리미엄 재화 | 없음 | 조건부 | 코스메틱·편의 전용 재화, 실화폐 가격 병기, 필요 수량 단위, 게임 내 획득 경로(도전 보상) 병행 |
|
||||||
|
| 파워 판매 | 없음 | 금지 | 경험치·드롭률 부스트도 '방치 효율'을 팔면 P2W로 읽힘 → 금지 또는 코스메틱 수준 |
|
||||||
|
| 드롭 확률 | — | 자율 공개 | 등급별 드롭 확률·장터 거래 조건을 게임 내 표시(한국 표시 형식 준용) |
|
||||||
|
|
||||||
|
### 5-2. 초기 컨셉 "TBH처럼 장터가 핵심"에 대한 PM 의견
|
||||||
|
- TBH는 화제성(동접 54만)은 얻었지만 **BM이 게임 운영을 흔들었다**(봇→서버→Valve 경고→장터 폐쇄→리뷰 하락). 같은 길을 가면 소규모 스튜디오는 서버·CS 비용이 수수료 수익을 넘을 수 있다.
|
||||||
|
- FR의 강점(거대 보스·조작 손맛·데스크톱 위젯)은 코스메틱·편의 판매와 잘 맞는다. 장터는 '방치의 결과물이 가치가 있다'는 매력을 살리는 **리텐션 장치**로 남기되, 규모·법률 리스크를 감안해 매출 계획에서는 보조로 잡는 것을 권고한다.
|
||||||
|
|
||||||
|
## 6. PD 결정 요청
|
||||||
|
1. 장터 수수료를 **보조 수익**으로 재정의하고 코스메틱·편의 DLC를 주 수익원으로 두는 방향 승인 여부
|
||||||
|
2. 거래 가능 아이템 범위(안: 전설 이상 장비 + 희소 재료) · 계정 조건 · 등록 슬롯/쿨다운 수치 확정 시점(밸런스 설계 단계)
|
||||||
|
3. 가챠 도입 금지 · 파워 판매 금지 · 프리미엄 재화는 코스메틱·편의 전용 — 원칙 확정 여부
|
||||||
|
4. 데스크톱 위젯 테마 등 코스메틱 라인업 기획 착수 여부
|
||||||
|
5. 한국 확률 표시 형식 준용 자율 공개(무상 드롭 포함) 여부
|
||||||
|
|
||||||
|
## 7. 출처
|
||||||
|
- Steam 구독자 계약 §3.C·§3.D — https://store.steampowered.com/subscriber_agreement/
|
||||||
|
- Steamworks Inventory Schema — https://partner.steamgames.com/doc/features/inventory/schema
|
||||||
|
- SteamWiki Community Market — https://steam.fandom.com/wiki/Community_Market · 수수료 계산기 https://www.skinwise.gg/learn/steam-market-fees-explained · https://www.steamtradebots.com/tools/market-fee-calculator
|
||||||
|
- TBH 개발팀 공지(스팀 뉴스 API, appid 3678970) 2026-05-30~07-22 · 인벤 2026-06-01 https://www.inven.co.kr/webzine/news/?news=317012 · ZDNet 2026-06-02 https://zdnet.co.kr/view/?no=20260602112232 · 게임메카 2026-06-05 https://www.gamemeca.com/en/view.php?gid=1776119 · 2026-06-09 https://www.gamemeca.com/en/view.php?gid=1776264 · 경향게임스 2026-06-19 https://www.khgames.co.kr/news/articleView.html?idxno=305554 · Steam 토론 https://steamcommunity.com/app/3678970/discussions/0/654856256529547876/
|
||||||
|
- Banana — Wikipedia https://en.wikipedia.org/wiki/Banana_(2024_video_game) · ScreenRant https://screenrant.com/banana-steam-400k-current-players-free-game/ · GamingOnLinux(Cats) https://www.gamingonlinux.com/2024/06/cats-is-another-idle-clicker-item-farming-game-like-banana-rising-up-the-steam-player-counts/
|
||||||
|
- Steam Best of 2025 — https://store.steampowered.com/charts/bestofyear/2025 · https://newsletter.gamediscover.co/p/who-won-steams-best-of-2025-revenue
|
||||||
|
- Apex 배틀패스 — GamesRadar https://www.gamesradar.com/games/apex-legends/72632-overwhelmingly-negative-reviews-later-ea-walks-back-controversial-apex-legends-battle-pass-changes-youve-spoken-and-weve-listened/ · Dexerto https://www.dexerto.com/apex-legends/apex-legends-devs-backtrack-some-battle-pass-changes-after-backlash-2837311/
|
||||||
|
- Marvel Rivals — https://www.gamesradar.com/games/third-person-shooter/marvel-rivals-battle-pass-is-an-anti-fomo-win-that-doesnt-expire-at-the-end-of-seasons-theres-no-need-to-worry-about-not-having-enough-time/ · Overwatch 2 — https://dotesports.com/overwatch/news/overwatch-2-director-acknowledges-negative-steam-reviews-proceeds-to-ignore-them
|
||||||
|
- Blue Archive — GameSpot https://www.gamespot.com/articles/blue-archive-pc-release-appears-to-break-steam-rules/1100-6533084/ · Automaton https://automaton-media.com/en/news/blue-archive-terminates-event-suspected-of-violating-steam-policies-apologizes-for-inconvenience/
|
||||||
|
- 한국 규제 — 정책브리핑 https://www.korea.kr/news/policyNewsView.do?newsId=148924297 · 김앤장 https://www.kimchang.com/ko/insights/detail.kc?sch_section=4&idx=31242 · 법률신문(화우) https://www.lawtimes.co.kr/LawFirm-NewsLetter/210245 · 과징금 법안 https://news.nate.com/view/20251223n26954 · 넥슨 과징금 MBC https://imnews.imbc.com/replay/2024/nw1700/article/6559000_36500.html
|
||||||
|
- 미국 — NY AG 보도자료 https://ag.ny.gov/press-release/2026/attorney-general-james-sues-game-developer-promoting-illegal-gambling-through · NatLawReview https://natlawreview.com/article/new-york-targets-valves-loot-boxes-illegal-gambling · FTC https://www.ftc.gov/news-events/news/press-releases/2023/03/ftc-finalizes-order-requiring-fortnite-maker-epic-games-pay-245-million-tricking-users-making
|
||||||
|
- EU — 집행위 https://commission.europa.eu/news-and-media/news/european-commission-hosts-stakeholders-talks-application-cpc-networks-key-principles-games-virtual-2025-06-03_en · Reed Smith Q&A https://www.reedsmith.com/articles/qas-on-the-eu-consumer-protection-authorities-joint-guidance-paper/ · 루트박스 현황 https://blog.promise.legal/lootbox-regulation-2026-game-studios/ · https://www.franssentolboom.nl/en/loot-boxes-an-overview-of-recent-developments/
|
||||||
|
- Steam 확률 표시 정책 공백 — https://blog.promise.legal/loot-box-laws-game-developers/ · https://en.wikipedia.org/wiki/Regulations_protecting_consumers_from_microtransactions
|
||||||
|
- 리뷰 실측 — `data/steam_reviews_2026-09-25.csv`(Steam appreviews·appreviewhistogram·storesearch API)
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
name,steam_name,appid,free,price,review_all,pos_all,neg_all,pct_all,pos_30d,neg_30d,pct_30d,months_up_down
|
||||||
|
Dota 2,Dota 2,570,무료,,Very Positive,2241248,543859,80,16001,7140,69,2025-04:11608/3970;2025-05:22177/4874;2025-06:13267/4861;2025-07:16591/4769;2025-08:13650/5563;2025-09:19036/5886;2025-10:15654/6155;2025-11:38295/7796;2025-12:15917/6347;2026-01:13163/5635;2026-02:11987/5197;2026-03:13720/7302;2026-04:11873/5736;2026-05:11777/5570;2026-06:12487/6098;2026-07:14531/6818;2026-08:16512/7850;2026-09:13010/5787
|
||||||
|
Counter-Strike 2,Counter-Strike 2,730,무료,,Very Positive,8481541,1398374,86,57257,15671,79,2025-04:60248/13126;2025-05:60317/14578;2025-06:53052/12610;2025-07:60333/18247;2025-08:62467/15694;2025-09:57587/12989;2025-10:71526/17125;2025-11:69096/13457;2025-12:69461/12677;2026-01:83532/15135;2026-02:74264/13621;2026-03:76991/21389;2026-04:66945/14659;2026-05:61471/14033;2026-06:60343/12678;2026-07:63004/16706;2026-08:64481/18479;2026-09:46962/12896
|
||||||
|
Team Fortress 2,Team Fortress 2,440,무료,,Very Positive,1139807,112104,91,4941,433,92,2025-04:5498/325;2025-05:8613/351;2025-06:7600/412;2025-07:7818/450;2025-08:7506/427;2025-09:6783/344;2025-10:6763/442;2025-11:13910/407;2025-12:7154/380;2026-01:6917/431;2026-02:6768/369;2026-03:7273/423;2026-04:7092/407;2026-05:6688/499;2026-06:7102/421;2026-07:7050/492;2026-08:6314/518;2026-09:3962/340
|
||||||
|
Warframe,Warframe,230410,무료,,Very Positive,595429,82663,88,3052,457,87,2025-04:3001/454;2025-05:3168/736;2025-06:3130/652;2025-07:3873/487;2025-08:3376/441;2025-09:2629/319;2025-10:3467/1281;2025-11:3928/467;2025-12:5916/641;2026-01:4967/493;2026-02:3487/345;2026-03:3933/512;2026-04:4182/492;2026-05:3879/484;2026-06:4054/499;2026-07:4443/432;2026-08:3630/445;2026-09:2527/380
|
||||||
|
Path of Exile,Path of Exile,238960,무료,,Very Positive,222587,27337,89,447,106,81,2025-04:607/195;2025-05:493/131;2025-06:1719/1291;2025-07:1196/207;2025-08:799/115;2025-09:621/86;2025-10:796/81;2025-11:1860/300;2025-12:789/107;2026-01:578/93;2026-02:607/97;2026-03:1406/439;2026-04:784/120;2026-05:576/84;2026-06:458/108;2026-07:1095/208;2026-08:855/241;2026-09:348/83
|
||||||
|
Path of Exile 2,Path of Exile 2,2694490,유료,$29.99,Mostly Positive,169936,56644,75,1298,332,80,2026-05:2344/868;2026-06:1731/626;2026-06:1351/451;2026-06:900/382;2026-06:629/234;2026-07:537/158;2026-07:559/118;2026-07:366/108;2026-07:395/84;2026-07:290/55;2026-08:206/43;2026-08:183/47;2026-08:215/58;2026-08:257/51;2026-09:458/121;2026-09:314/92;2026-09:228/58;2026-09:3/2
|
||||||
|
Apex Legends,Apex Legends,1172470,무료,,Mixed,725550,344912,68,4036,1934,68,2025-04:3042/2172;2025-05:3848/2732;2025-06:3815/2473;2025-07:3869/2471;2025-08:3849/2657;2025-09:2681/1832;2025-10:2858/1543;2025-11:7251/2141;2025-12:3553/1920;2026-01:4056/2136;2026-02:3787/1852;2026-03:5115/2480;2026-04:4753/2251;2026-05:5455/2499;2026-06:4351/2200;2026-07:4116/2074;2026-08:5444/2634;2026-09:3270/1552
|
||||||
|
Destiny 2,Destiny 2,1085660,무료,,Mostly Positive,520688,141747,79,1246,320,80,2025-04:1379/537;2025-05:1840/908;2025-06:1410/771;2025-07:2717/2311;2025-08:1491/1129;2025-09:1086/3231;2025-10:918/1740;2025-11:901/886;2025-12:1422/1351;2026-01:1433/843;2026-02:790/663;2026-03:787/629;2026-04:715/575;2026-05:3215/1098;2026-06:7895/1269;2026-07:2415/581;2026-08:1364/403;2026-09:1049/263
|
||||||
|
Lost Ark,Lost Ark,1599340,무료,,Mostly Positive,142986,60193,70,82,55,60,2025-04:170/139;2025-05:165/191;2025-06:173/191;2025-07:207/192;2025-08:216/239;2025-09:142/157;2025-10:120/211;2025-11:156/205;2025-12:121/130;2026-01:98/148;2026-02:88/146;2026-03:85/139;2026-04:65/100;2026-05:80/84;2026-06:70/86;2026-07:70/51;2026-08:78/98;2026-09:71/47
|
||||||
|
Marvel Rivals,Marvel Rivals,2767030,무료,,Mostly Positive,315872,102639,75,4904,2846,63,2026-05:952/521;2026-06:839/513;2026-06:1231/686;2026-06:1051/582;2026-06:1019/549;2026-07:1172/620;2026-07:1822/1073;2026-07:1247/661;2026-07:1259/617;2026-07:1182/643;2026-08:1732/808;2026-08:1457/713;2026-08:1271/632;2026-08:1133/615;2026-09:1046/583;2026-09:1470/731;2026-09:1027/785;2026-09:29/44
|
||||||
|
The Finals,THE FINALS,2073850,무료,,Mostly Positive,216517,60272,78,1625,574,74,2025-04:3100/691;2025-05:2775/766;2025-06:3336/977;2025-07:2687/720;2025-08:3971/920;2025-09:3525/974;2025-10:2874/822;2025-11:3831/643;2025-12:2939/807;2026-01:2906/723;2026-02:2316/659;2026-03:2292/615;2026-04:2249/712;2026-05:2072/570;2026-06:1950/552;2026-07:2655/839;2026-08:1839/680;2026-09:1321/433
|
||||||
|
Once Human,Once Human,2139460,무료,,Mostly Positive,149483,39728,79,6176,638,91,2025-04:2279/729;2025-05:2826/851;2025-06:2130/772;2025-07:7133/854;2025-08:4115/716;2025-09:4148/517;2025-10:5269/477;2025-11:3693/445;2025-12:2141/401;2026-01:2330/493;2026-02:2246/380;2026-03:1628/274;2026-04:3242/441;2026-05:3295/343;2026-06:3255/288;2026-07:2403/330;2026-08:4376/527;2026-09:4581/502
|
||||||
|
War Thunder,War Thunder,236390,무료,,Mostly Positive,559739,226566,71,6406,2804,70,2025-04:7250/2410;2025-05:6570/2588;2025-06:6691/2858;2025-07:5955/2761;2025-08:9220/2676;2025-09:7384/6033;2025-10:7186/2867;2025-11:12778/3111;2025-12:9300/3362;2026-01:9267/3280;2026-02:8242/2799;2026-03:9187/3180;2026-04:7562/4125;2026-05:6861/3214;2026-06:6202/7322;2026-07:5911/3793;2026-08:6517/3587;2026-09:5204/2183
|
||||||
|
World of Tanks,World of Tanks,1407200,무료,,Mostly Positive,80715,20633,80,491,350,58,2025-04:822/296;2025-05:735/1245;2025-06:549/317;2025-07:501/299;2025-08:740/301;2025-09:1266/895;2025-10:776/452;2025-11:1014/338;2025-12:899/412;2026-01:881/408;2026-02:625/344;2026-03:545/345;2026-04:518/319;2026-05:556/312;2026-06:434/289;2026-07:443/285;2026-08:557/338;2026-09:393/289
|
||||||
|
PUBG: BATTLEGROUNDS,PUBG: BATTLEGROUNDS,578080,무료,,Mixed,1667279,1112279,60,8308,26112,24,2025-04:11477/5330;2025-05:10669/5374;2025-06:10947/6244;2025-07:11404/5581;2025-08:11148/5005;2025-09:10013/4323;2025-10:10231/4478;2025-11:11403/4499;2025-12:11931/4543;2026-01:13145/4518;2026-02:11302/3768;2026-03:11897/4818;2026-04:10077/4028;2026-05:9031/3791;2026-06:8662/3545;2026-07:9444/3549;2026-08:9106/3619;2026-09:6900/25520
|
||||||
|
Halo Infinite,Halo Infinite,1240440,무료,,Mixed,125579,55649,69,182,117,61,2025-04:335/266;2025-05:371/316;2025-06:374/324;2025-07:327/290;2025-08:356/286;2025-09:282/217;2025-10:312/261;2025-11:385/261;2025-12:303/194;2026-01:390/200;2026-02:223/140;2026-03:313/219;2026-04:270/156;2026-05:290/186;2026-06:304/177;2026-07:321/182;2026-08:290/171;2026-09:138/100
|
||||||
|
Overwatch 2,Overwatch®,2357570,?,,Mostly Negative,134904,289485,32,3130,2664,54,2025-04:2179/2437;2025-05:1951/2287;2025-06:1804/2002;2025-07:1720/2025;2025-08:2165/2277;2025-09:2013/1978;2025-10:2073/2087;2025-11:2118/1775;2025-12:2198/2116;2026-01:2474/2204;2026-02:8755/6312;2026-03:5500/4001;2026-04:3952/2892;2026-05:3796/3379;2026-06:4203/3220;2026-07:3557/2803;2026-08:3420/2734;2026-09:2636/2283
|
||||||
|
Brawlhalla,Brawlhalla,291550,무료,,Mostly Positive,328995,84168,80,1335,972,58,2025-04:1429/679;2025-05:1516/798;2025-06:1633/808;2025-07:1655/865;2025-08:1377/756;2025-09:1281/635;2025-10:1390/699;2025-11:2746/776;2025-12:1615/791;2026-01:1641/1042;2026-02:1359/862;2026-03:1502/1167;2026-04:1373/956;2026-05:1367/1009;2026-06:1405/1082;2026-07:1415/1069;2026-08:1330/1084;2026-09:1136/803
|
||||||
|
Paladins,Paladins,444090,무료,,Very Positive,293661,51662,85,170,57,75,2025-04:311/75;2025-05:320/82;2025-06:291/74;2025-07:304/63;2025-08:275/64;2025-09:294/72;2025-10:327/61;2025-11:331/69;2025-12:289/47;2026-01:384/58;2026-02:403/68;2026-03:328/57;2026-04:254/70;2026-05:246/47;2026-06:244/51;2026-07:284/57;2026-08:341/79;2026-09:140/44
|
||||||
|
Yu-Gi-Oh! Master Duel,Yu-Gi-Oh! Master Duel,1449850,무료,,Mostly Positive,72607,29243,71,443,436,50,2025-04:746/461;2025-05:676/440;2025-06:731/480;2025-07:695/481;2025-08:651/448;2025-09:524/527;2025-10:476/515;2025-11:1514/636;2025-12:614/452;2026-01:598/438;2026-02:644/482;2026-03:579/429;2026-04:447/397;2026-05:452/372;2026-06:527/476;2026-07:405/330;2026-08:515/491;2026-09:362/376
|
||||||
|
Black Desert,Black Desert,582660,유료,$0.99,Mostly Positive,69418,25023,74,208,93,69,2025-04:230/108;2025-05:189/104;2025-06:181/91;2025-07:233/132;2025-08:224/119;2025-09:229/95;2025-10:199/88;2025-11:364/115;2025-12:271/110;2026-01:247/105;2026-02:176/94;2026-03:354/157;2026-04:255/125;2026-05:171/90;2026-06:164/110;2026-07:211/102;2026-08:293/136;2026-09:162/69
|
||||||
|
Throne and Liberty,Throne and Liberty,2429640,무료,,Mixed,46169,22707,67,110,89,55,2026-05:29/22;2026-06:32/21;2026-06:36/18;2026-06:39/23;2026-06:69/83;2026-07:35/37;2026-07:38/29;2026-07:42/29;2026-07:45/29;2026-07:32/28;2026-08:28/33;2026-08:33/20;2026-08:18/17;2026-08:25/26;2026-09:20/25;2026-09:23/14;2026-09:33/21;2026-09:9/3
|
||||||
|
MapleStory,MapleStory,216150,무료,,Mixed,9466,6072,61,49,80,38,2025-04:96/52;2025-05:91/58;2025-06:90/87;2025-07:51/56;2025-08:58/39;2025-09:55/35;2025-10:42/32;2025-11:105/66;2025-12:53/57;2026-01:40/55;2026-02:46/32;2026-03:47/32;2026-04:43/62;2026-05:37/37;2026-06:61/336;2026-07:33/66;2026-08:38/49;2026-09:40/69
|
||||||
|
Albion Online,Albion Online,761890,무료,,Mostly Positive,73702,20291,78,527,204,72,2025-04:689/208;2025-05:712/235;2025-06:600/243;2025-07:840/287;2025-08:691/266;2025-09:521/202;2025-10:658/229;2025-11:994/229;2025-12:506/201;2026-01:605/206;2026-02:531/194;2026-03:534/181;2026-04:636/215;2026-05:697/255;2026-06:586/194;2026-07:550/189;2026-08:599/200;2026-09:413/166
|
||||||
|
EVE Online,EVE Online,8500,무료,,Mostly Positive,29005,10540,73,156,77,67,2025-04:170/70;2025-05:161/87;2025-06:172/97;2025-07:154/90;2025-08:141/76;2025-09:142/76;2025-10:147/73;2025-11:285/107;2025-12:176/63;2026-01:175/57;2026-02:162/65;2026-03:156/77;2026-04:144/64;2026-05:177/84;2026-06:143/88;2026-07:137/92;2026-08:192/82;2026-09:118/63
|
||||||
|
Delta Force,Delta Force,2507950,무료,,Mixed,113156,82847,58,1455,1550,48,2026-05:397/398;2026-06:357/387;2026-06:336/419;2026-06:394/370;2026-06:552/486;2026-07:423/381;2026-07:474/443;2026-07:463/405;2026-07:444/391;2026-07:404/400;2026-08:391/449;2026-08:405/424;2026-08:336/382;2026-08:364/352;2026-09:416/429;2026-09:336/398;2026-09:309/337;2026-09:79/82
|
||||||
|
Rust,Rust,252490,유료,$19.99,Very Positive,1214872,186207,87,6421,1584,80,2025-04:8759/1384;2025-05:9337/1715;2025-06:7340/1448;2025-07:9054/1814;2025-08:9298/1915;2025-09:6398/1236;2025-10:9844/2207;2025-11:15021/1822;2025-12:13181/2221;2026-01:12703/2092;2026-02:12307/2203;2026-03:9812/1771;2026-04:8324/1717;2026-05:9677/2058;2026-06:9090/2298;2026-07:8610/2108;2026-08:8154/1971;2026-09:5376/1316
|
||||||
|
Legends of IdleOn,Legends of Idleon MMO,1476970,?,,Mostly Positive,23055,6826,77,227,118,66,2025-04:547/134;2025-05:368/109;2025-06:742/136;2025-07:319/74;2025-08:266/75;2025-09:193/37;2025-10:188/33;2025-11:2746/283;2025-12:421/190;2026-01:225/164;2026-02:242/159;2026-03:286/253;2026-04:227/204;2026-05:271/90;2026-06:254/122;2026-07:179/75;2026-08:214/122;2026-09:184/71
|
||||||
|
NGU Idle,NGU IDLE,1147690,무료,,Overwhelmingly Positive,12416,577,96,61,9,87,2025-04:66/4;2025-05:94/10;2025-06:78/2;2025-07:73/9;2025-08:73/5;2025-09:76/6;2025-10:72/4;2025-11:64/4;2025-12:84/5;2026-01:71/2;2026-02:50/4;2026-03:60/6;2026-04:61/9;2026-05:64/5;2026-06:59/4;2026-07:65/5;2026-08:70/7;2026-09:48/5
|
||||||
|
Clicker Heroes,Clicker Heroes,363970,무료,,Very Positive,55697,6468,90,79,14,85,2025-04:131/22;2025-05:119/25;2025-06:129/30;2025-07:121/21;2025-08:118/19;2025-09:104/16;2025-10:129/20;2025-11:129/21;2025-12:111/24;2026-01:126/15;2026-02:97/21;2026-03:102/25;2026-04:99/14;2026-05:86/19;2026-06:90/16;2026-07:99/16;2026-08:79/17;2026-09:63/10
|
||||||
|
Idle Slayer,Idle Slayer – Incremental RPG,1353300,무료,,Very Positive,9201,1688,84,96,23,81,2025-04:136/16;2025-05:147/38;2025-06:177/26;2025-07:139/21;2025-08:145/26;2025-09:105/18;2025-10:170/39;2025-11:163/26;2025-12:143/27;2026-01:131/35;2026-02:121/30;2026-03:129/20;2026-04:109/29;2026-05:109/36;2026-06:165/49;2026-07:108/36;2026-08:111/27;2026-09:75/20
|
||||||
|
Melvor Idle,Melvor Idle,1267910,유료,$9.99,Very Positive,14626,1627,90,80,12,87,2025-04:152/19;2025-05:129/23;2025-06:92/19;2025-07:144/18;2025-08:98/13;2025-09:64/12;2025-10:83/10;2025-11:82/18;2025-12:74/21;2026-01:84/13;2026-02:54/4;2026-03:74/20;2026-04:68/8;2026-05:63/15;2026-06:70/15;2026-07:75/20;2026-08:102/24;2026-09:60/12
|
||||||
|
Banana,Banana,2923300,?,,Very Positive,79383,17654,82,356,89,80,2025-04:960/283;2025-05:976/295;2025-06:784/257;2025-07:739/275;2025-08:704/238;2025-09:605/193;2025-10:610/158;2025-11:2724/409;2025-12:621/191;2026-01:558/168;2026-02:368/118;2026-03:588/132;2026-04:645/139;2026-05:717/119;2026-06:459/126;2026-07:465/122;2026-08:387/123;2026-09:272/75
|
||||||
|
Tower of Fantasy,Tower of Fantasy,2064650,무료,,Mixed,7977,4089,66,19,23,45,2025-04:67/41;2025-05:68/141;2025-06:61/107;2025-07:58/75;2025-08:50/83;2025-09:59/73;2025-10:27/48;2025-11:113/125;2025-12:73/74;2026-01:46/36;2026-02:46/35;2026-03:26/34;2026-04:22/37;2026-05:27/22;2026-06:26/27;2026-07:19/15;2026-08:24/19;2026-09:17/16
|
||||||
|
TBH: Task Bar Hero,TBH: Task Bar Hero,3678970,무료,,Mixed,25015,21633,54,1066,784,58,2026-05:4000/3720;2026-06:4296/7930;2026-06:3923/3337;2026-06:3494/1661;2026-06:2464/1129;2026-07:2011/1468;2026-07:1261/605;2026-07:857/418;2026-07:741/580;2026-07:490/258;2026-08:399/263;2026-08:301/236;2026-08:294/143;2026-08:263/148;2026-09:277/190;2026-09:256/237;2026-09:241/174;2026-09:72/55
|
||||||
|
Zenless Zone Zero,Zenless Zone Zero,4162040,무료,,Very Positive,14792,2063,88,1920,292,87,2026-06:5735/868;2026-06:1389/196;2026-06:815/97;2026-07:641/105;2026-07:623/79;2026-07:654/68;2026-07:1311/193;2026-08:782/104;2026-08:614/82;2026-08:548/88;2026-08:512/86;2026-09:472/74;2026-09:506/83;2026-09:423/59;2026-09:155/20
|
||||||
|
Wuthering Waves,Wuthering Waves,3513350,무료,,Very Positive,49221,6978,88,1205,282,81,2026-05:536/98;2026-06:519/89;2026-06:1282/362;2026-06:832/207;2026-06:611/137;2026-06:467/105;2026-07:825/157;2026-07:543/119;2026-07:410/78;2026-07:379/105;2026-08:307/91;2026-08:289/66;2026-08:480/112;2026-08:330/82;2026-08:310/70;2026-09:303/68;2026-09:290/57;2026-09:128/40
|
||||||
|
GIRLS' FRONTLINE 2: EXILIUM,GIRLS' FRONTLINE 2: EXILIUM,3347400,무료,,Mixed,2305,988,70,78,17,82,2026-05:6/2;2026-06:9/2;2026-06:11/4;2026-06:9/0;2026-06:17/4;2026-06:19/2;2026-07:8/0;2026-07:17/6;2026-07:10/3;2026-07:11/2;2026-08:19/3;2026-08:7/3;2026-08:7/0;2026-08:21/4;2026-09:21/6;2026-09:8/3;2026-09:19/2;2026-09:12/2
|
||||||
|
Reverse: 1999,Reverse: 1999,3092660,무료,,Very Positive,4851,371,93,156,13,92,2026-05:41/4;2026-06:33/5;2026-06:24/1;2026-06:26/1;2026-06:34/3;2026-07:36/7;2026-07:40/4;2026-07:37/1;2026-07:52/9;2026-07:47/10;2026-08:48/2;2026-08:81/11;2026-08:51/7;2026-08:33/2;2026-09:40/6;2026-09:34/2;2026-09:38/2;2026-09:16/2
|
||||||
|
Blue Archive,Blue Archive,3557620,무료,,Mixed,18152,9989,65,196,120,62,2026-05:153/26;2026-06:143/40;2026-06:150/18;2026-06:105/15;2026-06:133/12;2026-07:103/10;2026-07:111/12;2026-07:95/12;2026-07:145/5230;2026-07:83/513;2026-08:55/105;2026-08:92/148;2026-08:67/63;2026-08:51/51;2026-09:44/25;2026-09:56/14;2026-09:37/22;2026-09:1/0
|
||||||
|
Farmer Against Potatoes Idle,Farmer Against Potatoes Idle,1535560,무료,,Very Positive,7747,435,95,45,7,87,2025-04:97/13;2025-05:98/9;2025-06:85/6;2025-07:72/5;2025-08:79/7;2025-09:81/5;2025-10:76/7;2025-11:104/3;2025-12:71/6;2026-01:64/5;2026-02:57/5;2026-03:61/8;2026-04:68/10;2026-05:48/5;2026-06:54/10;2026-07:37/6;2026-08:58/8;2026-09:39/6
|
||||||
|
Leaf Blower Revolution,Leaf Blower Revolution - Idle Game,1468260,무료,,Very Positive,24929,1551,94,63,9,88,2025-04:171/14;2025-05:171/24;2025-06:183/15;2025-07:161/16;2025-08:155/17;2025-09:124/11;2025-10:112/13;2025-11:162/22;2025-12:108/14;2026-01:105/8;2026-02:93/6;2026-03:93/10;2026-04:81/12;2026-05:90/12;2026-06:73/10;2026-07:78/10;2026-08:93/10;2026-09:47/8
|
||||||
|
Tap Ninja,Tap Ninja,1891700,무료,,Very Positive,8339,1469,85,58,11,84,2025-04:72/19;2025-05:79/13;2025-06:69/12;2025-07:74/20;2025-08:91/22;2025-09:77/22;2025-10:81/17;2025-11:233/16;2025-12:89/12;2026-01:92/21;2026-02:80/17;2026-03:75/17;2026-04:105/23;2026-05:66/17;2026-06:63/20;2026-07:75/10;2026-08:72/20;2026-09:48/6
|
||||||
|
Eternal Return,Eternal Return,1049590,무료,,Mostly Positive,53335,16151,77,299,152,66,2025-04:373/191;2025-05:357/149;2025-06:442/163;2025-07:521/1231;2025-08:406/1102;2025-09:235/271;2025-10:393/219;2025-11:491/124;2025-12:374/199;2026-01:434/173;2026-02:394/183;2026-03:369/181;2026-04:296/151;2026-05:571/2322;2026-06:251/208;2026-07:262/172;2026-08:381/270;2026-09:234/112
|
||||||
|
NARAKA: BLADEPOINT,NARAKA: BLADEPOINT,1203220,무료,,Mostly Positive,222080,80840,73,414,256,62,2025-04:1403/2286;2025-05:1136/1284;2025-06:1098/1038;2025-07:1545/1301;2025-08:1333/959;2025-09:932/676;2025-10:1150/709;2025-11:1201/581;2025-12:843/511;2026-01:733/402;2026-02:594/337;2026-03:611/367;2026-04:498/284;2026-05:561/304;2026-06:604/385;2026-07:817/501;2026-08:518/399;2026-09:343/208
|
||||||
|
Idle Wizard,Idle Wizard,992070,무료,,Very Positive,1587,251,86,18,7,72,2025-04:8/3;2025-05:15/2;2025-06:13/1;2025-07:15/6;2025-08:15/1;2025-09:9/7;2025-10:14/2;2025-11:17/3;2025-12:15/1;2026-01:15/4;2026-02:13/4;2026-03:16/1;2026-04:14/0;2026-05:13/4;2026-06:10/0;2026-07:13/1;2026-08:25/5;2026-09:13/7
|
||||||
|
Predecessor,Predecessor,961200,무료,,Mostly Positive,12694,5074,71,135,68,67,2025-04:153/54;2025-05:196/82;2025-06:246/133;2025-07:271/116;2025-08:208/109;2025-09:161/91;2025-10:140/92;2025-11:190/76;2025-12:115/66;2026-01:171/74;2026-02:136/77;2026-03:155/97;2026-04:156/75;2026-05:168/101;2026-06:142/110;2026-07:133/82;2026-08:181/107;2026-09:105/56
|
||||||
|
SMITE 2,SMITE 2,2437170,무료,,Mixed,13109,10823,55,276,295,48,2025-04:529/453;2025-05:396/396;2025-06:359/405;2025-07:382/434;2025-08:321/395;2025-09:299/298;2025-10:295/299;2025-11:392/310;2025-12:304/305;2026-01:384/348;2026-02:370/291;2026-03:338/348;2026-04:295/396;2026-05:326/325;2026-06:276/323;2026-07:276/283;2026-08:276/298;2026-09:234/235
|
||||||
|
Idle Champions of the Forgotten Realms -> Idle Champions of the Forgotten Realms,Idle Champions of the Forgotten Realms,627690,무료,,Mostly Positive,11591,3477,77,36,22,62,2025-04:32/27;2025-05:53/27;2025-06:57/33;2025-07:39/18;2025-08:38/14;2025-09:47/15;2025-10:33/21;2025-11:71/22;2025-12:28/18;2026-01:22/16;2026-02:22/14;2026-03:34/17;2026-04:18/10;2026-05:25/2;2026-06:19/20;2026-07:18/13;2026-08:15/17;2026-09:34/18
|
||||||
|
Deadlock -> Deadlock,Deadlock,1422450,무료,,No user reviews,0,0,,0,0,,
|
||||||
|
|
|
@ -0,0 +1,341 @@
|
||||||
|
# FR BM 시장 조사 v1 PPT (BT26-Plan · 2026-09-25 · PD "md는 보기 힘들다 → PPT로") — 라이트 템플릿(deckkit_light) · 차트는 python-pptx 네이티브
|
||||||
|
import csv, os, sys
|
||||||
|
BASE = r"E:\BurningTimes\공유\기획\FirstRising"
|
||||||
|
sys.path.insert(0, os.path.join(BASE, "리뉴얼", "tools"))
|
||||||
|
from deckkit_light import *
|
||||||
|
from pptx.enum.chart import XL_CHART_TYPE, XL_LEGEND_POSITION, XL_MARKER_STYLE, XL_LABEL_POSITION
|
||||||
|
|
||||||
|
OUT = os.path.join(BASE, "BM", "2026-09-25_FR_BM_시장조사_v1.pptx")
|
||||||
|
CSV = os.path.join(BASE, "BM", "data", "steam_reviews_2026-09-25.csv")
|
||||||
|
D = Deck(brand="FIRSTRISING", brand_sub="BM Market Research · BurningTimes · 2026-09-25")
|
||||||
|
GREEN = RGBColor(0x2E, 0x8B, 0x57)
|
||||||
|
|
||||||
|
# dataviz 기준 팔레트(고정 순서 슬롯 1~7) — 그룹 순서를 바꾸지 않는다
|
||||||
|
GROUPS = [("코스메틱·패스", RGBColor(0x2a, 0x78, 0xd6)), ("편의·QoL 결제", RGBColor(0xeb, 0x68, 0x34)), ("유료 랜덤(케이스·가챠)", RGBColor(0x1b, 0xaf, 0x7a)),
|
||||||
|
("파워·P2W 논쟁", RGBColor(0xed, 0xa1, 0x00)), ("구독·프리미엄", RGBColor(0xe8, 0x7b, 0xa4)), ("장터 드롭·수수료", RGBColor(0x00, 0x83, 0x00)), ("유료+DLC 비교군", RGBColor(0x4a, 0x3a, 0xa7))]
|
||||||
|
GC = dict(GROUPS)
|
||||||
|
GAME_GROUP = {
|
||||||
|
"Warframe": 0, "Path of Exile": 0, "Dota 2": 0, "Paladins": 0, "Brawlhalla": 0, "The Finals": 0, "Marvel Rivals": 0, "Overwatch 2": 0, "Predecessor": 0,
|
||||||
|
"NGU Idle": 1, "Farmer Against Potatoes Idle": 1, "Leaf Blower Revolution": 1, "Clicker Heroes": 1, "Legends of IdleOn": 1, "Idle Champions of the Forgotten Realms": 1,
|
||||||
|
"Counter-Strike 2": 2, "Team Fortress 2": 2, "Reverse: 1999": 2, "Wuthering Waves": 2, "Zenless Zone Zero": 2, "Apex Legends": 2, "Blue Archive": 2, "Once Human": 2, "PUBG: BATTLEGROUNDS": 2,
|
||||||
|
"Lost Ark": 3, "Throne and Liberty": 3, "Black Desert": 3, "MapleStory": 3, "World of Tanks": 3,
|
||||||
|
"Albion Online": 4, "EVE Online": 4,
|
||||||
|
"TBH: Task Bar Hero": 5, "Banana": 5,
|
||||||
|
"Rust": 6, "Melvor Idle": 6, "Path of Exile 2": 6,
|
||||||
|
}
|
||||||
|
SHORT = {"Counter-Strike 2": "CS2", "Team Fortress 2": "TF2", "Path of Exile": "PoE", "Path of Exile 2": "PoE 2 (유료 EA)", "PUBG: BATTLEGROUNDS": "PUBG", "TBH: Task Bar Hero": "TBH 태스크바 히어로",
|
||||||
|
"Farmer Against Potatoes Idle": "FAPI", "Legends of IdleOn": "IdleOn", "Leaf Blower Revolution": "Leaf Blower Rev.", "Idle Champions of the Forgotten Realms": "Idle Champions",
|
||||||
|
"Throne and Liberty": "Throne & Liberty", "Melvor Idle": "Melvor (유료)", "Rust": "Rust (유료)", "Zenless Zone Zero": "ZZZ", "Wuthering Waves": "Wuthering Waves"}
|
||||||
|
|
||||||
|
rows = {r["name"].split(" -> ")[0]: r for r in csv.DictReader(open(CSV, encoding="utf-8-sig"))}
|
||||||
|
|
||||||
|
|
||||||
|
def pct(r, k="pct_all"):
|
||||||
|
return int(r[k]) if r.get(k) not in (None, "") else None
|
||||||
|
|
||||||
|
|
||||||
|
def months(r, min_n=30):
|
||||||
|
out = {}
|
||||||
|
for x in r["months_up_down"].split(";"):
|
||||||
|
if ":" in x:
|
||||||
|
ym, ud = x.split(":"); u, d = map(int, ud.split("/"))
|
||||||
|
if u + d >= min_n:
|
||||||
|
out[ym] = round(100 * u / (u + d))
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
# ───────── 1 표지
|
||||||
|
sl = D.slide("FR BM 시장 조사", "MARKET RESEARCH · BT26-Plan", "Steam 장터 수수료 BM은 적합한가 · Steam 무료 게임 BM 중 무엇이 호평이고 무엇이 부정적인가")
|
||||||
|
D.panel(sl, X0, 1.9, XW, 2.6)
|
||||||
|
D.text(sl, X0 + 0.4, 2.1, XW - 0.8, 0.5, "결론: 장터 수수료는 '보조', 코스메틱·편의 DLC가 '주' — 가챠는 도입하지 않는다", size=20, color=INK, face=F_BLACK)
|
||||||
|
D.text(sl, X0 + 0.4, 2.75, XW - 0.8, 1.6, [
|
||||||
|
"· 방치·드롭형 장터는 아이템 가격이 센트 단위로 수렴하고(TBH $0.16~0.35 · Banana $0.03) 봇·작업장이 구조적으로 몰린다",
|
||||||
|
"· 직접 레퍼런스 TBH는 출시 2주 만에 Valve 경고 → 거래 정책 4회 변경 → 장터 17일 폐쇄 → 리뷰 39%까지 하락",
|
||||||
|
"· '랜덤 획득 + 장터 환금성' 조합은 뉴욕주 검찰의 Valve 소송(2026-02)과 한국·EU 규제가 겨누는 정중앙",
|
||||||
|
"· Steam 리뷰 실측 50종: 코스메틱·편의 결제형은 88~96%, 패스 개악·소급 유료화·P2W·확률 불투명은 30~60%대"], size=11.5, color=BODY, spacing=1.3)
|
||||||
|
D.kpis(sl, X0, 4.75, XW, 1.05, [("50종", "Steam 리뷰 실측(전체·최근 30일·월별)", True), ("106건", "TBH 개발팀 공지 원문(스팀 뉴스 API)", False), ("5개 권역", "한국·미국·EU·벨기에/네덜란드·Steam 규칙", False), ("5건", "PD 결정 요청", True)])
|
||||||
|
D.text(sl, X0, 6.0, XW, 0.6, "총괄PM · 2026-09-25 · 수치는 조사 시점 실측, 추정은 (안) 표기 · 원문 보고서 공유/기획/FirstRising/BM/2026-09-25_FR_BM_시장조사_v1.md", size=9, color=SUB)
|
||||||
|
|
||||||
|
# ───────── 2 결론 한눈에
|
||||||
|
sl = D.slide("결론 한눈에 — PD 질문 5가지", "SUMMARY", "질문별 결론과 근거 요지. 상세 근거는 각 장에서")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.35, [
|
||||||
|
["질문", "결론", "근거 요지"],
|
||||||
|
["Q1 장터 수수료 BM 적합한가", ("주 수익원 부적합 · 보조로 조건부 적합", RED), "수익 = 거래대금 × 게임 수수료(≤10%) · 가격 센트 수렴 · 봇/작업장 · TBH의 Valve 경고·장터 폐쇄 · 도박 규제 · Valve 단독 변경권"],
|
||||||
|
["Q2 호평 BM", ("코스메틱 전용 · 편의(창고·인벤토리) · 만료 없는 패스 · 무과금이 재화를 벌 수 있는 구조", GREEN), "Warframe 88% · PoE 89% · TF2 91% · NGU Idle 96% · FAPI 95% · Marvel Rivals '패스 만료 없음' 호평"],
|
||||||
|
["Q3 부정 BM", ("P2W · 강제·FOMO 패스 개악 · 소급 유료화 · 불투명 확률 · 다크패턴 재화 · 리뷰 유도", RED), "Apex 2024-07(부정 7.2만 → 철회) · Overwatch 2 32% · Lost Ark·MapleStory(과징금 116억) · Blue Archive 65%(2026-07 월간 3%) · Epic $2.45억"],
|
||||||
|
["Q4 가챠 도입", ("FR에는 도입하지 않을 것을 권고", RED), "FR은 아이템 거래가 핵심 → 유료 랜덤 + 거래 가능 = 규제 최상위 위험 · 한국 확률 표시·3배 배상 · Steam은 확률 표시 강제가 없어 소송 노출↑"],
|
||||||
|
["Q5 재화 판매형 IAP", ("코스메틱·편의 전용 재화만, 조건부 허용", GREEN), "실화폐 가격 병기 · 필요 수량 단위 · 게임 내 획득 경로 병행(EU 7원칙 · FTC-Epic · Warframe 플래티넘 사례)"],
|
||||||
|
], colw=[2.3, 3.6, 6.0], size=9.5, hsize=10)
|
||||||
|
D.banner(sl, "권고", "코스메틱 확정 판매 + 인벤토리·창고·짐꾼 DLC를 주 수익원으로, 장터는 고등급·계정 조건·슬롯으로 제한한 보조 장치로 (3장)", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 3 권고 BM 구성
|
||||||
|
sl = D.slide("권고 BM 구성(안) — 주 · 보조 · 금지", "RECOMMENDATION", "초기 컨셉(장터 핵심 + DLC)을 '코스메틱·편의 주 수익 + 장터 보조'로 재배치")
|
||||||
|
cw = (XW - 0.4) / 3
|
||||||
|
for i, (head, color, items) in enumerate([
|
||||||
|
("주 수익원", GREEN, ["코스메틱 확정 판매 — 스킨·펫·스킬 이펙트·데스크톱 위젯 테마(FR 고유)", "편의 DLC — 인벤토리·창고·짐꾼 확장 각 2~3단계(PoE 창고 탭 모델: 기본은 불편하지 않게, DLC는 편하게)", "시즌 패스(선택) — 만료 없음 · 재화 페이백 · 코스메틱 보상만"]),
|
||||||
|
("보조 · 리텐션", INK, ["장터 거래 = 고등급 장비·희소 재료만", "계정 조건 = 챕터 2 클리어 + 플레이타임", "등록 슬롯 4 · 쿨다운 · 등록 시 로컬 부가 옵션 초기화(PD 결정 ①과 정합)", "상위 등급 단계 개방 · 수수료율·정책 공개", "무상 드롭 확률 자율 공개"]),
|
||||||
|
("금지", RED, ["가챠(유료 랜덤) — 거래 가능 아이템과 결합 시 도박 판정 축", "파워 판매 — 경험치·드롭률 부스트도 '방치 효율'을 팔면 P2W로 읽힘", "프리미엄 재화의 파워 전환 · 애매한 묶음 · 강제 구매 UI"])]):
|
||||||
|
x = X0 + i * (cw + 0.2)
|
||||||
|
D.card(sl, x, 1.75, cw, 4.25, shadow=True)
|
||||||
|
D.rect(sl, x, 1.75, cw, 0.5, fill=color, shape=MSO_SHAPE.ROUNDED_RECTANGLE, radius=0.06)
|
||||||
|
D.text(sl, x + 0.2, 1.75, cw - 0.4, 0.5, head, size=13, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
|
||||||
|
D.bullets(sl, x + 0.2, 2.4, cw - 0.4, 3.5, items, size=10, gap=7)
|
||||||
|
D.banner(sl, "원칙", "이미 준 것을 빼앗지 않는다 · 파워를 팔지 않는다 · 시간을 존중한다 — 호평 BM의 공통분모(16장)", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 4 조사 방법
|
||||||
|
sl = D.slide("조사 방법·범위", "METHOD", "1차 자료와 실측을 우선, 추정은 (안)")
|
||||||
|
D.kpis(sl, X0, 1.75, XW, 1.05, [("50종", "F2P·비교군 리뷰 집계 — 전체·최근 30일·월별 18개월", True), ("106건", "TBH 공지 전문 — 스팀 뉴스 API", False), ("5개", "장터 실측 — TBH·Banana·Rust·PUBG·CS2 등록 수·가격", False), ("30여", "출처 링크(보고서 §7)", False)])
|
||||||
|
D.bullets(sl, X0, 3.05, 5.7, 3.0, [
|
||||||
|
[("1차 자료 ", {"bold": True}), ("Steam 구독자 계약 · Steamworks 문서 · TBH 개발팀 공지 · 뉴욕주 검찰·FTC 보도자료 · 정책브리핑·법률신문 · EU 집행위", {})],
|
||||||
|
[("실측 ", {"bold": True}), ("Steam 공개 API(appreviews·appreviewhistogram·storesearch·ICommunityService) — 수집기 BM/tools/steam_reviews.py · 결과 BM/data/steam_reviews_2026-09-25.csv", {})],
|
||||||
|
[("2차 자료 ", {"bold": True}), ("인벤·게임메카·경향게임스·ZDNet·GamesRadar·Dexerto·GameSpot·Wikipedia·법률 리뷰", {})]], size=10, gap=8)
|
||||||
|
D.panel(sl, 6.7, 3.05, 5.93, 3.0)
|
||||||
|
D.text(sl, 6.9, 3.15, 5.5, 0.3, "한계(정직 표기)", size=11, bold=True, color=INK)
|
||||||
|
D.bullets(sl, 6.9, 3.5, 5.5, 2.5, ["Steamworks의 장터 수수료 설정 문서는 파트너 비공개 → 게임 수수료율은 공개 자료 기준 10%, 공식 수치 미확인", "개별 게임의 수수료 매출은 비공개 → 규모는 (안)", "리뷰 급락의 원인은 BM 논란이 확인된 사례만 기술, 나머지는 '원인 미조사'", "Steam appdetails API가 다수 앱에 실패 → 무료 여부는 스토어 검색 API 가격으로 판정"], size=9.5, gap=6)
|
||||||
|
|
||||||
|
# ───────── 5 장터 구조
|
||||||
|
sl = D.slide("Steam 커뮤니티 장터 — 구조와 규칙", "MARKET MECHANICS", "구매자가 수수료를 부담하고, 지갑은 현금화되지 않으며, 규칙은 Valve가 단독으로 바꾼다")
|
||||||
|
D.table(sl, X0, 1.7, 8.2, 4.4, [
|
||||||
|
["항목", "내용", "출처"],
|
||||||
|
["수수료", "Steam 5% + 게임별 수수료(퍼블리셔 몫, 통상 10%) ≈ 15% · 종류별 최소 $0.01", "SteamWiki · 수수료 계산기 · Rust"],
|
||||||
|
["등록 상한", "건당 $2,000(미국)", "SteamWiki"],
|
||||||
|
["지갑", "\"no cash value and are not exchangeable for cash\" — 현금화 불가", "구독자 계약 §3.C"],
|
||||||
|
["플랫폼 권한", "\"Valve may decide to cease operation … change the fees\" · 아이템은 소유권 없는 라이선스", "구독자 계약 §3.D"],
|
||||||
|
["기술", "Inventory Service: tradable·marketable 플래그, 플레이타임 드롭 창당 최대 10", "Steamworks 문서"],
|
||||||
|
["확률 표시", "Steam은 Apple·Google·콘솔과 달리 강제 없음 → 자율 표시가 곧 방어", "Promise Legal 2025"],
|
||||||
|
], colw=[1.5, 4.9, 1.8], size=9.5)
|
||||||
|
D.card(sl, 9.1, 1.7, 3.53, 4.4, shadow=True)
|
||||||
|
D.text(sl, 9.3, 1.85, 3.2, 0.3, "수수료 예시", size=11, bold=True, color=INK)
|
||||||
|
D.text(sl, 9.3, 2.25, 3.2, 3.7, [
|
||||||
|
[("$10.00 판매", {"bold": True, "color": INK})], "→ 구매자 $11.50 지불", "→ Steam $0.50 · 게임 $1.00", "→ 판매자 $10.00", "",
|
||||||
|
[("$0.03 판매", {"bold": True, "color": INK})], "→ Steam $0.01 · 게임 $0.01(최소)", "→ 판매자 $0.01 (수수료 67%)", "",
|
||||||
|
[("동접 1만 · 하루 1만 건 · 평균 $0.30", {"bold": True, "color": INK})], "→ 거래대금 $3,000/일", [("→ 게임 수수료 $300/일 ≈ 월 $9,000 (안)", {"color": RED, "bold": True})]], size=9.5, spacing=1.25)
|
||||||
|
D.text(sl, X0, 6.25, XW, 0.4, "※ 게임별 수수료율의 공식 수치는 Steamworks 비공개 영역이라 미확인 — 공개 자료·거래 사이트 기준 10%로 계산", size=8.5, color=SUB)
|
||||||
|
|
||||||
|
# ───────── 6 TBH 개요
|
||||||
|
sl = D.slide("사례 A — TBH: 태스크바 히어로 (FR의 직접 레퍼런스)", "CASE STUDY", "한국 인디 · 2026-05-27 출시 · F2P + Steam 장터 거래 + DLC 코스튬 · 누젬·테세라크 공동 개발")
|
||||||
|
D.kpis(sl, X0, 1.75, XW, 1.05, [("54만", "일일 최고 동접(스팀 역대 30위권)", True), ("$700", "출시 초 '무쇠 주괴' 1개 장터가", False), ("39%", "6/9 리뷰 긍정률 '대체로 부정적'", True), ("6,180", "치팅 제재 계정(6/25 누적)", False), ("17일", "장터 등록 폐쇄(6/8~6/25)", True)])
|
||||||
|
D.bullets(sl, X0, 3.05, 6.0, 3.1, [
|
||||||
|
"동접: 출시일 1만 → 4일 후 10만 → 6/5 26.8만(일 최고 5위) → 6/9 41.5만 → 최고 54만",
|
||||||
|
"BM: 게임에서 얻은 상자·아이템을 장터에서 팔아 지갑 자금으로 환전 · DLC 코스튬은 초기 무료 지급 후 9/21 유료 전환 · \"DLC 없이도 진행 지장 없음\"(인벤)",
|
||||||
|
"문제: 현금성 아이템을 노린 매크로·작업장이 대거 유입 → Steam 아이템 서버 과부하 → 상자 미수령·합성 재료 증발 버그",
|
||||||
|
"Valve: \"서버 사용 기준을 충족하지 못했다\" 통보 → 개발팀 \"충분한 기술 검토 없이 출시해 죄송\" 사과"], size=10, gap=7)
|
||||||
|
D.panel(sl, 6.9, 3.05, 5.73, 3.1)
|
||||||
|
D.text(sl, 7.1, 3.15, 5.4, 0.3, "리뷰 추이 (Steam 실측·기사)", size=11, bold=True, color=INK)
|
||||||
|
tb = rows["TBH: Task Bar Hero"]; m = months(tb)
|
||||||
|
D.table(sl, 7.1, 3.5, 5.35, 2.5, [["시점", "긍정률", "리뷰 수", "상태"], ["06-02", "약 50%", "6,000+", "긍/부 반반(ZDNet)"], ["06-05", "43%", "11,671", "복합적(게임메카)"], ["06-09", "39%", "18,830", "대체로 부정적(게임메카)"],
|
||||||
|
[f"2026-06 월간", f"{m.get('2026-06', '—')}%", "—", "월간 최저(실측)"], ["09-25 전체", f"{pct(tb)}%", f"{int(tb['pos_all']) + int(tb['neg_all']):,}", f"{tb['review_all']}(실측)"]], colw=[1.3, 1.0, 1.1, 2.0], size=9)
|
||||||
|
|
||||||
|
# ───────── 7 TBH 타임라인
|
||||||
|
sl = D.slide("TBH 타임라인 — 봇 → Valve 경고 → 정책 변경 → 폐쇄", "CASE STUDY · TIMELINE", "개발팀 공지 원문(스팀 뉴스 API)과 기사 기준, KST · 거래 정책 변경 4회 · 장터 등록 폐쇄 17일")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.9, [
|
||||||
|
["날짜", "사건", "출처"],
|
||||||
|
["05-27", "정식 출시(F2P). 같은 날 치팅 프로그램 제재 공지", "공지"],
|
||||||
|
["05-30", "Steam 아이템 서버 불안정 · 장터 대량 구매 시 미수령 버그", "공지"],
|
||||||
|
["05-31~06-14", "치팅 계정 영구 제재 매일 공지 — 411·559·285·3,534·410·607·425·322·275·189·223·196 · 2회 감지 시 장터 영구 제한 · 제재 기준 모호 항의 → 소명 창구", "공지·인벤"],
|
||||||
|
["06-01", "[긴급] 장터 아이템 즉시 회수 — \"Steam has confirmed that … we failed to properly meet their server usage guidelines … Steam has asked us to reduce the number of items\" → 큐브 Lv10 이상만 · 전설 이상 장비만 거래 · 일반~희귀 장비·특정 레벨 장비 삭제", "공지"],
|
||||||
|
["06-02", "1.00.07 적용, \"the fault of our development team for failing to follow Steam's technical guidelines\" · 장터 등록 재개", "공지"],
|
||||||
|
["06-08~06-25", "장터 등록 임시 폐쇄 — \"Bots and similar activity are currently generating excessive traffic\" · 자체 서버 이전(06-15)", "공지"],
|
||||||
|
["06-19", "패치 후 이모탈 등급 수십 달러 → 센트, \"하루 종일 굴려도 한 달 20~30달러 건지기조차 불가능\" · 일반 유저 오제재", "경향게임스"],
|
||||||
|
["06-25", "장터 재개 — 등록 슬롯 4 · 슬롯당 8시간 쿨다운 · 상위 3등급 등록 일시 금지 · 6,180계정 제재", "공지"],
|
||||||
|
["07-22", "1.01.00 상위 등급 거래 재개 · 밸런스 조정", "공지"],
|
||||||
|
["09-25", f"실측: 등록 아이템 1,063종, 상위 노출 $0.35(10,752건)·$0.16(13,503건) · 리뷰 {pct(tb)}% {tb['review_all']}", "장터·리뷰 API"],
|
||||||
|
], colw=[1.3, 9.2, 1.4], size=8.8, hsize=9.5)
|
||||||
|
|
||||||
|
# ───────── 8 TBH 교훈
|
||||||
|
sl = D.slide("TBH에서 배우는 것 — 나중에 도달한 정책을 처음부터", "CASE STUDY · LESSONS", "거래 범위를 넓게 열면 봇이 먼저 오고, Valve의 서버 기준이 개발사보다 먼저 한계에 닿는다")
|
||||||
|
cw = (XW - 0.4) / 3
|
||||||
|
for i, (n, head, body) in enumerate([
|
||||||
|
(1, "거래 가능 범위는 좁게 시작", "TBH는 한 달 만에 '전설 이상 + 큐브 Lv10 + 슬롯 4 + 8시간 쿨다운 + 상위 등급 단계 개방'에 도달했다. FR은 이 값을 출시 전 기본값으로 둔다."),
|
||||||
|
(2, "자체 서버 검증이 전제", "Steam 인벤토리 호출만으로 대량 아이템을 다루면 Valve 가이드라인을 넘는다. TBH는 서버 이전에 3주가 걸렸고 그동안 장터를 닫았다."),
|
||||||
|
(3, "가격 붕괴가 곧 이탈", "'쌀먹' 유저가 몰리면 가격이 센트로 떨어지고 일반 유저도 떠난다. 소멸 경로(합성·제물)와 드롭 상한이 없으면 장터는 인플레이션 기계가 된다.")]):
|
||||||
|
x = X0 + i * (cw + 0.2)
|
||||||
|
D.card(sl, x, 1.75, cw, 2.9, shadow=True); D.num(sl, x + 0.2, 1.95, n)
|
||||||
|
D.text(sl, x + 0.6, 1.9, cw - 0.8, 0.4, head, size=12, bold=True, color=INK)
|
||||||
|
D.text(sl, x + 0.2, 2.4, cw - 0.4, 2.2, body, size=10, color=BODY, spacing=1.3)
|
||||||
|
D.panel(sl, X0, 4.85, XW, 1.25)
|
||||||
|
D.text(sl, X0 + 0.25, 4.95, XW - 0.5, 1.1, [[("유저 시선 ", {"bold": True, "color": INK}), ("\"이 게임 왜 장터 시스템 고집하는거지? 장터 수수료 절대 못 놓겠다 이건가?\"(Steam 토론) — 운영이 흔들리는 순간 수수료 BM은 '개발사 탐욕'으로 읽힌다.", {})],
|
||||||
|
[("반대 사례 ", {"bold": True, "color": INK}), ("Banana는 82% '매우 긍정적'(97,037명)이지만 게임성 없는 드롭 기계라 FR의 모델이 될 수 없다(9장).", {})]], size=10, spacing=1.3)
|
||||||
|
D.banner(sl, "FR", "장터는 '방치의 결과물이 가치 있다'는 매력을 살리는 리텐션 장치로 남기되, 매출 계획에서는 보조로 잡는다", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 9 Banana · CS2류
|
||||||
|
sl = D.slide("사례 B·C — Banana vs CS2·Dota 2·TF2·Rust", "CASE STUDY", "드롭 전용 클리커와 장터가 주 수익인 대작 — 같은 '장터'라도 규모·희소성·코스메틱 전용 여부에 따라 전혀 다른 결과")
|
||||||
|
D.card(sl, X0, 1.75, 5.85, 4.3, shadow=True)
|
||||||
|
D.text(sl, X0 + 0.2, 1.85, 5.5, 0.35, "B. Banana · Egg · Cats (2024)", size=12, bold=True, color=INK)
|
||||||
|
D.bullets(sl, X0 + 0.2, 2.3, 5.45, 3.7, [
|
||||||
|
"2024-04-23 출시, 4인 개발. 클릭하면 바나나가 드롭 → 장터 거래. 6월 동접 70만~91.7만으로 Steam 2위",
|
||||||
|
"개발자: \"6월 초 플레이어의 약 2/3가 봇\" · IGN: \"기술적으로 사기는 아니지만\" Steam과 개발자에게만 이익인 인공 경제",
|
||||||
|
"커뮤니티는 Valve에 장르 금지를 청원 — Valve의 공식 조치는 확인되지 않음",
|
||||||
|
f"실측 09-25: 등록 457종 · 'Banana' $0.03에 2,439만 건 · 리뷰 {pct(rows['Banana'])}% {rows['Banana']['review_all']}({int(rows['Banana']['pos_all']) + int(rows['Banana']['neg_all']):,}명)",
|
||||||
|
[("판정 ", {"bold": True, "color": RED}), ("'공짜로 돈이 생긴다'는 화제성이 리뷰를 떠받치지만 게임성 없는 BM — FR의 참고 모델이 아님", {})]], size=9.8, gap=6)
|
||||||
|
D.card(sl, 6.78, 1.75, 5.85, 4.3, shadow=True)
|
||||||
|
D.text(sl, 6.98, 1.85, 5.5, 0.35, "C. 장터가 주 수익이 되는 조건", size=12, bold=True, color=INK)
|
||||||
|
D.bullets(sl, 6.98, 2.3, 5.45, 3.7, [
|
||||||
|
"Steam Best of 2025 플래티넘(상위 12, 매출 $1.25억↑) 중 F2P = Dota 2·CS2·PUBG·Apex, 4년 연속",
|
||||||
|
"CS2 스킨 시장 $43억(2025-03, 뉴욕주 검찰 인용) · 한 아이템 $100만 이상 거래",
|
||||||
|
"공통점: 수백만 동접 + 케이스/키(유료 랜덤) + 희소성 통제 + 코스메틱 전용(파워 무관)",
|
||||||
|
"Rust·PUBG: 장터 5,497·358종, 아이템 스토어 직접 판매 + 장터 수수료 병행, 전부 코스메틱",
|
||||||
|
[("판정 ", {"bold": True, "color": RED}), ("이 규모와 희소성 설계가 전제이며, 바로 이 모델이 지금 뉴욕주 소송의 피고(17장)", {})]], size=9.8, gap=6)
|
||||||
|
D.banner(sl, "결론", "장터 수수료는 '규모 × 희소성 × 코스메틱'일 때만 주 수익이 된다 — FR의 출발 조건과 다르다", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 10 수익 감각
|
||||||
|
sl = D.slide("FR에 적용했을 때의 수익 감각 (안)", "REVENUE MODEL", "개발사 수익 = 장터 거래대금 × 게임 수수료율(≤10%) — 거래가 성립할 때만 발생")
|
||||||
|
D.table(sl, X0, 1.7, 7.4, 3.0, [
|
||||||
|
["시나리오(안)", "동접", "일 거래", "평균가", "거래대금/일", "게임 수수료/월"],
|
||||||
|
["A 방치형 현실치", "1만", "1만 건", "$0.30", "$3,000", ("$9,000", RED)],
|
||||||
|
["B 규모 10배", "10만", "10만 건", "$0.30", "$30,000", ("$90,000", RED)],
|
||||||
|
["C 희소성 유지", "1만", "2천 건", "$5.00", "$10,000", ("$30,000", RED)],
|
||||||
|
["D 센트 수렴(TBH·Banana)", "10만", "50만 건", "$0.03", "$15,000", ("최소 $0.01/건 상한 → $150,000 이하", RED)],
|
||||||
|
], colw=[2.2, 0.8, 1.0, 0.9, 1.3, 2.2], size=9.5)
|
||||||
|
D.text(sl, X0, 4.8, 7.4, 1.3, ["· 아이템당 $5~20을 유지하려면 희소성(고등급만 거래·드롭 상한·소멸 요소)이 필수 — 그 순간 '방치로 모아 판다'는 접근성은 줄어든다",
|
||||||
|
"· D처럼 센트로 수렴하면 최소 수수료 $0.01이 상한처럼 작동하고, 그 거래량을 만드는 것은 대개 봇이다"], size=9.5, color=BODY, spacing=1.3)
|
||||||
|
D.card(sl, 8.3, 1.7, 4.33, 4.4, shadow=True)
|
||||||
|
D.text(sl, 8.5, 1.85, 4.0, 0.35, "비교: 편의 DLC(안)", size=12, bold=True, color=INK)
|
||||||
|
D.text(sl, 8.5, 2.3, 4.0, 3.7, [[("동접 1만 · 월 활성 5만(안)", {"bold": True, "color": INK})], "전환율 3~5% × $5~10", [("→ 월 $7,500 ~ $25,000", {"bold": True, "color": RED})], "",
|
||||||
|
"봇 리스크 없음 · Valve 서버 가이드라인 무관 · 규제 무관(확정 구매)", "", [("순환 구조(PoE·Warframe식)", {"bold": True, "color": INK})], "장터에서 지갑 자금이 생긴다 → 코스메틱·DLC를 산다 → 장터는 결제의 '입구'로 기능"], size=9.8, spacing=1.3)
|
||||||
|
D.banner(sl, "판정", "장터 수수료 단독은 봇 리스크를 안고도 편의 DLC 이하 — 보조 수익으로 배치", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 11 리스크
|
||||||
|
sl = D.slide("장터 BM 리스크와 FR 대응(안)", "RISK", "실제 사례 → FR 설계 기본값")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.4, [
|
||||||
|
["리스크", "실제 사례", "FR 대응(안)"],
|
||||||
|
["봇·작업장·치터", "TBH 6,180계정 제재·매일 수백 건 · Banana 2/3 봇", "계정 조건(챕터 진행·플레이타임) · 드롭 상한 · 등록 슬롯·쿨다운 · 자체 서버 검증"],
|
||||||
|
["Valve 서버 가이드라인", "TBH: \"아이템 수를 줄이라\" 요구 · 장터 17일 폐쇄", "아이템 종류·인벤토리 호출 최소화 · 출시 전 Steam 기술 검토"],
|
||||||
|
["가격 붕괴 → 이탈", "TBH 이모탈 등급 수십 달러 → 센트", "거래 가능 등급 제한 · 소멸 경로(제물·합성) · 상위 등급 단계 개방"],
|
||||||
|
["법률(도박)", "NY AG v. Valve(장터 환금성) · 벨기에 유료 랜덤 금지 · 한국 확률 표시·3배 배상", "유료 랜덤 요소 없음 · 드롭 확률 자율 표시 · 장터 아이템은 확정 옵션(PD 결정 ①)만"],
|
||||||
|
["플랫폼 의존", "Valve가 수수료·장터를 변경·중단 가능(SSA 3.D)", "장터 없이도 성립하는 BM(코스메틱·DLC)을 기본으로"],
|
||||||
|
["평판", "\"장터 수수료 절대 못 놓겠다\"(TBH) · Banana '스캠' 논쟁", "수수료율·정책 공개 · 장터를 게임의 목적이 아니라 결과로 배치"],
|
||||||
|
], colw=[1.9, 4.6, 5.4], size=9.5)
|
||||||
|
|
||||||
|
# ───────── 12·13 BM 유형별 반응
|
||||||
|
TYPES = [
|
||||||
|
["BM 유형", "대표작(전체 리뷰 긍정률·실측)", "호평 요인", "부정 요인·사례"],
|
||||||
|
["코스메틱 전용", "Warframe 88% · PoE 89% · TF2 91% · Dota 2 80% · Brawlhalla 80% · Marvel Rivals 75%", "파워 무관 · 무과금 완주 · \"가장 윤리적인 F2P\"", "코스메틱도 유료 랜덤(케이스)이면 도박 논쟁(CS2 86%지만 NY 소송)"],
|
||||||
|
["편의·QoL 판매", "PoE 창고 탭 · Warframe 슬롯 · NGU Idle 96% · FAPI 95% · Leaf Blower 94%", "'시간 절약'을 사되 필수 아님 · 방치형 유저 수용", "기본 공간을 좁혀 강매로 느끼면 반발(IdleOn 77%의 젬 불만)"],
|
||||||
|
["배틀패스·시즌", "Marvel Rivals(만료 없음) · Dota 2 · The Finals 78%", "만료 없음 · 재화 페이백 · 가격 유지", "Apex 2024-07: 시즌당 패스 2개·최대 $20 → 부정 72,632건 → 철회"],
|
||||||
|
["유료 랜덤(케이스·가챠)", "CS2 86% · Reverse:1999 93% · Wuthering Waves 88% · ZZZ 88% / Blue Archive 65% · GFL2 70% · Tower of Fantasy 66%", "확률·천장 공개 · 무과금 친화(WuWa: 시작 5성 2종 선택) · 완성도", "뽑기 개편 시 즉각 리뷰 폭격(Blue Archive 2026-07 월간 3%) · 리뷰 유도 이벤트로 Steam 규정 위반 · 규제 대상"],
|
||||||
|
]
|
||||||
|
TYPES2 = [
|
||||||
|
["BM 유형", "대표작(전체 리뷰 긍정률·실측)", "호평 요인", "부정 요인·사례"],
|
||||||
|
["파워 판매·강화 RNG(P2W)", "Lost Ark 70%(최근 30일 60%) · Throne & Liberty 67% · Black Desert 74% · MapleStory 61%(최근 38%)", "—", "골드 봇·강화 확률·과금 격차 · MapleStory 큐브 확률 몰래 변경 → 공정위 과징금 116억"],
|
||||||
|
["소급 유료화·콘텐츠 잠금", "Overwatch 2 32%(최근 54%)", "—", "F2P 전환하며 무료 획득 경로 차단·영웅을 패스에 잠금 → 첫날 2만 건 부정, Steam 역대 최저"],
|
||||||
|
["재화(프리미엄 통화) 판매", "대부분의 F2P", "실화폐 가격 병기 · 필요 수량 단위 · 게임 내 획득(Warframe 플래티넘 거래)", "애매한 묶음·강제 구매·아동 결제 → FTC-Epic $2.45억 환불 · EU 7원칙"],
|
||||||
|
["장터 드롭·수수료", "TBH 54% · Banana 82%", "'돈이 되는 방치' 초기 화제성", "봇·서버·가격 붕괴·규제·플랫폼 의존(6~11장)"],
|
||||||
|
["유료 게임 + DLC(비교군)", "Melvor Idle 90% · Rust 87% · PoE 2 75%(유료 EA)", "확정 구매 · 확장팩 가치", "DLC 남발 시 반발"],
|
||||||
|
]
|
||||||
|
sl = D.slide("Steam 무료 게임 BM 유형별 유저 반응 (1/2)", "F2P BM LANDSCAPE", "리뷰 긍정률은 Steam 공개 API 실측(2026-09-25, 전체 기간)")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.6, TYPES, colw=[1.7, 4.0, 2.9, 3.4], size=9.2, hsize=9.5)
|
||||||
|
sl = D.slide("Steam 무료 게임 BM 유형별 유저 반응 (2/2)", "F2P BM LANDSCAPE", "호평의 공통분모 = 파워를 팔지 않고, 시간을 존중하며, 산 것을 잃게 하지 않는다")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.4, TYPES2, colw=[1.7, 4.0, 2.9, 3.4], size=9.2, hsize=9.5)
|
||||||
|
|
||||||
|
# ───────── 14 리뷰 차트
|
||||||
|
sl = D.slide("리뷰 실측 — 게임별 긍정률(전체 기간), BM 유형별 색", "DATA · STEAM REVIEWS", "30종 · Steam 공개 API 2026-09-25 · 코스메틱·편의형은 상단, P2W·소급 유료화는 하단에 몰린다")
|
||||||
|
sel = ["NGU Idle", "Farmer Against Potatoes Idle", "Leaf Blower Revolution", "Reverse: 1999", "Team Fortress 2", "Clicker Heroes", "Melvor Idle", "Path of Exile", "Warframe", "Zenless Zone Zero", "Wuthering Waves", "Rust", "Counter-Strike 2", "Paladins",
|
||||||
|
"Banana", "Dota 2", "Brawlhalla", "Once Human", "The Finals", "Albion Online", "Legends of IdleOn", "Path of Exile 2", "Marvel Rivals", "Black Desert", "Lost Ark", "Apex Legends", "Throne and Liberty", "Blue Archive", "MapleStory", "PUBG: BATTLEGROUNDS", "TBH: Task Bar Hero", "Overwatch 2"]
|
||||||
|
data = sorted([(SHORT.get(n, n), pct(rows[n]), GAME_GROUP[n]) for n in sel if n in rows and pct(rows[n]) is not None], key=lambda t: -t[1])
|
||||||
|
cd = CategoryChartData(); cd.categories = [d[0] for d in data]; cd.add_series("긍정률", [d[1] for d in data])
|
||||||
|
ch = sl.shapes.add_chart(XL_CHART_TYPE.BAR_CLUSTERED, Inches(X0), Inches(2.05), Inches(8.6), Inches(4.65), cd).chart
|
||||||
|
ch.font.name = F_REG; ch.font.size = Pt(8); ch.font.color.rgb = BODY; ch.has_legend = False; ch.has_title = False
|
||||||
|
va = ch.value_axis; va.minimum_scale = 0; va.maximum_scale = 100; va.visible = False; va.has_major_gridlines = False
|
||||||
|
ca = ch.category_axis; ca.reverse_order = True; ca.tick_labels.font.size = Pt(8); ca.format.line.color.rgb = RULE
|
||||||
|
pl = ch.plots[0]; pl.gap_width = 40; s = pl.series[0]
|
||||||
|
for i, d in enumerate(data):
|
||||||
|
p = s.points[i]; p.format.fill.solid(); p.format.fill.fore_color.rgb = GROUPS[d[2]][1]
|
||||||
|
pl.has_data_labels = True; dl = pl.data_labels; dl.number_format = '0"%"'; dl.number_format_is_linked = False; dl.font.size = Pt(8); dl.font.color.rgb = INK; dl.position = XL_LABEL_POSITION.OUTSIDE_END
|
||||||
|
# 범례(수동) — 고정 순서
|
||||||
|
lx = X0
|
||||||
|
for name, color in GROUPS:
|
||||||
|
D.rect(sl, lx, 1.72, 0.16, 0.16, fill=color); D.text(sl, lx + 0.2, 1.68, 1.6, 0.24, name, size=8.5, color=BODY); lx += 0.42 + 0.115 * len(name)
|
||||||
|
D.panel(sl, 9.5, 2.05, 3.13, 4.65)
|
||||||
|
D.text(sl, 9.7, 2.15, 2.8, 0.3, "읽는 법", size=11, bold=True, color=INK)
|
||||||
|
D.bullets(sl, 9.7, 2.5, 2.8, 4.1, ["편의·QoL 결제형 방치 게임(NGU·FAPI·Leaf Blower)이 90%대 최상단", "유료 랜덤도 관대·투명하면 90% 근처(Reverse:1999·WuWa·ZZZ) — 단 FR은 거래 연동이라 별개", "P2W 논쟁·소급 유료화가 하단(Lost Ark·T&L·MapleStory·OW2)", "장터 드롭형: Banana 82% vs TBH 54% — 게임성 유무가 아니라 운영 사고가 갈랐다", "PUBG 60%는 최근 30일 24%(원인 미조사)"], size=9, gap=5)
|
||||||
|
|
||||||
|
# ───────── 15 월별 추이
|
||||||
|
sl = D.slide("월별 긍정률 추이 — 논란은 리뷰에 즉시 나타난다", "DATA · MONTHLY TREND", "리뷰 히스토그램 월별 집계(월 30건 이상), 2025-04 ~ 2026-09 · 3종만 표시(전체는 CSV)")
|
||||||
|
series = [("TBH 태스크바 히어로", "TBH: Task Bar Hero"), ("Blue Archive", "Blue Archive"), ("Warframe(안정 기준선)", "Warframe")]
|
||||||
|
ms = {n: months(rows[k]) for n, k in series}
|
||||||
|
cats = sorted(set(k for m in ms.values() for k in m))
|
||||||
|
cd = CategoryChartData(); cd.categories = [c[2:] for c in cats]
|
||||||
|
for n, _ in series:
|
||||||
|
cd.add_series(n, [ms[n].get(c) for c in cats])
|
||||||
|
ch = sl.shapes.add_chart(XL_CHART_TYPE.LINE_MARKERS, Inches(X0), Inches(1.75), Inches(8.6), Inches(4.9), cd).chart
|
||||||
|
ch.font.name = F_REG; ch.font.size = Pt(8.5); ch.font.color.rgb = BODY; ch.has_title = False
|
||||||
|
ch.has_legend = True; ch.legend.position = XL_LEGEND_POSITION.TOP; ch.legend.include_in_layout = False; ch.legend.font.size = Pt(9)
|
||||||
|
va = ch.value_axis; va.minimum_scale = 0; va.maximum_scale = 100; va.major_unit = 25; va.has_major_gridlines = True; va.major_gridlines.format.line.color.rgb = RULE; va.format.line.color.rgb = RULE
|
||||||
|
va.tick_labels.number_format = '0"%"'; va.tick_labels.number_format_is_linked = False
|
||||||
|
ca = ch.category_axis; ca.format.line.color.rgb = RULE; ca.tick_labels.font.size = Pt(8)
|
||||||
|
for i, (n, _) in enumerate(series):
|
||||||
|
s = ch.plots[0].series[i]; color = GROUPS[i][1]
|
||||||
|
s.smooth = False; s.format.line.width = Pt(2); s.format.line.color.rgb = color
|
||||||
|
s.marker.style = XL_MARKER_STYLE.CIRCLE; s.marker.size = 6; s.marker.format.fill.solid(); s.marker.format.fill.fore_color.rgb = color; s.marker.format.line.color.rgb = WHITE
|
||||||
|
D.panel(sl, 9.5, 1.75, 3.13, 4.9)
|
||||||
|
D.text(sl, 9.7, 1.85, 2.8, 0.3, "급락 시점 = 논란 시점", size=11, bold=True, color=INK)
|
||||||
|
D.bullets(sl, 9.7, 2.2, 2.8, 4.4, [f"TBH 2026-06 {ms['TBH 태스크바 히어로'].get('2026-06', '—')}% — 봇·장터 폐쇄·오제재(7장)", f"Blue Archive 2026-07 {ms['Blue Archive'].get('2026-07', '—')}% — 뽑기 시스템 개편 발표 후 리뷰 폭격 · 앞서 리뷰 유도 이벤트로 Steam 규정 위반 지적",
|
||||||
|
"Warframe은 18개월 내내 70~90%대 — 코스메틱·편의형의 안정성", "CSV의 다른 급락(MapleStory 2026-06 15% · PUBG 2026-09 21% · Destiny 2 2025-09 25%)은 원인 미조사"], size=9, gap=6)
|
||||||
|
|
||||||
|
# ───────── 16 교훈
|
||||||
|
sl = D.slide("사례별 교훈 4가지", "LESSONS", "호평과 부정을 가르는 것은 '무엇을 파느냐'보다 '무엇을 빼앗느냐'")
|
||||||
|
cw = (XW - 0.2) / 2
|
||||||
|
for i, (n, head, body) in enumerate([
|
||||||
|
(1, "호평의 공통분모", "파워를 팔지 않고, 시간을 존중하며, 산 것을 잃게 하지 않는다 — 코스메틱·편의·만료 없는 패스(Warframe·PoE·Marvel Rivals)."),
|
||||||
|
(2, "부정의 공통분모", "이미 준 것을 빼앗는다 — 소급 유료화(OW2), 패스 개악(Apex), 확률 몰래 변경(MapleStory). 리뷰는 즉시·대량으로 반응하고 Steam 평점은 매출에 직결된다."),
|
||||||
|
(3, "가챠는 Steam에서도 통하지만 조건부", "관대함·투명성·완성도가 있으면 90% 근처. 다만 FR처럼 아이템에 현금성 가치가 붙는 게임은 유료 랜덤을 얹는 순간 '랜덤 + 환금성'이라는 규제 논리에 정확히 걸린다."),
|
||||||
|
(4, "방치형 F2P는 편의 결제만으로 95%+", "NGU·FAPI가 증명. 방치형 유저층은 결제 강요에 민감하고 '시간 단축 구매'에는 관대하다 — FR의 인벤토리·창고·짐꾼 DLC는 이 결에 맞는다.")]):
|
||||||
|
x = X0 + (i % 2) * (cw + 0.2); y = 1.75 + (i // 2) * 2.2
|
||||||
|
D.card(sl, x, y, cw, 2.0, shadow=True); D.num(sl, x + 0.2, y + 0.2, n)
|
||||||
|
D.text(sl, x + 0.6, y + 0.15, cw - 0.8, 0.4, head, size=12, bold=True, color=INK)
|
||||||
|
D.text(sl, x + 0.2, y + 0.65, cw - 0.4, 1.3, body, size=10, color=BODY, spacing=1.3)
|
||||||
|
D.banner(sl, "FR", "코스메틱·편의 DLC 주 수익 + 장터 보조 + 가챠 없음 = 호평 BM의 공통분모를 그대로 따르는 구성", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 17 규제
|
||||||
|
sl = D.slide("규제·플랫폼 규칙 (2026-09 기준)", "REGULATION", "'유료 랜덤 + 현금성 거래'가 모든 권역의 공통 표적")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.55, [
|
||||||
|
["권역", "내용", "FR 영향"],
|
||||||
|
["한국", "확률형 아이템 확률 표시 의무(2024-03-22, 유상 전부·광고 포함·해외 플랫폼도 국내 서비스 시 적용·3년 평균 매출 1억 이하 제외) · 소송특례 2025-08-01: 입증책임 전환·고의 위반 3배 배상 · 2025-12 매출 3% 과징금 법안 발의(계류) · 넥슨 메이플 큐브 과징금 116.42억(2024-01, 큐브 매출 5,500억, 소송 중)", "유료 랜덤을 두면 표시·소송 부담 · 무상 드롭은 의무 밖이나 자율 공개 권장"],
|
||||||
|
["미국", "NY AG v. Valve(2026-02-25): CS2·TF2·Dota 2 케이스가 도박 — \"Steam Community Market enables cash conversion\" · 미성년자 · 영구 금지·부당이득 환수·벌금 청구, 2026-09-01 기각 신청 계류 · FTC-Epic $2.45억(다크패턴 구매 유도)", "장터 연동 게임의 '랜덤 획득 + 환금성'이 소송 프레임"],
|
||||||
|
["EU", "CPC 게임 내 가상 재화 7원칙(2025-03-21, 비구속): 실화폐 가격 명시·비용 은폐·강제 구매 금지·아동 고려 · 벨기에: 유료 랜덤 박스 = 불법 도박(형사 벌금) · 네덜란드: 2020 EA €1,000만 → 2022 최고행정법원 번복, 규제기관은 '현금화·재판매 가능'을 여전히 도박으로", "재화 UI 원칙 준수 · 벨기에 등은 유료 랜덤 비활성화 필요"],
|
||||||
|
["Steam", "확률 표시 강제 없음(플랫폼 중 예외) · 장터·수수료·지갑 규칙은 Valve 단독 변경 · 리뷰 유도 이벤트 금지(Blue Archive 사례)", "자율 표시가 곧 방어 · 장터 없이도 성립하는 BM"],
|
||||||
|
], colw=[1.0, 7.6, 3.3], size=9, hsize=9.5)
|
||||||
|
|
||||||
|
# ───────── 18 FR 적용 판정
|
||||||
|
sl = D.slide("FR 적용 판정(안) — BT23 제안 H·C·I 대비", "APPLICATION", "요소별 초기 컨셉 → 판정 → 조정(안)")
|
||||||
|
D.table(sl, X0, 1.7, XW, 4.9, [
|
||||||
|
["요소", "초기 컨셉·BT23", "판정", "조정(안)"],
|
||||||
|
["장터 수수료", "핵심 BM", ("보조로 강등", RED), "고등급 장비·희소 재료만 · 계정 조건(챕터 2 + 플레이타임) · 슬롯 4·쿨다운 · 등록 시 로컬 옵션 초기화 · 상위 등급 단계 개방 · 정책 공개"],
|
||||||
|
["인벤토리·창고·짐꾼 DLC", "DLC", ("주 수익원으로 승격", GREEN), "PoE 창고 탭 모델 · 각 2~3단계 확정 판매 · 기본 공간은 불편하지 않게"],
|
||||||
|
["코스메틱", "미정", ("주 수익원", GREEN), "스킨·펫·스킬 이펙트·데스크톱 위젯 테마(FR 고유) · 확정 판매, 랜덤 없음"],
|
||||||
|
["시즌·도전(제안 G)", "도전 4종", "선택", "시즌 패스는 만료 없음·재화 페이백·코스메틱 보상만"],
|
||||||
|
["가챠", "없음", ("도입 금지", RED), "—"],
|
||||||
|
["프리미엄 재화", "없음", "조건부", "코스메틱·편의 전용 · 실화폐 가격 병기 · 필요 수량 단위 · 게임 내 획득 경로(도전 보상)"],
|
||||||
|
["파워 판매", "없음", ("금지", RED), "경험치·드롭률 부스트도 방치 효율 판매 = P2W → 금지 또는 코스메틱 수준"],
|
||||||
|
["드롭 확률", "—", "자율 공개", "등급별 드롭 확률·장터 거래 조건을 게임 내 표시(한국 표시 형식 준용)"],
|
||||||
|
], colw=[1.9, 1.7, 1.9, 6.4], size=9.2, hsize=9.5)
|
||||||
|
|
||||||
|
# ───────── 19 PM 의견 · 결정 요청
|
||||||
|
sl = D.slide("초기 컨셉 대비 PM 의견 · PD 결정 요청", "DECISION", "\"TBH처럼 장터가 핵심\"에 대한 판단과 결정 요청 5건")
|
||||||
|
D.card(sl, X0, 1.75, 5.6, 4.3, shadow=True)
|
||||||
|
D.text(sl, X0 + 0.2, 1.85, 5.2, 0.35, "PM 의견", size=12, bold=True, color=INK)
|
||||||
|
D.bullets(sl, X0 + 0.2, 2.3, 5.2, 3.7, [
|
||||||
|
"TBH는 화제성(동접 54만)은 얻었지만 BM이 운영을 흔들었다 — 봇 → 서버 → Valve 경고 → 장터 폐쇄 → 리뷰 하락. 소규모 스튜디오는 서버·CS 비용이 수수료 수익을 넘을 수 있다",
|
||||||
|
"FR의 강점(거대 보스·조작 손맛·데스크톱 위젯)은 코스메틱·편의 판매와 잘 맞는다",
|
||||||
|
"장터는 '방치의 결과물이 가치 있다'는 매력을 살리는 리텐션 장치로 남기되, 매출 계획에서는 보조로 잡는 것을 권고",
|
||||||
|
"PD 결정 ①(기본 옵션 고정·로컬 부가 옵션 랜덤)은 장터 아이템을 '확정 가치' 상품으로 만들어 규제·유동성 양쪽에 유리 — 유지"], size=9.8, gap=7)
|
||||||
|
D.card(sl, 6.5, 1.75, 6.13, 4.3, shadow=True)
|
||||||
|
D.text(sl, 6.7, 1.85, 5.8, 0.35, "PD 결정 요청", size=12, bold=True, color=INK)
|
||||||
|
for i, t in enumerate(["장터 수수료를 보조 수익으로 재정의하고 코스메틱·편의 DLC를 주 수익원으로 두는 방향 승인", "거래 가능 범위(안: 전설 이상 장비 + 희소 재료)·계정 조건·슬롯/쿨다운 수치의 확정 시점(밸런스 설계 단계)",
|
||||||
|
"가챠 도입 금지 · 파워 판매 금지 · 프리미엄 재화는 코스메틱·편의 전용 — 원칙 확정", "데스크톱 위젯 테마 등 코스메틱 라인업 기획 착수", "한국 확률 표시 형식 준용 자율 공개(무상 드롭 포함)"]):
|
||||||
|
D.num(sl, 6.7, 2.35 + i * 0.72, i + 1); D.text(sl, 7.1, 2.3 + i * 0.72, 5.4, 0.7, t, size=9.8, color=BODY, spacing=1.25)
|
||||||
|
D.banner(sl, "다음", "결정 후 시스템기획서 제안 H·C·I 개정(v2) → 거래 범위·슬롯 수치 설계(밸런스) → 코스메틱 라인업 기획", y=6.2)
|
||||||
|
|
||||||
|
# ───────── 20 출처
|
||||||
|
sl = D.slide("출처", "SOURCES", "전체 링크는 원문 보고서 §7")
|
||||||
|
D.text(sl, X0, 1.7, 5.85, 5.0, [
|
||||||
|
[("Steam·Valve", {"bold": True, "color": INK})], "구독자 계약 §3.C·§3.D (store.steampowered.com/subscriber_agreement)", "Steamworks Inventory Schema (partner.steamgames.com/doc/features/inventory/schema)", "SteamWiki Community Market · 수수료 계산기(SkinWise·SteamVaults·steamtradebots)", "Steam Best of 2025 (store.steampowered.com/charts/bestofyear/2025) · GameDiscoverCo", "",
|
||||||
|
[("TBH", {"bold": True, "color": INK})], "개발팀 공지 106건(ISteamNews API, appid 3678970) 2026-05-27~09-22", "인벤 06-01 · ZDNet 06-02 · 게임메카 06-05·06-09 · 경향게임스 06-19 · Steam 토론", "",
|
||||||
|
[("Banana·F2P 사례", {"bold": True, "color": INK})], "Wikipedia Banana · ScreenRant · GamingOnLinux(Cats) · GamesRadar·Dexerto(Apex) · GamesRadar·MP1st(Marvel Rivals) · Dot Esports(OW2) · GameSpot·Automaton(Blue Archive)"], size=8.8, spacing=1.25)
|
||||||
|
D.text(sl, 6.78, 1.7, 5.85, 5.0, [
|
||||||
|
[("규제", {"bold": True, "color": INK})], "정책브리핑 148924297 · 김앤장 소송특례 해설 · 법률신문(화우) 2025-08 · 과징금 법안(네이트 2025-12-23) · MBC 넥슨 과징금(2024-01)", "NY AG 보도자료 2026-02-25 · NatLawReview · Reason 2026-04-07", "FTC 2023-03-15 Epic $245M · EU 집행위 CPC 7원칙(2025-03-21) · Reed Smith Q&A", "Promise Legal 루트박스 2026 · Franssen Tolboom(NL) · Wikipedia 마이크로트랜잭션 규제", "",
|
||||||
|
[("실측 데이터", {"bold": True, "color": INK})], "BM/data/steam_reviews_2026-09-25.csv — 50종 · appreviews(전체) · appreviewhistogram(최근 30일·월별) · storesearch(무료 여부) · ICommunityService(이름)", "Steam 장터 검색 API — TBH 1,063종 · Banana 457종 · Rust 5,497 · PUBG 358 · CS2 35,509", "",
|
||||||
|
[("한계", {"bold": True, "color": INK})], "게임 수수료율 공식 수치 미확인 · 개별 게임 수수료 매출 비공개 · 리뷰 급락 원인은 확인된 사례만 기술"], size=8.8, spacing=1.25)
|
||||||
|
|
||||||
|
n = D.save(OUT); print("saved", OUT, n, "slides")
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
# CSV(steam_reviews.py 결과) → 보고서 §3-2 마크다운 표로 치환 (BT26-Plan 2026-09-25)
|
||||||
|
import csv, os, re
|
||||||
|
D = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
CSV = os.path.join(D, "..", "data", "steam_reviews_2026-09-25.csv")
|
||||||
|
MD = os.path.join(D, "..", "2026-09-25_FR_BM_시장조사_v1.md")
|
||||||
|
BM = { # PM 분류(공개 정보 기준, 논쟁 여지 있는 것은 '논쟁' 표기)
|
||||||
|
"Dota 2": "코스메틱·트레저(확률 공개)·구독", "Counter-Strike 2": "케이스·키(유료 랜덤)+장터", "Team Fortress 2": "크레이트·키+장터", "Warframe": "코스메틱·편의·플래티넘 유저 거래",
|
||||||
|
"Path of Exile": "코스메틱·창고 탭", "Path of Exile 2": "유료 EA + 코스메틱·창고 탭", "Apex Legends": "코스메틱·팩(랜덤)·배틀패스", "Destiny 2": "확장팩·시즌·코스메틱",
|
||||||
|
"Lost Ark": "강화·스킨·재화(P2W 논쟁)", "Marvel Rivals": "코스메틱·만료 없는 패스", "The Finals": "코스메틱·패스", "Once Human": "코스메틱 크레이트·패스",
|
||||||
|
"War Thunder": "프리미엄 차량·계정(파워성)", "World of Tanks": "프리미엄 차량·계정(파워성)", "PUBG: BATTLEGROUNDS": "코스메틱·크레이트·패스+장터", "Halo Infinite": "코스메틱·패스",
|
||||||
|
"Overwatch 2": "패스·상점(소급 유료화)", "Brawlhalla": "코스메틱", "Paladins": "코스메틱·챔피언 해금", "Yu-Gi-Oh! Master Duel": "카드팩(랜덤)·젬",
|
||||||
|
"Black Desert": "편의·펄 상점(P2W 논쟁)", "Throne and Liberty": "패스·코스메틱·재화(P2W 논쟁)", "MapleStory": "큐브 등 확률형·P2W", "Albion Online": "프리미엄 구독·코스메틱",
|
||||||
|
"EVE Online": "구독(오메가)·PLEX", "Delta Force": "코스메틱·패스", "Rust": "유료 + 코스메틱·장터", "Legends of IdleOn": "젬(편의·일부 랜덤)", "NGU Idle": "편의 결제",
|
||||||
|
"Clicker Heroes": "루비(편의)", "Idle Slayer": "코스메틱·편의", "Melvor Idle": "유료 + 확장 DLC", "Banana": "장터 드롭 전용", "Tower of Fantasy": "가챠",
|
||||||
|
"TBH: Task Bar Hero": "장터 드롭·수수료 + DLC 코스튬", "Zenless Zone Zero": "가챠", "Wuthering Waves": "가챠", "GIRLS' FRONTLINE 2: EXILIUM": "가챠", "Reverse: 1999": "가챠",
|
||||||
|
"Blue Archive": "가챠", "Farmer Against Potatoes Idle": "편의 결제", "Leaf Blower Revolution": "편의·DLC", "Tap Ninja": "편의 결제", "Eternal Return": "코스메틱·패스",
|
||||||
|
"NARAKA: BLADEPOINT": "코스메틱·외형 가챠", "Idle Wizard": "편의 결제", "Predecessor": "코스메틱", "SMITE 2": "코스메틱·신 해금",
|
||||||
|
}
|
||||||
|
rows = list(csv.DictReader(open(CSV, encoding="utf-8-sig")))
|
||||||
|
def low_month(s):
|
||||||
|
ms = []
|
||||||
|
for x in s.split(";"):
|
||||||
|
if ":" in x:
|
||||||
|
ym, ud = x.split(":"); u, d = map(int, ud.split("/"))
|
||||||
|
if u + d >= 200:
|
||||||
|
ms.append((round(100 * u / (u + d)), ym))
|
||||||
|
return f"{min(ms)[0]}% ({min(ms)[1]})" if ms else "—"
|
||||||
|
lines = ["| 게임 | BM 유형(PM 분류) | 무료 | 전체 긍정률(리뷰 수) | Steam 평가 | 최근 30일 | 월별 최저(200건↑) |", "|---|---|---|---|---|---|---|"]
|
||||||
|
for r in sorted(rows, key=lambda r: -int(r["pct_all"] or 0)):
|
||||||
|
if r["review_all"] in ("", "No user reviews"):
|
||||||
|
continue
|
||||||
|
key = r["name"].split(" -> ")[0]
|
||||||
|
n_all = int(r["pos_all"] or 0) + int(r["neg_all"] or 0); n30 = int(r["pos_30d"] or 0) + int(r["neg_30d"] or 0)
|
||||||
|
lines.append(f"| {r['steam_name'] or key} | {BM.get(key, '—')} | {r['free']} | **{r['pct_all']}%** ({n_all:,}) | {r['review_all']} | {r['pct_30d']}% ({n30:,}) | {low_month(r['months_up_down'])} |")
|
||||||
|
table = "\n".join(lines) + f"\n\n- 총 {len(lines) - 2}종 · '무료'는 Steam 스토어 검색 API 가격 기준 · 최근 30일은 리뷰 히스토그램 일별 합계 · 월별 최저는 월 200건 이상인 달 중 최저 긍정률(급락 시점 = 논란 시점)"
|
||||||
|
md = open(MD, encoding="utf-8").read()
|
||||||
|
assert "<!-- REVIEW_TABLE -->" in md
|
||||||
|
open(MD, "w", encoding="utf-8").write(md.replace("<!-- REVIEW_TABLE -->", table))
|
||||||
|
print("\n".join(lines[:60]))
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
# Steam 공개 API로 F2P·비교군 게임의 리뷰 집계(전체·최근 30일·월별 추이)·무료 여부를 실측해 CSV로 저장 (BT26-Plan 2026-09-25)
|
||||||
|
# 사용: python steam_reviews.py → ../data/steam_reviews_2026-09-25.csv
|
||||||
|
# - 이름 확인: ICommunityService/GetApps(일괄) - 리뷰: store appreviews(전체) + appreviewhistogram(최근 30일·월별) - 무료 여부: appdetails(제한 시 '?')
|
||||||
|
import csv, json, os, sys, time, urllib.parse, urllib.request
|
||||||
|
|
||||||
|
OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "data", "steam_reviews_2026-09-25.csv")
|
||||||
|
APPS = { # 이름(내 표기): appid — 실행 시 GetApps 로 실제 이름 대조
|
||||||
|
"Dota 2": 570, "Counter-Strike 2": 730, "Team Fortress 2": 440, "Warframe": 230410, "Path of Exile": 238960, "Path of Exile 2": 2694490,
|
||||||
|
"Apex Legends": 1172470, "Destiny 2": 1085660, "Lost Ark": 1599340, "Marvel Rivals": 2767030, "The Finals": 2073850, "Once Human": 2139460,
|
||||||
|
"War Thunder": 236390, "World of Tanks": 1407200, "PUBG: BATTLEGROUNDS": 578080, "Halo Infinite": 1240440, "Overwatch 2": 2357570,
|
||||||
|
"Brawlhalla": 291550, "Paladins": 444090, "Yu-Gi-Oh! Master Duel": 1449850, "Black Desert": 582660, "Throne and Liberty": 2429640,
|
||||||
|
"MapleStory": 216150, "Albion Online": 761890, "EVE Online": 8500, "Delta Force": 2507950, "Rust": 252490,
|
||||||
|
"Legends of IdleOn": 1476970, "NGU Idle": 1147690, "Clicker Heroes": 363970, "Idle Slayer": 1353300, "Melvor Idle": 1267910,
|
||||||
|
"Banana": 2923300, "Tower of Fantasy": 2064650, "TBH: Task Bar Hero": 3678970, "Zenless Zone Zero": 4162040, "Wuthering Waves": 3513350,
|
||||||
|
"GIRLS' FRONTLINE 2: EXILIUM": 3347400, "Reverse: 1999": 3092660, "Blue Archive": 3557620, "Farmer Against Potatoes Idle": 1535560,
|
||||||
|
"Leaf Blower Revolution": 1468260, "Tap Ninja": 1891700, "Eternal Return": 1049590, "NARAKA: BLADEPOINT": 1203220, "Idle Wizard": 992070,
|
||||||
|
"Predecessor": 961200, "SMITE 2": 2437170,
|
||||||
|
}
|
||||||
|
SEARCH = ["Idle Champions of the Forgotten Realms", "Deadlock"]
|
||||||
|
H = {"User-Agent": "Mozilla/5.0"}
|
||||||
|
|
||||||
|
|
||||||
|
def get(url):
|
||||||
|
for i in range(2):
|
||||||
|
try:
|
||||||
|
return json.load(urllib.request.urlopen(urllib.request.Request(url, headers=H), timeout=30))
|
||||||
|
except Exception as e:
|
||||||
|
err = e; time.sleep(2)
|
||||||
|
print("FAIL", url[:80], err, file=sys.stderr); return None
|
||||||
|
|
||||||
|
|
||||||
|
def search(term):
|
||||||
|
items = (get("https://store.steampowered.com/api/storesearch/?cc=US&l=english&term=" + urllib.parse.quote(term)) or {}).get("items") or []
|
||||||
|
return (items[0]["id"], items[0]["name"]) if items else (None, None)
|
||||||
|
|
||||||
|
|
||||||
|
def names(ids):
|
||||||
|
out = {}
|
||||||
|
for i in range(0, len(ids), 30):
|
||||||
|
q = "&".join(f"appids[{k}]={a}" for k, a in enumerate(ids[i:i + 30]))
|
||||||
|
for a in ((get("https://api.steampowered.com/ICommunityService/GetApps/v1/?" + q) or {}).get("response") or {}).get("apps", []):
|
||||||
|
out[a["appid"]] = a.get("name")
|
||||||
|
time.sleep(1)
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def is_free(appid, name):
|
||||||
|
"""appdetails 가 success=false 를 돌려주는 앱이 많아 storesearch(동작 확인) 의 price 로 판정"""
|
||||||
|
items = (get("https://store.steampowered.com/api/storesearch/?cc=US&l=english&term=" + urllib.parse.quote(name.split(" -> ")[-1])) or {}).get("items") or []
|
||||||
|
for it in items:
|
||||||
|
if it.get("id") == appid:
|
||||||
|
pr = it.get("price")
|
||||||
|
return ("무료" if not pr or not pr.get("final") else "유료"), (f"${pr['final'] / 100:.2f}" if pr and pr.get("final") else "")
|
||||||
|
return "?", ""
|
||||||
|
|
||||||
|
|
||||||
|
def reviews(appid):
|
||||||
|
s = ((get(f"https://store.steampowered.com/appreviews/{appid}?json=1&language=all&purchase_type=all&num_per_page=0&filter=all") or {}).get("query_summary")) or {}
|
||||||
|
p, n = s.get("total_positive", 0), s.get("total_negative", 0)
|
||||||
|
return s.get("review_score_desc", ""), p, n, (round(100 * p / (p + n)) if p + n else "")
|
||||||
|
|
||||||
|
|
||||||
|
def histogram(appid):
|
||||||
|
r = (get(f"https://store.steampowered.com/appreviewhistogram/{appid}?l=english") or {}).get("results") or {}
|
||||||
|
rec = r.get("recent") or []
|
||||||
|
up = sum(x.get("recommendations_up", 0) for x in rec); dn = sum(x.get("recommendations_down", 0) for x in rec)
|
||||||
|
roll = r.get("rollups") or []
|
||||||
|
months = ";".join(f"{time.strftime('%Y-%m', time.gmtime(x['date']))}:{x.get('recommendations_up', 0)}/{x.get('recommendations_down', 0)}" for x in roll[-18:])
|
||||||
|
return up, dn, (round(100 * up / (up + dn)) if up + dn else ""), months
|
||||||
|
|
||||||
|
|
||||||
|
targets = dict(APPS)
|
||||||
|
for term in SEARCH:
|
||||||
|
a, nm = search(term); time.sleep(1)
|
||||||
|
if a:
|
||||||
|
targets[f"{term} -> {nm}"] = a
|
||||||
|
nm = names(list(targets.values()))
|
||||||
|
rows = []
|
||||||
|
for name, appid in targets.items():
|
||||||
|
real = nm.get(appid, "?")
|
||||||
|
free, price = is_free(appid, name); time.sleep(1.2)
|
||||||
|
desc, p, n, pct = reviews(appid); time.sleep(1.2)
|
||||||
|
p30, n30, pct30, months = histogram(appid); time.sleep(1.2)
|
||||||
|
rows.append({"name": name, "steam_name": real, "appid": appid, "free": free, "price": price, "review_all": desc, "pos_all": p, "neg_all": n, "pct_all": pct,
|
||||||
|
"pos_30d": p30, "neg_30d": n30, "pct_30d": pct30, "months_up_down": months})
|
||||||
|
flag = "" if real and real.lower().split(":")[0][:8] in name.lower() else " <-- 이름 불일치 확인"
|
||||||
|
print(f"{name[:34]:34} {appid:>8} {real[:28]:28} {free:>3} | all {pct}% ({p + n:,}) {desc} | 30d {pct30}% ({p30 + n30:,}){flag}", flush=True)
|
||||||
|
keys = ["name", "steam_name", "appid", "free", "price", "review_all", "pos_all", "neg_all", "pct_all", "pos_30d", "neg_30d", "pct_30d", "months_up_down"]
|
||||||
|
with open(OUT, "w", newline="", encoding="utf-8-sig") as f:
|
||||||
|
w = csv.DictWriter(f, fieldnames=keys); w.writeheader(); [w.writerow(r) for r in rows]
|
||||||
|
print("saved", OUT, len(rows))
|
||||||
|
|
@ -0,0 +1,275 @@
|
||||||
|
# FR(Dead Archive) 몬스터 분류·아키타입 + 보스 기믹·패턴 기획서 v1
|
||||||
|
|
||||||
|
- 작성: 2026-09-24 · 기획팀(총괄PM 직접) · 안건 BT24-Plan
|
||||||
|
- PPT: `2026-09-24_FR_몬스터분류_보스패턴_기획서_v1.pptx` · 썸네일 `img/`(에디터 AssetPreview 38장 + 대조표) · 빌더 `tools/build_monster_boss_v1.py`
|
||||||
|
- 실측 근거: `Assets/DataTables/MonsterTable.json`(93행) · `MonsterSkillTable.json`(30행) · `Assets/GameAssets/Monster/BakedAssets_*`(78 프리팹 애니메이션 슬롯) · `Assets/GameAssets/Fx`(스킬 FX 120+) · `Assets/EffectAssets`(이펙트 팩 36종 · 프리팹 약 3,000) · `AnimationID.cs`(슬롯 13: Idle·Walk·Run·Skill0~4·Die0~2·Hit0~1) · `eSkillEffect`(스킬 효과 25종) · `eGimmickType`(8종)
|
||||||
|
- 표기: 실측은 그대로, 제안값은 **(안)**. 한글 몬스터명은 데이터에 있는 5종(포자 좀비·사형집행인·주먹 좀비·입틀막 좀비·봉인된 좀비) 외에는 작업명(안).
|
||||||
|
|
||||||
|
## 0. PD 결정 반영(2026-09-24)
|
||||||
|
|
||||||
|
1. **아이템 구조** — 기본 옵션은 고정(거래 단위 = 아이템 종류 × 등급으로 유한), 상위 단계 획득은 매우 어렵게(레이드 보스 드롭·보스 재료 제작 전용), 로컬 전용 부가 옵션만 랜덤(계정 귀속 · 감정/재설정 대상 · 거래 시 제거) → 장터 등록 아이템 수가 비대해지지 않는다. 시스템 기획서 v1 제안 C의 "랜덤 옵션 2~5줄"은 이 결정으로 **부가 옵션(로컬)** 으로 한정한다.
|
||||||
|
2. **핵심 목표 = 거대 보스 클리어** — 방치·파밍은 성장 과정, 게임의 정점은 다양한 패턴의 레이드급 보스. 극한 컨트롤·손맛이 필요한 이유와 고스펙 장비가 필요한 이유를 보스가 만든다.
|
||||||
|
|
||||||
|
이 문서의 설계 원칙: **① 모든 패턴은 예고(텔레그래프)가 있고 회피 가능하다 ② 페이즈마다 '요구 스펙'과 '요구 컨트롤'이 한 단계씩 오른다 ③ 보스 보상은 상위 단계 아이템·재료의 유일한 출처다.**
|
||||||
|
|
||||||
|
## 1. 현재 몬스터 자산 실측
|
||||||
|
|
||||||
|
| 구분 | 수 | 내용 |
|
||||||
|
|---|---|---|
|
||||||
|
| MonsterTable 행 | 93 | 일반(1) 61 · 엘리트(2) 9 · 보스(3) 13 · 배틀펜스(1001) 2 · 기믹(1002) 2 · 소환수(10001) 6(정령·아군) — 2026-09-25 재집계로 정정(초판 62·8·12·7 오기) |
|
||||||
|
| 일반 몬스터 | 61행 · 프리팹 52 · 계열 18 | 행 61 = 프리팹 52(스킨·색 변형 포함) + 드롭 그룹만 다른 중복 8(20001~20008) + 프리팹 빈 행 1(Index 5). 계열 18 = 좀비·기어오는 좀비·미라·기어오는 미라·해골 병사·살인귀·부패 언데드·굶주린 언데드·무장 언데드·언데드 병사·망령(Wraith_4, 엘리트와 모델 공용)·야행 포식자·그림자 암살자/사냥꾼·독거미·강철 거미·바위 골렘·용암 골렘·수정 골렘(골렘을 하나로 묶으면 16) |
|
||||||
|
| 고유 모델(스킨·색 변형 제외) | 30 | 일반 18 + 엘리트 전용 4(묘지의 거인·질주 언데드·입틀막 좀비·봉인된 좀비) + 보스 6(켄타우로스·거대 거미·검성·포자 좀비·사형집행인·주먹 좀비) + 정령 2(마법 정령 적/청 공용·그림자 정령) — 골렘 3종은 같은 애니메이션 세트에 메시가 다르다 |
|
||||||
|
| 구현된 몬스터 스킬 | 30 | 발사체 부채꼴 · 점프 강타 · 돌진(관통·넉백) · 소환 · 거미줄(감속) · 독 지속피해 · 혈흔비 장판 · 넉업 · 사망 스킬 |
|
||||||
|
| 애니메이션 슬롯 | 13/프리팹 | Idle · Walk(전부 비어 있음, Run만 사용) · Run · Skill0~4 · Die0~2 · Hit0~1 |
|
||||||
|
| 스킬 효과 원시 기능 | 25 | Knock · Daze · Pull · Stun · Penetration · BlockPenetration · DotDamage · DotDamageAddiction · BlockProjectile · Bounce · PendingHit · DeadBodyExplosion · ChainDamage · InvokeSkill(OnHit/OnDestroy) · CombineSkill · AddSkill · Move · RelativeLocation · EnableProjectileTornado · EnableProjectileFreeTargeting · Weaken 등 |
|
||||||
|
| 타격 유형(HitType → FX) | 11 | 1 일반 · 2 관통 · 3 화염 · 4 빙결 · 5 번개 · 6 독 · 7 폭발 · 8 출혈 · 9 화상 · 10 약화 · 11 감속(`Fx/01_HitNormal`~`11_AbnormalSlowNormal`) |
|
||||||
|
| 예고(텔레그래프) FX | 있음 | `1002201_CircleRange`(점프 예고) · `1002202_DashRange`(돌진 예고) · `1002600_ArcRange`(부채꼴 예고) · DTT 팩(Arc/Circle/Line Region 27종) |
|
||||||
|
| 아레나 장치 | 있음 | BattleFence(경계) · Gimmick 오브젝트(회복·강화·포탈 등 8종) · PenaltySkill(주기 광역) · Summoner |
|
||||||
|
|
||||||
|
### 1-1. 모션 다양성 순위(사용 슬롯 수 = 스킬·사망·피격 모션 합)
|
||||||
|
|
||||||
|
| 순위 | 모델 | 사용/13 | 스킬 슬롯 | 특이 | 현재 등급 |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| 1 | BattleSpider01/02 | 13 | 5 | 유일하게 Walk 보유 · 전 슬롯 | 일반 |
|
||||||
|
| 2 | EvilUndead7 Skin1/2 | 11 | 5 | 스킬 4종 구현(웨폰 소환·연속베기×2·검기) · TVBossScale ×5 대상 | 보스 |
|
||||||
|
| 2 | AlienAssassin_1 | 11 | 5 | 사망 3종 · 스킬 1종만 구현(돌진) | 일반 |
|
||||||
|
| 4 | Mutant_Monster_10_1 주먹 좀비 | 10 | 4 | Walk 보유 · 스킬 4종(소환 2) | 보스 |
|
||||||
|
| 5 | Mutant_Monster_8_3 포자 좀비 | 9 | 4 | 독 3종 구현 · 속도 4.5 | 보스 |
|
||||||
|
| 5 | Mutant_Monster_9_1 사형집행인 | 9 | 4 | 사망 143프레임(연출 최장) · 무기 던지기·혈흔비 | 보스 |
|
||||||
|
| 5 | MagicElemental(정령) | 9 | 5 | 아군 소환수 | 소환수 |
|
||||||
|
| 5 | EvilUndead3 | 9 | 2 | 돌진 500% · 사망 3종 | 엘리트 |
|
||||||
|
| 5 | EvilUndead4 | 9 | 2 | Skill3·4 · KnockSpeed 5 | 엘리트 |
|
||||||
|
| 10 | GiantSpider · Centaur · Golem 1/2/3 · Wraith · Zombie · Evil Undead 5/6 · EvilUndead/2 | 8 | 1~4 | 골렘 사망 74프레임 · 거미 사망 87 | 보스/일반 |
|
||||||
|
| — | NightCrawler · AlienAssassin 2~4 | 7 | 1 | 사망 3종 | 일반 |
|
||||||
|
| — | AlienSpider · Mutant 6/7 · ShadowElemental | 6 | 1~2 | 독거미는 사망 스킬 | 일반/엘리트 |
|
||||||
|
| — | Killer · Mummy · Skeleton | 5 | 1 | 최소 구성 | 일반 |
|
||||||
|
| — | MummyGrounded · ZombieGrounded | 4 | 1 | 기어 다님 | 일반 |
|
||||||
|
|
||||||
|
## 2. 분류 체계
|
||||||
|
|
||||||
|
세 축으로 분류한다. **등급**(데이터에 있음) × **아키타입**(행동·역할, 이 문서가 정의) × **테마**(종족·서식지). 구역 카드(시스템 기획서 제안 B)에는 아키타입의 **위협 태그**를 노출한다.
|
||||||
|
|
||||||
|
### 2-1. 등급(실측)
|
||||||
|
일반(Monster) · 엘리트(EliteMonster: Wraith_1~3 · EvilUndead3 · EvilUndead4 · Mutant 6/7) · 보스(BossMonster: Centaur 1~4 · GiantSpider 1~4 · EvilUndead7 · Mutant 8/9/10) · 소환수(Summoner: 정령, 아군) · 배틀펜스 · 기믹
|
||||||
|
|
||||||
|
### 2-2. 아키타입 8종과 특성
|
||||||
|
|
||||||
|
| # | 아키타입 | 소속 모델(실측) | 행동 규칙(안) | 스탯 경향(안) | 위협 태그 | 카운터(손맛 요소) | 근거(구현된 것) |
|
||||||
|
|---|---|---|---|---|---|---|---|
|
||||||
|
| A1 | **돌격 물량형** Rusher | Zombie 1~3 · EvilUndead · EvilUndead6 · Evil Undead 5 · Killer 1~4 · Skeleton_1 · Mummy 1~3 | 무리로 접근 · 근접 1~2타 · 넉백에 밀림 | HP 낮음 · 속도 보통 · 방어 낮음 | [물량] | 광역기·이동 경로 관리 · 좁은 길(다리)에서 막기 | Skill 문자열 `[Anim:Skill0,AttackTime:0.4,Range:1]` · 스폰 최대 10 |
|
||||||
|
| A2 | **기어오는 저속형** Crawler | ZombieGrounded 1~3 · MummyGrounded 1~3 | 매우 느림(1.0) · 발밑에서 붙잡기(안: Daze) · 시체 폭발(안: DeadBodyExplosion) | HP 보통 · 속도 최저 | [발밑] [시체 폭발] | 밟고 지나가지 않기 · 원거리 처리 | 슬롯 4(Idle·Run·Skill0·Die) · DeadBodyExplosion 효과 존재 |
|
||||||
|
| A3 | **자폭·오염형** Bomber | AlienSpider 1~4 · 포자 변이체 소환물(안) | 접근 후 사망 시 독 장판(DoT 0.5초 간격 5초) | HP 1000 · 속도 2.5 | [자폭] [독] | 원거리로 미리 처치 · 사망 위치 피하기 | DeathSkill 1001800(DotDamage) · DeadType Skill |
|
||||||
|
| A4 | **원거리 술사형** Caster | Wraith_1(1발) · Wraith_2(3발) · Wraith_3(5발) · Wraith_4(단발 300%) | 15~20m 거리 유지 · 부채꼴 탄막 · 접근 시 후퇴(안) | HP 10000(엘리트) · 속도 1.5 | [원거리] [탄막] | 탄 사이로 이동 · 우선 처치 · 투사체 방어(BlockProjectile) | 스킬 1005000~1005300 · ProjectileAnglePerSpawn 16~19° |
|
||||||
|
| A5 | **돌진 브루트형** Charger | EvilUndead3(돌진 500%) · Monster_Centaur 1~4(발사체·점프·돌진) · 입틀막 변이체(넉업) · 봉인된 변이체 | 예고(DashRange) → 직선 돌진(관통·넉백) · 점프 강타(CircleRange) | HP 높음 · 속도 1.3~1.7 · 넉백 강함 | [돌진] [넉업] | 예고 보고 옆으로 회피 · 벽에 부딪히게 유도(안: 기절) | Move[Speed:11,Distance:9~10] · Knock · Bounce · 예고 FX 실재 |
|
||||||
|
| A6 | **암살·기습형** Assassin | AlienAssassin_1(5 스킬 슬롯) · AlienAssassin 2~4·custom · NightCrawler 1~4 | 빠른 접근(2.5) · 짧은 돌진 · 안개/숲 매복 스폰(안) · 뒤에서 등장 | HP 2000~4000 · 속도 2.5 | [기습] [고속] | 회피 후 반격 · 등 뒤 경계 · 감속 스킬 | 스킬 1000600 돌진 130% · TVMonsterZones 순찰·매복 |
|
||||||
|
| A7 | **철벽 탱커형** Bulwark | Golem_1 바위 · Golem_2 용암 · Golem_3 수정 · EvilUndead4 1~3(KnockSpeed 5) | 느림(1.5) · 넉백 저항(안) · 정면 강타 3종 · 사망 시 붕괴 연출(74프레임) | HP·방어 높음 · 속도 낮음 | [넉백 저항] [고방어] | 관통·고정 피해 · 뒤로 돌아 공격 · 스태미나 관리 | 슬롯 8 · Dissolve 재질 보유(용해 연출) |
|
||||||
|
| A8 | **소환·지원형** Summoner | GiantSpider 1~4(소환 9) · 주먹 좀비(소환 3+3) · 정령(아군 소환수) | 부하 소환 · 거미줄 감속 · 본체는 후방 | HP 40000~50000 | [소환] [감속] | 부하 우선 vs 본체 딜 선택 · 소환 타이밍에 딜 집중 | 스킬 1002601 SpawnCount 9 · 1002602 Daze |
|
||||||
|
|
||||||
|
- 테마(서식지·구역 매핑 안): 언데드(좀비·미라·해골·이블언데드·망령 → ⑦ 묘지·납골당 · ④ 강 건너 마을) · 거미(② 다리목 · 다리 아래 거미줄) · 이형(암살자·나이트크롤러 → ⑧ 숲 매복지) · 원소(골렘 → ⑤ 망루 폐허) · 변이체(⑩ 던전 입구 안쪽) · 야수인(켄타우로스 → ⑨ 사냥꾼 오두막 평원)
|
||||||
|
- 구역 카드 위협 태그 = 그 구역 아키타입의 태그 합(예: 다리목 = [물량][자폭][감속]) → 장비 부가 옵션(독 저항·감속 저항)이 "이 구역용 세팅"이 된다.
|
||||||
|
|
||||||
|
### 2-3. 아키타입 공통 특성 규칙(안)
|
||||||
|
1. **예고 → 실행 → 후딜** 3박자. 예고는 기존 Range FX(원·부채꼴·직선)로 그린다. 후딜에 반격하면 추가 피해(엑설런트 판정 활용).
|
||||||
|
2. **넉백 저항 3단계**(없음/절반/면역)를 아키타입 특성으로 부여 — 브루트·탱커는 면역, 물량형은 없음.
|
||||||
|
3. **상태이상 특성**: 자폭형 = 독, 술사형 = 감속/약화, 변이체 = 출혈/독, 골렘 = 화상(용암)/빙결(수정).
|
||||||
|
4. **군집 규칙**: 물량형은 5~10 무리, 술사·브루트는 1~2 + 호위(물량형) — 구역 구성 템플릿.
|
||||||
|
5. **엘리트 변형**: 같은 모델의 스킨 변형(_Skin2·_var·custom)을 엘리트로 승격 — 오라 FX(MagicalEffect Armored/Cursed · Red_clue Aura)와 스킬 1개 추가.
|
||||||
|
|
||||||
|
## 3. 보스 후보 선정
|
||||||
|
|
||||||
|
기준: ① 스킬 슬롯 4개 이상 ② 사망·피격 모션 보유 ③ 실루엣이 크고 확대(×3~5)해도 읽힘 ④ 이미 스킬 데이터가 있어 확장 비용이 낮음.
|
||||||
|
|
||||||
|
| 후보 | 모델 | 모션 | 기존 스킬 | 판정 |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| **R1 타락한 검성** | EvilUndead7 Skin1/2 | 11/13 · 스킬 5 | 웨폰 소환(11) · 연속베기 1·2 · 검기(관통) | **레이드 보스** — 근접 검술·분신 |
|
||||||
|
| **R2 원소 거신** | Golem_1 → Golem_2 → Golem_3 | 8/13 · 스킬 3 · 사망 74 | 없음(Skill 문자열도 없음) | **레이드 보스** — 3 모델 = 3 페이즈(대지→용암→수정) |
|
||||||
|
| **R3 거미 여왕** | GiantSpider_1~4 | 8/13 · 스킬 4 · 사망 87 | 공격(부채꼴 85°) · 소환 9 · 거미줄(감속) | **레이드 보스** — 산란·거미줄 아레나 |
|
||||||
|
| **R4 역병 군주** | Mutant_Monster_8_3 포자 좀비 | 9/13 · 스킬 4 | 포자 3종(독 중독 DoT) · 속도 4.5 | **레이드 보스** — 오염 확산·안전지대 |
|
||||||
|
| **R5 혈흔의 사형집행인** | Mutant_Monster_9_1 사형집행인 | 9/13 · 스킬 4 · 사망 143 | 무기 던지기(5방향) · 혈흔비(장판 DoT) · 평타 | **레이드 보스** — 처형·광란 |
|
||||||
|
| C1 켄타우로스 궁기병 | Monster_Centaur_1~4 | 8/13 · 스킬 4 | 발사체 3(18°) · 점프 · 돌진 | 챕터 보스(구역 ⑩ 던전 입구) |
|
||||||
|
| C2 거대 변이체(주먹) | Mutant_Monster_10_1 | 10/13 · 스킬 4 | 강타 2 · 소환 2 | 챕터 보스 / R5 페이즈 3 난입 |
|
||||||
|
| C3 망령 군주 | Wraith_1~4 | 8/13 · 스킬 3 | 탄 1→3→5 + 유도(안) | 챕터 보스 — 탄막 밀도가 페이즈 |
|
||||||
|
| C4 그림자 암살자 | AlienAssassin_1 | 11/13 · 스킬 5 | 돌진 1종 | 엘리트 보스 — 은신·기습 |
|
||||||
|
| C5 묘지의 거인 | EvilUndead3 | 9/13 · 스킬 2 | 돌진 500% | 엘리트 보스 — 첫 '예고 회피' 교사 |
|
||||||
|
| — 강철 거미 | BattleSpider01/02 | 13/13 · 스킬 5 | 없음 | 보류 — 소형·SF 톤, 던전 특수 엘리트로 |
|
||||||
|
|
||||||
|
## 4. 보스전 공통 프레임(안)
|
||||||
|
|
||||||
|
### 4-1. 오픈 스펙 = 난이도 티어
|
||||||
|
- 보스는 **티어 1~N(상한 없음)** 으로 연다. 티어가 오르면 HP·공격 배율, 패턴 속도(AnimationSpeed·CoolTime), 탄 수(SpawnCount), 안전지대 크기, 페이즈 수(최대 4)가 계단식으로 오른다.
|
||||||
|
- 티어 게이트: 티어 t 도전권 = 티어 t-1 클리어 + 권장 전투력(장비 고정 옵션 합계 기준). 도전은 던전 입구(던전 보스방)에서 수동 권장, 자동 전투는 "도전 가능/불가" 표시만(시스템 기획서 제안 F).
|
||||||
|
- 시간 제한(안): 티어별 8~12분. 초과 시 광폭(공격 ×2 · 전멸 패턴 주기 짧아짐) — 고스펙 장비가 필요한 첫 번째 이유(DPS 체크).
|
||||||
|
|
||||||
|
### 4-2. 페이즈 규칙
|
||||||
|
- 전환 임계 HP 70% / 40% / 15%(안). 전환 시 3초 무적 + 포효(카메라 흔들림 HitFeelDirector · Mirza ShockWave) + 아레나 변화(장판·기둥·거미줄·오염) + 새 패턴 해금.
|
||||||
|
- 페이즈가 오를수록: 예고 시간 짧아짐(1.2초 → 0.8초 → 0.6초), 동시 패턴 수 +1, 상태이상 추가.
|
||||||
|
|
||||||
|
### 4-3. 그로기(약점 노출)
|
||||||
|
- 특정 패턴을 **회피 성공 + 후딜 반격**하면 보스 스태거 게이지가 찬다(안: 3회). 가득 차면 **그로기 5초**(Stun) — 피해 ×2 창. 고스펙 장비의 두 번째 이유(그로기 안에 컷라인을 넘겨야 다음 페이즈 패턴이 하나 줄어든다).
|
||||||
|
|
||||||
|
### 4-4. 요구 스펙 3종(장비의 이유)
|
||||||
|
1. **DPS 컷** — 페이즈 제한 시간(광폭)
|
||||||
|
2. **방어 관통 공격** — 페이즈 3 이상의 '처형·강타'는 방어 계산을 무시하는 % 피해 → 최대 체력·피해 감소 옵션 요구
|
||||||
|
3. **상태이상 저항** — 독·출혈·감속·화상·빙결(HitType 6·8·9·11·4) → 장비 부가 옵션(로컬 랜덤)의 저항이 보스별 세팅이 된다
|
||||||
|
|
||||||
|
### 4-5. 컨트롤 요구 4종(손맛의 이유)
|
||||||
|
회피(돌진·강타 예고) · 위치 선정(안전지대·장판) · 우선순위(소환물 vs 본체) · 타이밍(그로기 창·전멸기 컷)
|
||||||
|
|
||||||
|
### 4-6. 보상
|
||||||
|
- 보스 고유 옵션 아이템(고정 기본 옵션 + 보스 세트 효과) = **거래 가능 최상위**, 티어가 높을수록 상위 단계 재료(상위 단계 획득의 유일 경로)
|
||||||
|
- 열기(시스템 기획서 제안 A) 단계 3에서만 고유 옵션 드롭 자격 — 수동 개입의 정점
|
||||||
|
|
||||||
|
### 4-7. 구현 어휘(개발팀 참고)
|
||||||
|
MonsterSkillTable 필드로 표현 가능: 부채꼴 탄막(ProjectileAnglePerSpawn·SpawnCount), 유도탄(EnableProjectileFreeTargeting), 회전탄(EnableProjectileTornado), 돌진(Move+Penetration+Knock), 점프(1002201 방식), 장판 DoT(DotDamage/Addiction), 넉업(Bounce), 끌기(Pull), 기절(Stun), 감속(Daze), 약화(Weaken), 소환(SpawnCount·SpawnRange·SpawnInterval), 시체 폭발(DeadBodyExplosion), 연쇄(ChainDamage), 연계(InvokeSkill·OnHit·OnDestroy), 합체(CombineSkill). **새로 필요한 것**: 페이즈 전환(HP 임계 → 스킬 세트 교체), 스태거 게이지, 티어 배율, 예고 시간 파라미터, 아레나 오브젝트 스폰(장판·기둥·거미줄), 모델 교체(골렘 3종 · Dissolve 재질).
|
||||||
|
|
||||||
|
## 5. 레이드 보스 5종 상세
|
||||||
|
|
||||||
|
### R1. 타락한 검성 (EvilUndead7 · 근접 검술 · 언데드 테마 · 구역 ⑦ 묘지·납골당 최심부)
|
||||||
|
- 컨셉: 죽어서도 검을 놓지 않는 기사단장. 페이즈마다 검이 늘어난다(1자루 → 11자루 소환 → 검의 폭풍).
|
||||||
|
- 크기 ×4(TVBossScale 실측 ×5 기준 조정) · 넉백 면역 · 출혈 특성
|
||||||
|
- 페이즈 1 (100~70%) — 검술
|
||||||
|
- P1-1 연속베기(기존 1007101·1007102): 부채꼴 120° 2연타, 예고 ArcRange 1.0초 → 뒤/옆으로 회피. FX: Red_clue Combo_slash · FX_Slash_Collection
|
||||||
|
- P1-2 검기(기존 1007103): 직선 관통 투사체 400%, 넉백 6 → 좌우 회피. FX: Lana Slash_fire_long
|
||||||
|
- P1-3 발구르기(신규·Golem 강타 모션 아님, Skill4 슬롯 26프레임): 원형 넉업(Bounce) 예고 CircleRange 0.8초. FX: Mirza ShockWave · Red_clue Crack_ground
|
||||||
|
- 페이즈 2 (70~40%) — 검의 군세
|
||||||
|
- P2-1 웨폰 소환(기존 1007100: 11자루 · 반경 1~10 · 투사체 11): 검이 땅에 꽂힌 뒤 순차 발사(SpawnInterval 0~1) → 꽂힌 자리 = 위험선, 안전지대는 검 사이. FX: MagicArsenal Missiles · Hovl Flash
|
||||||
|
- P2-2 분신(신규): Skin2 모델 1기 소환(HP 15%), 분신은 P1-1만 사용 → 본체 우선 판단. FX: MagicalDark Dark_Gate(등장)
|
||||||
|
- P2-3 회전 검풍(신규): 자기 주변 회전 투사체(EnableProjectileTornado) 6초 → 거리 유지 유도
|
||||||
|
- 페이즈 3 (40~15%) — 검의 폭풍
|
||||||
|
- P3-1 검기 3연(검기 × 3방향 18°) · P3-2 처형 일격(전방 직선 장거리, 방어 무시 %피해, 예고 DashRange 1.5초 — 회피 실패 시 치명) · P3-3 검우(檢雨): 아레나 전체 랜덤 낙하 검 20개(CircleRange 20개 0.6초) — 위치 선정
|
||||||
|
- 페이즈 4 (15~0%, 티어 3 이상) — 광란: 예고 0.6초 · 분신 2기 · 그로기만이 반격 창
|
||||||
|
- 그로기: P1-3 발구르기 회피 + 후딜 반격 3회
|
||||||
|
- 아레나: 납골당 원형 홀(BattleFence 봉쇄) · 기둥 4(파괴 시 Gimmick AddHealth 1회 — 회복 판단)
|
||||||
|
- 고유 드롭: 검성의 대검(검 클래스 고정 옵션 + '검기 투사체 +1' 세트) · 출혈 저항 재료
|
||||||
|
|
||||||
|
### R2. 원소 거신 (Golem_1 → 2 → 3 · 철벽 탱커 · 원소 테마 · 구역 ⑤ 망루 폐허 지하)
|
||||||
|
- 컨셉: 페이즈마다 몸이 바뀌는 거신 — 대지(바위) → 용암(균열) → 수정(빙결). 모델 교체 = Dissolve 재질로 녹았다 재구성.
|
||||||
|
- 크기 ×5 · 넉백 면역 · 방어 매우 높음(관통 요구) · 느림(1.5 → 페이즈마다 +0.3)
|
||||||
|
- 페이즈 1 대지 (Golem_1_Stones) — 강타 3종(Skill0/1/2 34·34·47프레임)
|
||||||
|
- P1-1 내려찍기: 전방 원형 예고 1.2초, 착지 충격파(Mirza Particle Shockwave · ExtremeFX EpicStomp) 넉백 → 옆 회피
|
||||||
|
- P1-2 낙석: 상공에서 바위 8개 낙하(CircleRange 8 · 1.0초) → 위치 선정. FX: Red_clue Crack_fx · gibs
|
||||||
|
- P1-3 지진 파동: 직선 3갈래 균열(Line Region) → 갈래 사이에 서기
|
||||||
|
- 페이즈 2 용암 (Golem_2_Rock-Cracks) — 화상(HitType 9)
|
||||||
|
- P2-1 용암 장판: 밟은 자리에 용암 웅덩이(DotDamage 5초, SineVFX ConjureLavaPool) 누적 → 안전지대 축소
|
||||||
|
- P2-2 불기둥: 플레이어 위치 추적 3연(PyroParticles Flamestrike · Piloto AOE_Explosion_Fire) 0.8초 예고
|
||||||
|
- P2-3 화염 방사: 전방 부채꼴 60° 지속 4초(PyroParticles Flamethrower) → 회전 방향 반대로 돌기
|
||||||
|
- 페이즈 3 수정 (Golem_3_Crystal) — 빙결(HitType 4)
|
||||||
|
- P3-1 수정 창: 바닥에서 솟는 수정 창 직선 5갈래(BlizzardSnow projectile · Hovl frost) 0.7초 예고
|
||||||
|
- P3-2 서리 폭발: 자기 중심 링 3중(Lana top_down_ice_circle) — 링 사이 틈으로
|
||||||
|
- P3-3 빙결 감옥: 플레이어 위치 원형 2.5초 후 빙결(Daze 100% 2초) — 회피 필수, 실패 시 후속 낙석과 겹치면 치명
|
||||||
|
- 페이즈 4 (티어 3+) 삼원소 동시: 용암 장판 유지 + 수정 창 + 낙석 — DPS 컷 필수
|
||||||
|
- 그로기: P1-1/P2-2/P3-1 회피 후 등 뒤 반격(뒤쪽 약점 판정 ×1.5)
|
||||||
|
- 아레나: 폐허 지하 광장 · 기둥 6(용암 페이즈에서 기둥 뒤 = 화염 방사 차단, BlockProjectile)
|
||||||
|
- 고유 드롭: 거신의 핵(원소 저항 세트 · 화상/빙결 저항) · 상위 단계 재료 '원소 핵'
|
||||||
|
|
||||||
|
### R3. 거미 여왕 (GiantSpider_1 · 소환·지원 · 거미 테마 · 구역 ② 다리목 아래 동굴)
|
||||||
|
- 컨셉: 아레나를 거미줄로 채우며 새끼(AlienSpider 자폭 독거미)를 산란한다. 시간이 갈수록 설 자리가 줄어든다.
|
||||||
|
- 크기 ×4 · 넉백 절반 · 독 특성(HitType 6)
|
||||||
|
- 페이즈 1 산란 (100~70%)
|
||||||
|
- P1-1 물기(기존 1002600: 부채꼴 85° 3.5m 넉백) 예고 ArcRange 0.9초
|
||||||
|
- P1-2 산란(기존 1002601: 소환 9, 반경 2~4, 간격 0~2초): 새끼 = AlienSpider(사망 시 독 장판) → 원거리로 미리 처치할지, 본체 딜할지 선택
|
||||||
|
- P1-3 거미줄 뿌리기(기존 1002602: 반경 7 · 감속 20% 3초): 맞으면 다음 패턴 회피 실패 위험
|
||||||
|
- 페이즈 2 거미줄 미로 (70~40%)
|
||||||
|
- P2-1 거미줄 장판 설치: AnimatedSpiderwebCollection 프리팹으로 아레나에 거미줄 띠 4개 고정(밟으면 Daze 50%) → 이동 경로 계획
|
||||||
|
- P2-2 독액 탄막: 부채꼴 5발(ProjectileAnglePerSpawn 16°, HitType 6 DotDamageAddiction) · FX GabrielAguiar Projectile_Poisoned
|
||||||
|
- P2-3 급습 점프(신규, 1002201 방식): 플레이어 위치 원형 예고 1.0초 → 착지 넉업
|
||||||
|
- 페이즈 3 광폭 (40~15%)
|
||||||
|
- P3-1 독안개: 아레나 외곽에서 안쪽으로 안개(Piloto Mist AOE) 확산 — 안전지대 축소, 새끼 산란 지속
|
||||||
|
- P3-2 연속 돌진: 직선 돌진 3회(DashRange 0.6초) 거미줄 위에서는 회피 불가 → 거미줄 밟지 않기
|
||||||
|
- P3-3 여왕의 포옹(신규): 끌어당김(Pull) 후 물기 — 끌려가는 동안 회피 입력으로 탈출(안: 회피 성공 시 그로기 게이지 +1)
|
||||||
|
- 페이즈 4 (티어 3+): 새끼가 엘리트(AlienSpider 사망 장판 반경 2→3) · 독안개 2중
|
||||||
|
- 그로기: 산란 직후 5초 안에 새끼 전멸 시 여왕 그로기(소환 실패 스턴) — 광역기·우선순위 판단
|
||||||
|
- 아레나: 동굴 원형 · 거미줄 기둥 3(파괴 시 거미줄 띠 하나 제거 — 이동 경로 회복)
|
||||||
|
- 고유 드롭: 여왕의 독니(단검 클래스 고정 옵션 · 독 부여 세트) · 독 저항 재료
|
||||||
|
|
||||||
|
### R4. 역병 군주 (Mutant_Monster_8_3 포자 좀비 · 오염 · 변이체 테마 · 구역 ⑩ 던전 심부)
|
||||||
|
- 컨셉: 닿는 모든 것을 감염시킨다. 아레나가 오염되고, 죽은 것들이 다시 일어난다(감염 좀비 = A1·A2 재활용).
|
||||||
|
- 크기 ×3.5 · 속도 4.5(가장 빠른 보스) · 독·중독(DotDamageAddiction 스택 5)
|
||||||
|
- 페이즈 1 감염 (100~70%)
|
||||||
|
- P1-1 포자 폭발(기존 1007300: 반경 5, 중독): 자기 주변 원형 예고 0.9초 → 거리 벌리기
|
||||||
|
- P1-2 포자탄(기존 1007301: 부채꼴 5발 × 3회 18°): 탄 사이로
|
||||||
|
- P1-3 할퀴기(기존 1007302: 부채꼴 50° 5m)
|
||||||
|
- 페이즈 2 부활 (70~40%)
|
||||||
|
- P2-1 감염체 소환: 쓰러진 자리마다 ZombieGrounded 스폰(A2, 시체 폭발 특성) → 시체 위치 기억
|
||||||
|
- P2-2 오염 장판: 포자탄이 떨어진 자리에 오염 장판(DotDamage · Piloto Acid) 잔류 30초 → 안전지대 관리
|
||||||
|
- P2-3 역병 돌진: 직선 돌진(속도 4.5 → Move 14) 예고 0.7초 · 지나간 자리 오염
|
||||||
|
- 페이즈 3 역병 폭풍 (40~15%)
|
||||||
|
- P3-1 포자 구름: 아레나 전체 중독 스택(1초마다 +1, 최대 5) — 해독 기믹 오브젝트(Gimmick AddHealth 재정의 '정화의 불', PyroParticles CampFire) 근처만 안전
|
||||||
|
- P3-2 대폭발: 감염체 전부 동시 폭발(DeadBodyExplosion) 예고 2초 — 감염체에서 떨어지기
|
||||||
|
- P3-3 군주의 숨결: 전방 부채꼴 90° 독 브레스 4초(Piloto AOECone_Mist 재색)
|
||||||
|
- 페이즈 4 (티어 3+): 정화의 불 1개로 축소 · 포자탄 7발
|
||||||
|
- 그로기: 정화의 불 3개를 모두 켠 채(기믹 파괴 대신 '점화' 상호작용) P3-2 대폭발을 넘기면 군주 그로기
|
||||||
|
- 고유 드롭: 역병의 심장(중독 부여 세트 · 독 저항) · 상위 단계 재료 '오염된 핵'
|
||||||
|
|
||||||
|
### R5. 혈흔의 사형집행인 (Mutant_Monster_9_1 · 처형 · 변이체 테마 · 구역 ④ 강 건너 마을 처형장)
|
||||||
|
- 컨셉: 단 한 번의 처형을 노린다. 피해를 줄수록 피의 비가 짙어지고, 마지막엔 거대 변이체(C2 주먹 좀비)가 난입한다.
|
||||||
|
- 크기 ×4 · 넉백 면역 · 출혈(HitType 8) · 사망 연출 143프레임(최장 — 클리어의 카타르시스)
|
||||||
|
- 페이즈 1 처형인 (100~70%)
|
||||||
|
- P1-1 무기 던지기(기존 1007400: 5방향 18° 회전 도끼, 06_SpinningAxe FX 재활용): 방향 사이로
|
||||||
|
- P1-2 혈흔비(기존 1007401: 반경 4 장판 DoT 7초 · 반경 10 안 무작위): 장판 밖으로
|
||||||
|
- P1-3 처형 강타(기존 1007402 평타 4.5m 180% → 재정의): 전방 직선 예고 1.2초, **방어 무시 60%(안)** — 회피 필수, 실패 시 출혈 스택
|
||||||
|
- 페이즈 2 광란 (70~40%)
|
||||||
|
- P2-1 도끼 회수 돌진: 던진 도끼 위치로 돌진(Move) 예고 DashRange 0.8초 — 도끼 위치 = 위험선
|
||||||
|
- P2-2 혈흔 폭우: 장판 3개 동시 · 지속 10초 → 안전지대 1/3
|
||||||
|
- P2-3 처형 2연: 강타 후 즉시 회전 베기(360° 반경 4) — 첫 회피 후 거리 벌리기
|
||||||
|
- 페이즈 3 난입 (40~15%)
|
||||||
|
- P3-1 거대 변이체 난입: C2 주먹 좀비(HP 30%) 등장 — 강타·소환(A1 감염 좀비) — 우선순위 선택
|
||||||
|
- P3-2 피의 계약: 사형집행인이 변이체 처치 시 HP 10% 회복(안) → 변이체를 먼저 잡을지 판단
|
||||||
|
- P3-3 최후의 처형: 아레나 전체 직선 5갈래 예고 1.5초 → 갈래 사이
|
||||||
|
- 페이즈 4 (티어 3+): 처형 예고 0.6초 · 혈흔 폭우 상시
|
||||||
|
- 그로기: 처형 강타를 3회 연속 회피 + 후딜 반격 → 사형집행인 무릎(Stun 5초)
|
||||||
|
- 아레나: 처형장(단두대 오브젝트 = 기믹, 파괴 시 도끼 던지기 1방향 감소)
|
||||||
|
- 고유 드롭: 집행인의 대도끼(둔기 클래스 고정 옵션 · 처형 세트: 체력 30% 이하 적 추가 피해) · 출혈 저항 재료
|
||||||
|
|
||||||
|
### 5-1. 5종 요약
|
||||||
|
|
||||||
|
| 보스 | 테마 | 핵심 기믹 | 요구 스펙 | 요구 컨트롤 | 페이즈 자산 |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| R1 검성 | 언데드·검 | 검 소환 위험선 · 분신 · 검우 | 출혈 저항 · DPS | 회피·위치 | Skin1/2 |
|
||||||
|
| R2 거신 | 원소 | 모델 교체 3페이즈 · 장판 누적 | 관통 · 화상/빙결 저항 | 위치·회전 | Golem 1/2/3 |
|
||||||
|
| R3 여왕 | 거미·독 | 산란 · 거미줄 미로 · 독안개 | 독 저항 · 광역 | 우선순위·경로 | AlienSpider 소환 |
|
||||||
|
| R4 역병 | 변이·오염 | 오염 장판 · 감염체 · 정화의 불 | 독 저항 · 지속 회복 | 안전지대·기믹 | Zombie/Grounded |
|
||||||
|
| R5 집행인 | 변이·혈흔 | 처형(방어 무시) · 혈흔비 · 난입 | 최대 체력 · 출혈 저항 | 회피 타이밍 | Mutant 10 난입 |
|
||||||
|
|
||||||
|
## 6. 챕터·엘리트 보스(중간 관문) 패턴 요약
|
||||||
|
|
||||||
|
| 보스 | 페이즈 | 패턴(기존 → 추가) | 교사 목적 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| C5 묘지의 거인(EvilUndead3) | 1 | 돌진 500%(기존) → 예고 시간 1.5초 · 벽 충돌 시 기절 3초 | '예고를 보고 회피'를 가르치는 첫 관문(구역 ⑦) |
|
||||||
|
| C4 그림자 암살자(AlienAssassin_1) | 2 | 돌진(기존) → 은신(안개 FX) 후 등 뒤 3연타 · 슬롯 5개로 패턴 4종 추가 | 카메라 뒤 경계 · 감속 스킬 활용(구역 ⑧) |
|
||||||
|
| C3 망령 군주(Wraith) | 3 | 탄 1발 → 3발 → 5발(Wraith_1~3 그대로) → P3 유도탄(FreeTargeting) | 탄막 회피 · 우선 처치(구역 ⑦) |
|
||||||
|
| C1 켄타우로스 궁기병(Centaur) | 2 | 발사체 3 · 점프 · 돌진(기존) → P2 화살비(CircleRange 6) | 원거리+돌진 복합 회피(구역 ⑩ 던전 입구 = 챕터 1 보스) |
|
||||||
|
| C2 거대 변이체(Mutant 10) | 2 | 강타 2 · 소환 2(기존) → P2 연속 강타 · 소환물 시체 폭발 | 우선순위(구역 ⑩ 심부 · R5 난입 재활용) |
|
||||||
|
|
||||||
|
## 7. 이펙트 자원 활용표
|
||||||
|
|
||||||
|
| 용도 | 팩 · 프리팹(실측) |
|
||||||
|
|---|---|
|
||||||
|
| 예고(텔레그래프) | DTT Arc/Circle/Line Region(27) · 기존 `_CircleRange` `_DashRange` `_ArcRange` FX |
|
||||||
|
| 검·베기 | Red_clue Single/Combo_Slash · ClawSlash(28) · FX_Slash_Collection(43) · Lana Slash |
|
||||||
|
| 충격파·지진 | Mirza Beig Particle Shockwave 1~3 · ExtremeFX EpicStomp · Break_Lava · Red_clue Crack_ground(7) |
|
||||||
|
| 화염·용암 | PyroParticles Flamestrike·Flamethrower·FireExplosion·Fireball · Piloto Fire(50) · SineVFX ConjureLavaPool · Vefects Fire |
|
||||||
|
| 빙결·수정 | BlizzardSnow(5) · Hovl frost 계열 · Lana top_down_ice · SineVFX ConjureAmethystSea · MagicArsenal Frost |
|
||||||
|
| 독·오염 | Piloto Mist(35) · Magical Combat AcidicExplosion·AcidMagic_Rain · GabrielAguiar Poisoned 계열 · 06_HitPoision |
|
||||||
|
| 혈흔·처형 | EffectCore Blood(240) · KriptoFX Volumetric Blood(35) · FXVille_BloodPack(42) · gibs and gore(85) · BloodDecals(305) |
|
||||||
|
| 어둠·소환·분신 | MagicalDark Dark_Gate·Dark_Fissure·Arcane_Beam(57) · VisualX Portal(73) · MagicalEffect Cursed |
|
||||||
|
| 투사체·탄막 | Hovl Projectiles(27×3) · GabrielAguiar Projectile/Hit/Muzzle(593) · MagicArsenal Missiles/Explosions · ArrowsVFX(32) |
|
||||||
|
| 거미줄 | AnimatedSpiderwebCollection(53) |
|
||||||
|
| 상태이상 표시 | 기존 `08_AbnormalBleeding` `09_AbnormalBurn` `10_AbnormalWeakness` `11_AbnormalSlowNormal` · Lana States(Stun 등) |
|
||||||
|
| 카메라·시간 | HitFeelDirector(히트스톱·슬로모·흔들림) — 페이즈 전환·처형에 사용 |
|
||||||
|
|
||||||
|
## 8. 개발 착수 순서(안)
|
||||||
|
|
||||||
|
1. 페이즈 시스템(HP 임계 → 스킬 세트 교체) · 티어 배율 · 예고 시간 파라미터 — 보스 공통
|
||||||
|
2. R1 검성(기존 스킬 4종 + 신규 3) → 첫 레이드 프로토타입(TVBossScale 실측 자산 활용)
|
||||||
|
3. C5 거인·C1 켄타우로스 — 예고 회피 교사 관문
|
||||||
|
4. R2 거신(모델 교체·Dissolve) · R3 여왕(거미줄 오브젝트) · R4 역병(정화의 불 기믹) · R5 집행인(난입)
|
||||||
|
5. 스태거/그로기 · 보스 고유 드롭 · 티어 도전권
|
||||||
|
|
||||||
|
## 9. PD 결정 요청
|
||||||
|
① 레이드 5종 구성(R1~R5) 승인 ② 페이즈 임계 70/40/15% · 시간 제한 8~12분(안) ③ 그로기 규칙(회피+반격 3회) ④ 처형류 '방어 무시 % 피해' 허용 ⑤ 챕터 보스 배치(C1 켄타우로스 = 챕터 1 보스) ⑥ 한글 이름 확정(작업명 → 정식)
|
||||||
|
|
||||||
|
## 부록 — 미확인
|
||||||
|
- 각 모델의 실제 스킬 슬롯 모션 내용(어떤 동작인지)은 프레임 수만 실측 — 에디터 재생 확인 필요
|
||||||
|
- 몬스터 프리팹 실제 크기(Scale 필드 없음) · 보스 ×3~5 확대 시 충돌 반경·카메라 실측 필요
|
||||||
|
- BattleSpider·AlienAssassin의 아트 톤(SF)이 다크 판타지와 맞는지 PD 판단
|
||||||
|
|
@ -0,0 +1,126 @@
|
||||||
|
# FR 보스 패턴 구현 노트 v1 (BT27-FirstRising · 2026-09-27)
|
||||||
|
|
||||||
|
> PD 지시 "이제 이 세션에서 기획한 보스 패턴을 구현해줘" 의 구현 기록. 기획 원본: 같은 폴더 `2026-09-24_FR_몬스터분류_보스패턴_기획서_v1.md` §4~6 · 패턴 수치 `tools/build_raid_patterns_v1.py` 의 SPEC.
|
||||||
|
> **진행중** — 이 문서는 다음 세션이 다시 조사하지 않도록 실측 사실과 남은 일을 적는다. 수치는 전부 (안).
|
||||||
|
|
||||||
|
## 0. 상태 한눈에 (2026-09-27 22:35 기준)
|
||||||
|
|
||||||
|
| 항목 | 상태 |
|
||||||
|
|---|---|
|
||||||
|
| 공통 틀(페이즈·전환 무적·광폭·그로기·처형·구역 피해·모델 교체) | 코드 작성 · 컴파일 확인. **Play 검증은 페이즈 전환·티어 조건·초기화 값만** |
|
||||||
|
| R1 타락한 검성 | 1차 빌드(22:04) + Play 검증 완료(§5). 이후 정의를 다시 썼으므로 **재빌드 필요** |
|
||||||
|
| R2~R5 · C1~C5 | 패턴 정의 코드 작성 · 컴파일 확인. **빌드·Play 검증 전** |
|
||||||
|
| 런타임 추가분(상태이상 면역 · 접촉 피해 끄기) | 컴파일 확인. Play 검증 전 |
|
||||||
|
| 구워진 데이터(스킬 세트 프리팹 36 · 테이블 · BossConfig.json) | **1차 빌드(R1만) 그대로** — 새 정의는 아직 반영 안 됨 |
|
||||||
|
| 컴파일 | Unity 에디터가 꺼져 있어 Unity 의 컴파일러를 직접 돌려 확인 — 런타임·에디터 어셈블리 모두 **오류 0**(§2-3) |
|
||||||
|
| 커밋 | FR 레포 미커밋(작업 트리). BT 레포는 세션 공유로 커밋 |
|
||||||
|
|
||||||
|
## 1. 구조 — 게임 원본은 1곳만 고쳤다
|
||||||
|
|
||||||
|
FR 레포 `C:\BurningTimes\FirstRising` · 브랜치 `bt/work`.
|
||||||
|
|
||||||
|
| 파일 | 역할 |
|
||||||
|
|---|---|
|
||||||
|
| `Assets/BurningTimes/Boss/Scripts/BossComponents.cs` | ECS 데이터: 설정 싱글턴 + 버퍼(보스 정의·페이즈·스킬 표시·안전 지점), 보스 상태, 시전 감시, HUD 요약 |
|
||||||
|
| `Assets/BurningTimes/Boss/Scripts/BossPhaseSystem.cs` | 시스템 1개(`TR_UpdateSystemGroup`, `CharacterSystem` 뒤, 메인 스레드). 설정 싱글턴이 있을 때만 돈다 |
|
||||||
|
| `Assets/BurningTimes/Boss/Scripts/TVBossDirector.cs` | BT_Visual 에 붙는 진입점. `BossConfig.json` → ECS 설정, 시험용 소환·체력·티어 API, HUD·시험 패널 |
|
||||||
|
| `Assets/BurningTimes/Editor/Boss/BossPatternBuilder.cs` | 빌더: 스킬 세트 프리팹 · 예고 변형 프리팹 · `*_BT.json` · `BossConfig.json` 생성 → SkillAuthoring 굽기 → 두 테이블 굽기 |
|
||||||
|
| `Assets/BurningTimes/Editor/Boss/BossPatternSpec.cs` | 패턴 정의(R1~R5 · C1~C5)와 조립 레시피 |
|
||||||
|
| `Assets/Scripts/Fx/Editor/EditorUtilMenu.cs` | **게임 원본 수정 1곳** — Cook Tables 가 `<테이블>_BT.json` 을 뒤에 붙여 함께 굽는다(날짜·이유 주석 있음) |
|
||||||
|
|
||||||
|
빌드 산출물: `Assets/DataTables/MonsterTable_BT.json` · `MonsterSkillTable_BT.json` · `Assets/GameAssets/FxSkillSetList/19xxxxx.prefab` · `Assets/BurningTimes/Boss/Fx/*`(예고 변형) · `Assets/BurningTimes/Boss/Data/BossConfig.json` · `BuildReport.txt`.
|
||||||
|
빌드가 고치는 기존 파일: `GameAssets/Authoring/SkillAuthoring.prefab` · `GameAssets/DataTables/MonsterTable.prefab` · `MonsterSkillTable.prefab` · `GlobalEntitiesDependencies/GlobalEntitySceneDependency.asset`. `Assets/Scenes/TestVisual.unity` 에는 BT_Visual 에 TVBossDirector 를 붙였다.
|
||||||
|
|
||||||
|
번호 규칙: 몬스터 행 `9101~`(R1 910x · R2 920x · R3 930x · R4 940x · R5 950x · C1 960x · C2 961x · C3 962x · C4 963x · C5 964x), 스킬 = `1000000 + 몬스터 Index × 100 + n`, 페이즈 진입 포효 n=90, 아레나 설치 n=91, 구역 표시 n=92.
|
||||||
|
|
||||||
|
## 2. 빌드·검증 절차
|
||||||
|
|
||||||
|
검증용 eval 스크립트: `tools/unity_eval/`(이 폴더). Unity CLI 는 `unity cmd <명령> --project-path "C:\BurningTimes\FirstRising"`.
|
||||||
|
|
||||||
|
1. **Play 여부를 단독 명령으로 확인** — `unity cmd editor_status`. Play 중이면 재컴파일·빌드 금지.
|
||||||
|
2. 재컴파일 — `unity cmd recompile` → `recompile_status` 로 완료 확인 → `get_console_logs --severity error`.
|
||||||
|
3. 에디터가 꺼져 있을 때의 컴파일 확인 — `tools/unity_eval/csc_check.sh`. Unity 가 마지막 컴파일에 쓴 응답 파일(`Library/Bee/artifacts/1900b0aE.dag/Assembly-CSharp(.Editor).rsp`)을 복사해 출력만 스크래치패드로 돌린다. Git Bash 에서는 `MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL="*"` 를 앞에 붙인다. 프로젝트에는 쓰지 않는다. 새 .cs 파일을 추가했으면 응답 파일에 없으므로 에디터에서 한 번 컴파일해야 한다.
|
||||||
|
4. 빌드 — `unity cmd eval_file --file boss_build.cs --json`(메뉴 "BurningTimes/Boss/1. 패턴 빌드"). **5초 넘으면 "Main thread operation timed out after 5000ms" 가 오지만 에디터 작업은 끝까지 돈다 — 재실행하지 말고** `Assets/BurningTimes/Boss/Data/BuildReport.txt` 와 `git status` 로 확인.
|
||||||
|
5. TestVisual 열기 + 디렉터 붙이기 — `boss_open_testvisual.cs`. 검증 Play → 소환(`TVBossDirector.Instance.Spawn("R1")`, 화면 왼쪽 위 "보스 시험" 패널도 같음) → `boss_set_ratio.cs`(`boss_args.txt` 에 "비율 티어") → `boss_play_probe.cs` 로 상태 요약 → **검증 끝나면 즉시 Play 종료**.
|
||||||
|
6. 끝나면 에디터 씬을 원래 열려 있던 `Assets/Scenes/Entry.unity` 로 되돌린다.
|
||||||
|
|
||||||
|
빌더 안전장치: Play 중 중단 · 굽기 전 테이블과 원본 JSON 행 수 대조(어긋나면 예외) · 전역 저장(SaveAssets) 안 씀 · 스킬 Index 중복 검사 · 백업 `공유/개발팀_백업/FirstRising/2026-09-27_BT27_보스패턴/`(빌드 전 SkillAuthoring · 두 테이블 프리팹 · EditorUtilMenu 원본).
|
||||||
|
|
||||||
|
## 3. 전투 파이프라인 실측 (다시 조사하지 말 것)
|
||||||
|
|
||||||
|
- **테이블**: `Assets/DataTables/*.json` → 메뉴 "ThunderRising/Cook Tables/Cook Table" 이 `Assets/GameAssets/DataTables/<이름>.prefab` 으로 굽는다. 런타임·서브씬 굽기는 Addressables 로 그 프리팹을 읽는다. `MonsterTable.LoadFromText` 를 두 번 부르면 앞 행의 스킬 정보가 지워진다 → 글자 단계에서 합쳐 1회 호출.
|
||||||
|
- **몬스터 스킬**: MonsterSkillTable 행(`UseCharacterId` = 소유 몬스터) + 스킬별 FxSkillSet 프리팹(`GameAssets/FxSkillSetList/<스킬 Index>.prefab`) → `SkillAuthoring.prefab` 의 skillSets(폴더 전체) → 서브씬 굽기. `UseSkillType >= 100` 이면 평소 사용 목록에서 빠지지만 스킬 버퍼에는 있다(번호로 직접 쏠 수 있다).
|
||||||
|
- **스킬 선택**은 라운드로빈(`CharacterSystem.MonsterSkillJob`: 쿨타임 · 전역 쿨 · 사거리 · PlayCount).
|
||||||
|
- **표 값이 FX 설정을 덮어쓴다**(`SkillBufferElement.SetFxComponent`): Duration → 모든 항목 수명, HitRange → 판정 범위이자 FX 크기, HitAngle, Effect(Knock · Bounce · Daze · DotDamage · Stun · Pull · Penetration · Move). 항목에 `ignoreScriptOverride = 1` 을 주면 Move 와 수명(0 이하일 때)만 덮인다.
|
||||||
|
- **예고 표시**: 부채꼴 각도 = hitComponent.angleDegree, 채움 시간 = `ArcRegionAuthoring.fillProgressDuration`. 직선 길이·폭 = moveModule.distance · width(= HitRange × 2), 채움 = `LineRegionAuthoring.fillProgressDuration`. 원형은 파티클이라 채움 값이 없다 → 재생 속도로 맞춘다.
|
||||||
|
- **피해**: `TakeDamageBufferElement` → DamageSystem. `invincibilityCount > 0` 이면 무시. `applyAbnormalState == 1` 일 때만 상태이상. 몬스터 공격은 맞은 기록을 남기지 않는다 → 피격 여부는 시간 창 + 플레이어 체력 변화로 판정한다.
|
||||||
|
- **접촉 피해**: 플레이어가 몬스터 반경 + 0.3 m 안이면 0.6초마다 공격력 × 0.7(`MonsterAttackComponent.nextByteTimeSeconds`).
|
||||||
|
- **죽음·풀**: 체력 0 → 3초 뒤 체력을 되돌리고 풀로 복귀. 다시 나올 때 크기는 프리팹 값으로 재설정된다 → 상태 컴포넌트의 '마지막으로 본 시각'으로 재사용을 가려낸다.
|
||||||
|
- **소환**: `WorldManager.Instance.SpawnMonsterEntity(표 Index, 종류, 위치, 회전, 체력(무시됨), blind)`. 몬스터는 플레이어와 19 m 넘게 떨어지면 순간이동한다.
|
||||||
|
- **TestVisual 의 `TestMonstersController` 는 표의 보스·엘리트 행을 전부 소환한다** → BT 행은 등급을 일반(1)으로 두고 디렉터가 보스로 소환한다(새 정의에 반영, 재빌드 전).
|
||||||
|
- **TestVisual 의 `TVTestCheats` 가 플레이어를 무적으로 유지한다** → 플레이어 피격·처형 검증 때만 Play 중에 끄고 끝나면 원복.
|
||||||
|
- **빈 애니메이션 슬롯을 재생하면 오류** — 모델별 보유 슬롯: EvilUndead7 S0~4 · Golem 1·2·3 S0~2 · GiantSpider_1 S0~3 · Mutant_8_3 / 9_1 / 10_1 S0~3 · Centaur S0~3 · Wraith S0~2 · AlienAssassin_1 S0~4 · EvilUndead3 S0~1 · AlienSpider_1 S0~1 · ZombieGrounded S0 · Zombie S0~2.
|
||||||
|
|
||||||
|
## 4. 보스별 구성 (새 정의 기준 · 재빌드 전)
|
||||||
|
|
||||||
|
| 코드 | 보스 | 모델 | 페이즈(체력 임계) | 그로기 표시 | 특수 |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| R1 | 타락한 검성 | EvilUndead7 Skin 1 | 100 / 70 / 40 / 15%(P4 는 티어 3 이상) | 발구르기 | 처형 일격(P3·P4, 최대 체력 60%), 분신 소환, 검우 |
|
||||||
|
| R2 | 원소 거신 | Golem 1 → 2 → 3 | 같음 | 내려찍기 · 불기둥 · 수정 창 | **모델 교체**, 용암 장판, 빙결 감옥 |
|
||||||
|
| R3 | 거미 여왕 | GiantSpider_1 | 같음 | 급습 점프 | 새끼 9마리 소환, 거미줄 띠 4, **독안개 안전 원**(20 → 10 m 60초, 초당 4%) |
|
||||||
|
| R4 | 역병 군주 | Mutant_Monster_8_3 | 같음 | 대폭발 | 감염체 소환(죽으면 독 장판), 오염 장판, **정화의 불 안전 지점 3**(밖은 중독 누적 초당 2 → 10%) |
|
||||||
|
| R5 | 혈흔의 사형집행인 | Mutant_Monster_9_1 | 같음 | 처형 강타 | 처형 강타(60%), 거대 변이체 난입, 최후의 처형 5갈래 |
|
||||||
|
| C1 | 켄타우로스 궁기병 | Monster_Centaur_1 | 100 / 50% | 점프 강타 | P2 화살비 |
|
||||||
|
| C2 | 거대 변이체 | Mutant_Monster_10_1 | 100 / 50% | 시체 폭발 | P2 연속 강타 |
|
||||||
|
| C3 | 망령 군주 | Wraith_3 | 100 / 66 / 33% | 없음 | 탄 1 → 3 → 5 + 유도 |
|
||||||
|
| C4 | 그림자 암살자 | AlienAssassin_1 | 100 / 50% | 회전 베기 | P2 그림자 돌파 |
|
||||||
|
| C5 | 묘지의 거인 | EvilUndead3_Prefab | 단일 | 돌진 | 예고 1.5초 |
|
||||||
|
|
||||||
|
공통값(안): 레이드 체력 30~40만 · 공격력 = 플레이어 최대 체력의 5% · 티어당 체력 +50% 공격 +25% · 광폭 600~720초(공격 ×2, 쿨 ×0.5) · 그로기 3회 → 기절 5초, 받는 피해 ×2 · 전환 무적 3초 · 예고 배율 P1 1.0 / P2 0.8 / P3 0.6 / P4 0.5. 챕터 보스는 공격력 4% · 그로기 2회 · 기절 3초 · 광폭 없음. 챕터 보스는 실제 챕터에 쓰이는 기존 행을 건드리지 않고 같은 모델의 새 행으로 만들었다(챕터 배치는 PD 결정 뒤).
|
||||||
|
|
||||||
|
## 5. R1 Play 검증 결과 (1차 빌드 · TestVisual)
|
||||||
|
|
||||||
|
- 설정 싱글턴 생성, 소환 시 체력 300000 · 크기 6.80(프리팹 1.7 × 4) · 공격력 26(플레이어 최대 체력 510 의 5%) · P1 스킬 4종.
|
||||||
|
- 체력 69% → 페이즈 2(스킬 7종, 무적 3초 뒤 해제) · 39% → 페이즈 3(스킬 10종) · 14% 에서 티어 1 은 P3 유지, 티어 3 은 P4 진입.
|
||||||
|
- 콘솔 런타임 오류 없음(eval 5초 초과 메시지만). 화면에서 낙하 검 예고 원 · 회전체 · 직선 예고 · 투사체 발동 확인.
|
||||||
|
- 확인된 문제와 조치: ① 시험 씬 배치 스크립트가 R1 을 하나 더 소환 → 표 등급을 일반으로(새 정의) ② 페이즈 이동 속도 미반영 → 페이즈마다 속도 지정(새 정의) ③ 직선 예고가 줄무늬 부채처럼 보임 → 다듬기 필요(미착수) ④ 보스가 커서 화면에 다리만 보임 → 크기·카메라 검토 필요(미착수).
|
||||||
|
- **미검증**: 모델 교체 · 구역 피해 · 처형 보정 · 광폭 · 그로기 기절 · 플레이어 피격(시험 씬 무적 때문).
|
||||||
|
|
||||||
|
## 6. 기획 대비 단순화·미구현 (정직 표기)
|
||||||
|
|
||||||
|
| 기획 | 구현 | 이유 |
|
||||||
|
|---|---|---|
|
||||||
|
| R2 서리 3중 링(링 사이 틈이 안전) | 반경이 커지는 원형 폭발 3연속 | 고리 모양 판정·표시가 없다 |
|
||||||
|
| R2 화염 방사 90° 회전 | 고정 방향 방사 | 보스 회전 제어가 없다 |
|
||||||
|
| R3 기둥을 부수면 거미줄 띠 제거 | 거미줄 띠만(제거 없음) | 파괴 가능한 오브젝트 미구현 |
|
||||||
|
| R3 그로기 조건 "산란 5초 안에 새끼 전멸" | 급습 점프 회피 + 후딜 반격 | 소환물 추적이 없다 |
|
||||||
|
| R4 쓰러진 자리마다 부활 | 플레이어 둘레 소환 | 시체 위치 기록이 없다 |
|
||||||
|
| R4 감염체 전부 동시 폭발 | 군주 중심 대폭발 | 소환물 추적이 없다 |
|
||||||
|
| R4 정화의 불 켜기 · 60초마다 재점화 | 안전 지점 고정 | 상호작용 오브젝트 미구현 |
|
||||||
|
| R5 던진 도끼 위치로 돌진 | 플레이어 방향 돌진 | 도끼 위치 참조가 없다 |
|
||||||
|
| R5 피의 계약(변이체 사망 시 본체 회복) | 미구현 | 소환물 사망 추적이 없다 |
|
||||||
|
| R5 단두대 등 아레나 오브젝트 | 미구현 | 파괴·상호작용 오브젝트 미구현 |
|
||||||
|
| C2 소환물 시체 폭발 | 변이체 중심 폭발 | 소환물 추적이 없다 |
|
||||||
|
| C4 은신 후 등 뒤 3연타 | 관통 돌진 뒤 3연타 | 은신·순간이동 없음 |
|
||||||
|
| C5 벽 충돌 시 기절 | 돌진 회피 + 후딜 반격 → 그로기 | 벽 충돌 감지 없음 |
|
||||||
|
| 모델 교체 시 보스 수 집계 | 확인 안 함 | 게임의 보스 카운트에 영향이 있는지 미실측 |
|
||||||
|
|
||||||
|
## 7. 남은 일 (순서대로)
|
||||||
|
|
||||||
|
1. 에디터를 켠 뒤 Play 여부 단독 확인 → 재컴파일 → 오류 확인.
|
||||||
|
2. 빌드 실행 → `BuildReport.txt` 확인. 빌드 단계에서 볼 것: 감염체 사망 스킬 행(소유자 칸을 비움) · 소환 스킬의 프리팹 이름 해시 · 구역 표시 원의 크기(scaleModule 이 절대값인지 배율인지, 원 프리팹의 기본 반지름).
|
||||||
|
3. 보스별 Play 검증(R1 재검증 → R2 → … → C5): 소환 · 페이즈 · 콘솔 오류 · 캡처(이미지 수 최소). R2 는 모델 교체, R3·R4 는 구역 피해, R1·R5 는 처형.
|
||||||
|
4. 플레이어 피격·처형·그로기 검증 — Play 중에만 시험 씬 무적을 끄고 끝나면 원복.
|
||||||
|
5. 직선 예고 모양 다듬기, 보스 크기·카메라 검토.
|
||||||
|
6. 에디터 씬을 `Entry.unity` 로 복원.
|
||||||
|
7. 이 노트 v2 · 지시 로그 BT27 종료 기록 · PD 보고.
|
||||||
|
|
||||||
|
## 8. 의도치 않게 함께 저장된 파일 (PD 판단 대기)
|
||||||
|
|
||||||
|
1차 빌드에서 빌더가 전역 저장을 부르는 바람에 에디터 메모리에 떠 있던 변경이 디스크에 기록됐다(빌더에서는 이미 제거). 현재 git 상 변경으로 남은 6개:
|
||||||
|
`Assets/EffectAssets/Hovl Studio/HSFiles/Materials/FlashGroundCG.mat` · `MagicCircle38bcg.mat` · `Point12cg.mat` · `Smoke3cg.mat`(속성 추가 2~6줄) · `Assets/UI/Font/NanumGothic/NanumGothic SDF.asset` · `NanumGothicBold SDF.asset`(각 1줄).
|
||||||
|
저장 직후에는 `NanumBarunGothic SDF.asset` 도 변경으로 보였으나 22:30 확인 시에는 변경 목록에 없다. 남의 변경일 수 있어 되돌리지 않았다. 되돌리려면:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git -C "C:/BurningTimes/FirstRising" checkout -- "Assets/EffectAssets/Hovl Studio/HSFiles/Materials" "Assets/UI/Font/NanumGothic"
|
||||||
|
```
|
||||||
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 272 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.5 KiB |