239 lines
5.1 KiB
Markdown
239 lines
5.1 KiB
Markdown
|
|
# 游戏数值平衡系统
|
||
|
|
|
||
|
|
## 目录
|
||
|
|
- [核心概念](#核心概念)
|
||
|
|
- [属性系统设计](#属性系统设计)
|
||
|
|
- [公式体系](#公式体系)
|
||
|
|
- [经济系统](#经济系统)
|
||
|
|
- [成长曲线](#成长曲线)
|
||
|
|
- [概率设计](#概率设计)
|
||
|
|
- [平衡调优](#平衡调优)
|
||
|
|
|
||
|
|
## 核心概念
|
||
|
|
|
||
|
|
### 数值设计三原则
|
||
|
|
1. **可预期性** - 玩家能理解投入与回报的关系
|
||
|
|
2. **可控性** - 设计者能精确调整数值影响
|
||
|
|
3. **可扩展性** - 系统能容纳后期内容增加
|
||
|
|
|
||
|
|
### 数值层级结构
|
||
|
|
```
|
||
|
|
基础数值 (Base Stats)
|
||
|
|
↓
|
||
|
|
修正数值 (Modifiers)
|
||
|
|
↓
|
||
|
|
计算数值 (Calculated Stats)
|
||
|
|
↓
|
||
|
|
最终数值 (Final Stats)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 属性系统设计
|
||
|
|
|
||
|
|
### 基础属性模板
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"attributes": {
|
||
|
|
"primary": {
|
||
|
|
"strength": {"base": 10, "growth": 2.5, "description": "影响物理攻击"},
|
||
|
|
"agility": {"base": 10, "growth": 2.0, "description": "影响攻击速度和闪避"},
|
||
|
|
"intelligence": {"base": 10, "growth": 3.0, "description": "影响魔法攻击和法力值"},
|
||
|
|
"vitality": {"base": 10, "growth": 2.0, "description": "影响生命值和防御"}
|
||
|
|
},
|
||
|
|
"secondary": {
|
||
|
|
"max_hp": "vitality * 10 + base_hp",
|
||
|
|
"max_mp": "intelligence * 8 + base_mp",
|
||
|
|
"physical_atk": "strength * 2 + weapon_atk",
|
||
|
|
"magical_atk": "intelligence * 2.5 + weapon_matk",
|
||
|
|
"physical_def": "vitality * 1.5 + armor_def",
|
||
|
|
"magical_def": "intelligence * 1.0 + armor_mdef"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 属性类型分类
|
||
|
|
|
||
|
|
| 类型 | 说明 | 示例 |
|
||
|
|
|------|------|------|
|
||
|
|
| 基础属性 | 角色固有能力 | 力量/敏捷/智力 |
|
||
|
|
| 衍生属性 | 由基础属性计算 | 攻击力/防御力 |
|
||
|
|
| 战斗属性 | 战斗中生效 | 暴击率/命中率 |
|
||
|
|
| 资源属性 | 消耗型资源 | 法力/怒气/能量 |
|
||
|
|
|
||
|
|
## 公式体系
|
||
|
|
|
||
|
|
### 伤害计算公式
|
||
|
|
|
||
|
|
#### 基础伤害公式
|
||
|
|
```
|
||
|
|
基础伤害 = 攻击力 * 技能倍率 * 随机波动(0.9~1.1)
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 防御减免公式
|
||
|
|
```
|
||
|
|
减免比例 = 防御力 / (防御力 + 防御系数 * 攻击者等级)
|
||
|
|
实际伤害 = 基础伤害 * (1 - 减免比例)
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 暴击公式
|
||
|
|
```
|
||
|
|
暴击判定 = random() < 暴击率
|
||
|
|
暴击伤害 = 最终伤害 * 暴击倍率
|
||
|
|
```
|
||
|
|
|
||
|
|
### 经验值公式
|
||
|
|
|
||
|
|
#### 等级经验曲线
|
||
|
|
```
|
||
|
|
升级所需经验 = 基础经验 * (等级 ^ 经验系数)
|
||
|
|
```
|
||
|
|
|
||
|
|
常用经验系数:
|
||
|
|
- 快速成长: 1.5
|
||
|
|
- 标准成长: 2.0
|
||
|
|
- 慢速成长: 2.5
|
||
|
|
|
||
|
|
#### 经验值分配
|
||
|
|
```
|
||
|
|
击杀经验 = 怪物基础经验 * (1 + 等级差修正)
|
||
|
|
等级差修正 = clamp((怪物等级 - 玩家等级) * 0.1, -0.5, 0.5)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 经济系统
|
||
|
|
|
||
|
|
### 货币体系设计
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"currencies": {
|
||
|
|
"gold": {
|
||
|
|
"name": "金币",
|
||
|
|
"max": 999999999,
|
||
|
|
"primary": true,
|
||
|
|
"sources": ["怪物掉落", "任务奖励", "物品出售"]
|
||
|
|
},
|
||
|
|
"gems": {
|
||
|
|
"name": "宝石",
|
||
|
|
"max": 99999,
|
||
|
|
"premium": true,
|
||
|
|
"sources": ["充值", "成就", "活动"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 通货膨胀控制
|
||
|
|
|
||
|
|
| 手段 | 实现方式 |
|
||
|
|
|------|----------|
|
||
|
|
| 消耗 Sink | 强化消耗/修理费/税收 |
|
||
|
|
| 价值锚定 | NPC售价固定 |
|
||
|
|
| 动态调整 | 根据服务器经济调整掉落 |
|
||
|
|
| 分层货币 | 低/中/高级货币分离 |
|
||
|
|
|
||
|
|
### 定价模型
|
||
|
|
|
||
|
|
```
|
||
|
|
物品价值 = 基础价值 * 稀有度系数 * 需求系数
|
||
|
|
```
|
||
|
|
|
||
|
|
## 成长曲线
|
||
|
|
|
||
|
|
### 标准成长模型
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"growth_curve": {
|
||
|
|
"early_game": {
|
||
|
|
"levels": "1-20",
|
||
|
|
"growth_rate": "fast",
|
||
|
|
"unlock_frequency": "high",
|
||
|
|
"description": "快速反馈期"
|
||
|
|
},
|
||
|
|
"mid_game": {
|
||
|
|
"levels": "21-50",
|
||
|
|
"growth_rate": "moderate",
|
||
|
|
"unlock_frequency": "medium",
|
||
|
|
"description": "核心内容期"
|
||
|
|
},
|
||
|
|
"end_game": {
|
||
|
|
"levels": "51+",
|
||
|
|
"growth_rate": "slow",
|
||
|
|
"unlock_frequency": "low",
|
||
|
|
"description": "深度培养期"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 数值增长类型
|
||
|
|
|
||
|
|
```
|
||
|
|
线性: y = a * x + b
|
||
|
|
对数: y = a * log(x) + b
|
||
|
|
指数: y = a * (x ^ b)
|
||
|
|
S曲线: y = k / (1 + e^(-a*(x-b)))
|
||
|
|
```
|
||
|
|
|
||
|
|
## 概率设计
|
||
|
|
|
||
|
|
### 随机系统类型
|
||
|
|
|
||
|
|
| 类型 | 公式 | 适用场景 |
|
||
|
|
|------|------|----------|
|
||
|
|
| 真随机 | random() < p | 非关键概率 |
|
||
|
|
| 伪随机 | 计数器修正 | 关键概率 |
|
||
|
|
| 保底机制 | 必中计数 | 抽卡/稀有掉落 |
|
||
|
|
| 加权随机 | 权重池 | 战利品表 |
|
||
|
|
|
||
|
|
### 伪随机分布 (PRD)
|
||
|
|
|
||
|
|
```
|
||
|
|
C = 1 - (1 - P) ^ N
|
||
|
|
实际概率 = 基础概率 + (失败次数 * 修正系数)
|
||
|
|
```
|
||
|
|
|
||
|
|
### 保底系统
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"pity_system": {
|
||
|
|
"soft_pity": {
|
||
|
|
"trigger": 70,
|
||
|
|
"increase_rate": 0.05
|
||
|
|
},
|
||
|
|
"hard_pity": {
|
||
|
|
"trigger": 90,
|
||
|
|
"guaranteed": true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 平衡调优
|
||
|
|
|
||
|
|
### 调优流程
|
||
|
|
|
||
|
|
```
|
||
|
|
1. 数据收集 → 2. 问题识别 → 3. 假设验证 → 4. 方案实施 → 5. 效果监控
|
||
|
|
```
|
||
|
|
|
||
|
|
### 常用调优手段
|
||
|
|
|
||
|
|
| 问题类型 | 调优方向 |
|
||
|
|
|----------|----------|
|
||
|
|
| 过强内容 | 增加成本/降低效果/增加限制 |
|
||
|
|
| 过弱内容 | 降低成本/提升效果/减少限制 |
|
||
|
|
| 单一最优解 | 加强替代方案/增加场景限制 |
|
||
|
|
| 进度过快 | 增加消耗/提高门槛/减少产出 |
|
||
|
|
|
||
|
|
### 数值测试清单
|
||
|
|
|
||
|
|
- [ ] 新手流程数值验证
|
||
|
|
- [ ] 满级角色能力上限测试
|
||
|
|
- [ ] 资源产出消耗平衡
|
||
|
|
- [ ] 付费/免费玩家差距
|
||
|
|
- [ ] 多人竞技公平性
|
||
|
|
- [ ] 边界值测试
|