docs(rpg): refine text RPG progression and combat plan
This commit is contained in:
parent
8ce3467564
commit
6acf0774c3
|
|
@ -33,7 +33,8 @@ Text RPG 시스템은 Discord 음성 채널을 던전처럼 활용하는 전투
|
||||||
6. 보상 지급
|
6. 보상 지급
|
||||||
- 골드
|
- 골드
|
||||||
- 아이템 드랍
|
- 아이템 드랍
|
||||||
- 추후 확장 시 재료, 특수 재화, 경험치 등 추가 가능
|
- 경험치
|
||||||
|
- 추후 확장 시 재료, 특수 재화 등 추가 가능
|
||||||
7. 전투 종료 후 선택 UI 표시
|
7. 전투 종료 후 선택 UI 표시
|
||||||
- 다음 전투
|
- 다음 전투
|
||||||
- 휴식
|
- 휴식
|
||||||
|
|
@ -74,7 +75,8 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
|
|
||||||
- `userId`
|
- `userId`
|
||||||
- `guildId`
|
- `guildId`
|
||||||
- `level` 또는 성장 단계
|
- `level`
|
||||||
|
- `exp`
|
||||||
- `str`
|
- `str`
|
||||||
- `dex`
|
- `dex`
|
||||||
- `int`
|
- `int`
|
||||||
|
|
@ -92,11 +94,42 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
|
|
||||||
설계 메모:
|
설계 메모:
|
||||||
|
|
||||||
|
- `level`과 `exp`는 플레이어 성장의 기본 축으로 사용합니다.
|
||||||
|
- 다음 레벨까지 필요한 경험치는 저장값 대신 런타임 계산을 권장합니다.
|
||||||
- `gold`는 기존 미니게임에서 사용하는 골드 값과 중복 저장하지 않고 같은 값을 사용해야 합니다.
|
- `gold`는 기존 미니게임에서 사용하는 골드 값과 중복 저장하지 않고 같은 값을 사용해야 합니다.
|
||||||
- `diamond`는 유료 재화이므로 별도 필드로 분리합니다.
|
- `diamond`는 유료 재화이므로 별도 필드로 분리합니다.
|
||||||
- `str`, `dex`, `int`는 빌드 방향을 정하는 핵심 능력치입니다.
|
- `str`, `dex`, `int`는 빌드 방향을 정하는 핵심 능력치입니다.
|
||||||
- 치명타율, 회피율, 속도 같은 파생 수치는 DB에 저장하기보다 런타임 계산을 우선으로 합니다.
|
- 치명타율, 회피율, 속도 같은 파생 수치는 DB에 저장하기보다 런타임 계산을 우선으로 합니다.
|
||||||
|
|
||||||
|
### 1-1. 레벨 및 경험치 설계
|
||||||
|
|
||||||
|
레벨과 경험치는 별도 성장 축으로 명확히 설계하는 것이 좋습니다.
|
||||||
|
|
||||||
|
권장 규칙:
|
||||||
|
|
||||||
|
- 전투 승리 시 `exp` 획득
|
||||||
|
- 누적 `exp`가 기준치를 넘으면 레벨업
|
||||||
|
- 레벨업 시 `statPoints` 지급
|
||||||
|
- 필요 시 최대 HP, 기본 물리 공격력 같은 기본 성장치도 함께 상승
|
||||||
|
|
||||||
|
경험치 설계 방향 예시:
|
||||||
|
|
||||||
|
- 던전 난이도가 높을수록 경험치 보상 증가
|
||||||
|
- 몬스터 등급에 따라 경험치 보상 차등 적용
|
||||||
|
- 반복 파밍 방지를 위해 너무 낮은 난이도에서는 경험치 효율 감소 가능
|
||||||
|
|
||||||
|
초기 버전 권장안:
|
||||||
|
|
||||||
|
- `level`은 1부터 시작
|
||||||
|
- `exp`는 누적값 저장
|
||||||
|
- 레벨업 필요 경험치는 `balance.json` 또는 공식으로 계산
|
||||||
|
|
||||||
|
예시 공식:
|
||||||
|
|
||||||
|
- `requiredExp(level) = floor(20 * level^1.35)`
|
||||||
|
|
||||||
|
이 값은 초안일 뿐이며 실제 밸런스는 전투 속도와 성장 체감에 맞춰 조정해야 합니다.
|
||||||
|
|
||||||
### 2. 능력치 설계
|
### 2. 능력치 설계
|
||||||
|
|
||||||
기본 능력치는 아래 3개를 사용합니다.
|
기본 능력치는 아래 3개를 사용합니다.
|
||||||
|
|
@ -124,6 +157,12 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
|
|
||||||
이 값들은 기본 능력치와 장비, 버프를 조합해 계산하는 구조를 권장합니다.
|
이 값들은 기본 능력치와 장비, 버프를 조합해 계산하는 구조를 권장합니다.
|
||||||
|
|
||||||
|
정리 기준:
|
||||||
|
|
||||||
|
- `str`, `dex`, `int`는 DB에 저장되는 기본 능력치
|
||||||
|
- `물리 공격력`, `마법 공격력`은 전투 계산에 직접 사용되는 핵심 파생 수치
|
||||||
|
- 그 외 명중, 회피, 치명타, 속도도 기본 능력치와 장비 상태로부터 계산
|
||||||
|
|
||||||
### 3. 스킬 저장 구조
|
### 3. 스킬 저장 구조
|
||||||
|
|
||||||
플레이어 스킬은 아래 두 상태를 구분해야 합니다.
|
플레이어 스킬은 아래 두 상태를 구분해야 합니다.
|
||||||
|
|
@ -144,8 +183,9 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
설계 규칙:
|
설계 규칙:
|
||||||
|
|
||||||
- 플레이어는 여러 스킬을 배울 수 있지만, 동시에 장착 가능한 스킬 수는 제한합니다.
|
- 플레이어는 여러 스킬을 배울 수 있지만, 동시에 장착 가능한 스킬 수는 제한합니다.
|
||||||
- 초기 버전은 장착 슬롯 3개 또는 4개 정도가 적절합니다.
|
- 초기 버전은 장착 스킬 슬롯을 4개로 고정합니다.
|
||||||
- 스킬 성능은 스킬 고유 값과 플레이어 능력치 계수를 함께 사용해 계산합니다.
|
- 스킬 성능은 스킬 고유 값과 플레이어 능력치 계수를 함께 사용해 계산합니다.
|
||||||
|
- 전투 중에는 장착한 4개 스킬 중 매 턴마다 무작위로 1개를 선택해 사용합니다.
|
||||||
|
|
||||||
### 4. 재화 구조
|
### 4. 재화 구조
|
||||||
|
|
||||||
|
|
@ -397,10 +437,17 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
초기 버전 권장안:
|
초기 버전 권장안:
|
||||||
|
|
||||||
- 반자동 전투
|
- 반자동 전투
|
||||||
- 장착 스킬을 우선순위 또는 순환 로직으로 사용
|
- 장착한 4개 스킬 중 매 턴 무작위로 1개를 선택해 사용
|
||||||
- `dex` 또는 속도 수치에 따라 선공 결정
|
- `dex` 또는 속도 수치에 따라 선공 결정
|
||||||
- 각 스킬은 고유 수치와 능력치 계수로 피해량 계산
|
- 각 스킬은 고유 수치와 능력치 계수로 피해량 계산
|
||||||
|
|
||||||
|
스킬 사용 규칙:
|
||||||
|
|
||||||
|
- 플레이어는 최대 4개의 스킬을 장착
|
||||||
|
- 전투 턴이 시작될 때 장착 스킬 4개 중 1개를 랜덤 선택
|
||||||
|
- 사용 불가능한 스킬이 있다면 쿨타임/자원 조건을 만족하는 스킬만 후보에 포함
|
||||||
|
- 모든 스킬이 사용 불가 상태라면 기본 공격 또는 대기 행동으로 대체
|
||||||
|
|
||||||
초기 피해 공식 예시:
|
초기 피해 공식 예시:
|
||||||
|
|
||||||
- 물리 스킬 피해량 = `basePower + (str * strScaling) + (dex * dexScaling)`
|
- 물리 스킬 피해량 = `basePower + (str * strScaling) + (dex * dexScaling)`
|
||||||
|
|
@ -439,6 +486,7 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
- `category`
|
- `category`
|
||||||
- `stats`
|
- `stats`
|
||||||
- `skills`
|
- `skills`
|
||||||
|
- `rewardExp`
|
||||||
- `rewardGoldRange`
|
- `rewardGoldRange`
|
||||||
- `dropTableId`
|
- `dropTableId`
|
||||||
- `aiPattern`
|
- `aiPattern`
|
||||||
|
|
@ -460,6 +508,7 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
"speed": 4
|
"speed": 4
|
||||||
},
|
},
|
||||||
"skills": ["slime_body_slam"],
|
"skills": ["slime_body_slam"],
|
||||||
|
"rewardExp": 8,
|
||||||
"rewardGoldRange": {
|
"rewardGoldRange": {
|
||||||
"min": 10,
|
"min": 10,
|
||||||
"max": 18
|
"max": 18
|
||||||
|
|
@ -477,6 +526,7 @@ DB 기준으로 아래 역할의 데이터가 필요합니다.
|
||||||
전투 종료 후 아래 보상을 계산합니다.
|
전투 종료 후 아래 보상을 계산합니다.
|
||||||
|
|
||||||
- 골드 보상
|
- 골드 보상
|
||||||
|
- 경험치 보상
|
||||||
- 아이템 드랍
|
- 아이템 드랍
|
||||||
- 추후 확장 시 재료 드랍
|
- 추후 확장 시 재료 드랍
|
||||||
- 낮은 확률의 희귀 보상
|
- 낮은 확률의 희귀 보상
|
||||||
|
|
@ -631,6 +681,6 @@ resource/data/rpg/
|
||||||
- 던전 그룹 2~3종
|
- 던전 그룹 2~3종
|
||||||
- 전투당 적 1마리
|
- 전투당 적 1마리
|
||||||
- 전투 종료 후 선택지 3종
|
- 전투 종료 후 선택지 3종
|
||||||
- 골드와 아이템 보상 우선 적용
|
- 골드, 경험치, 아이템 보상 우선 적용
|
||||||
|
|
||||||
초기 범위를 좁게 잡으면 시스템 구조를 빠르게 안정화할 수 있고, 이후 콘텐츠 확장도 훨씬 수월해집니다.
|
초기 범위를 좁게 잡으면 시스템 구조를 빠르게 안정화할 수 있고, 이후 콘텐츠 확장도 훨씬 수월해집니다.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue