1404 lines
35 KiB
Markdown
1404 lines
35 KiB
Markdown
# 肉鸽怪物刷新机制设计方案(吸血鬼幸存者模式)
|
||
|
||
## 一、设计目标
|
||
|
||
### 1.1 核心目标
|
||
- **高重玩性**:让玩家产生"再来一局"的强烈冲动
|
||
- **心流体验**:保持玩家在挑战与技能之间的最佳平衡
|
||
- **成长满足**:通过ERG需求模型满足玩家的生存、关系、成长需求
|
||
- **IAA友好**:支持广告变现,提升用户留存
|
||
|
||
### 1.2 核心机制
|
||
- **局内Roguelike成长**:每局独立,通过升级选择技能/天赋
|
||
- **局外英雄解锁**:唯一的长线成长,通过游戏内货币解锁新英雄
|
||
- **完全公平**:所有玩家局内起点相同,只看操作和运气
|
||
|
||
### 1.3 约束条件
|
||
- 玩家位置固定在左方
|
||
- 怪物从右方进入
|
||
- 横版战斗场景
|
||
|
||
---
|
||
|
||
## 二、ERG需求模型应用
|
||
|
||
### 2.1 生存需求(Existence)
|
||
**设计要点**:
|
||
- **基础生存压力**:怪物强度随时间递增,迫使玩家不断提升实力
|
||
- **资源稀缺性**:血量、技能冷却、护盾等资源有限,需要策略使用
|
||
- **死亡即结束**:每局独立,死亡后重新开始,无保留
|
||
|
||
**具体实现**:
|
||
```
|
||
怪物强度曲线:
|
||
第1-3波:新手引导期(怪物弱,让玩家建立信心)
|
||
第4-10波:成长期(怪物逐渐增强,玩家获得新能力)
|
||
第11-20波:挑战期(怪物强度大幅提升,考验玩家策略)
|
||
第21+波:极限期(怪物强度接近极限,追求最高记录)
|
||
```
|
||
|
||
### 2.2 关系需求(Relatedness)
|
||
**设计要点**:
|
||
- **社交竞争**:排行榜、好友挑战、成就分享
|
||
- **社区归属**:玩家攻略分享、英雄搭配、技能组合讨论
|
||
- **情感连接**:通过随机事件、特殊怪物增加故事性
|
||
|
||
**具体实现**:
|
||
- 每日挑战:所有玩家面对相同怪物配置,比拼最高波次
|
||
- 好友排行:好友间最高波次对比
|
||
- 成就系统:解锁特殊成就、达成特定条件获得称号
|
||
|
||
### 2.3 成长需求(Growth)
|
||
**设计要点**:
|
||
- **即时反馈**:每次击杀获得经验,升级获得选择机会
|
||
- **局内成长**:通过升级选择技能、天赋、被动效果
|
||
- **局外解锁**:唯一的长线成长,解锁新英雄
|
||
|
||
**具体实现**:
|
||
- 每局内成长:击杀→升级→选择技能/天赋→更强
|
||
- 局外成长:局内货币→解锁新英雄→更多玩法
|
||
- 成就系统:达成目标→解锁新内容→更多目标
|
||
|
||
---
|
||
|
||
## 三、局内Roguelike成长系统
|
||
|
||
### 3.1 升级机制
|
||
```typescript
|
||
// 升级系统
|
||
LevelUpSystem {
|
||
// 经验值获取
|
||
expGain: {
|
||
normalMonster: 10, // 普通怪经验
|
||
eliteMonster: 50, // 精英怪经验
|
||
bossMonster: 200, // Boss经验
|
||
rareMonster: 100 // 稀有怪经验
|
||
},
|
||
|
||
// 升级所需经验
|
||
expRequired: {
|
||
level1: 0,
|
||
level2: 100,
|
||
level3: 250,
|
||
level4: 500,
|
||
level5: 1000,
|
||
// 公式:exp = base * (1.5 ^ (level-1))
|
||
},
|
||
|
||
// 升级奖励
|
||
levelUpReward: {
|
||
type: "三选一",
|
||
options: [
|
||
"新技能",
|
||
"技能升级",
|
||
"天赋选择",
|
||
"被动效果"
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.2 技能选择系统
|
||
```typescript
|
||
// 技能池设计
|
||
SkillPool {
|
||
// 主动技能
|
||
activeSkills: [
|
||
{
|
||
id: "fireball",
|
||
name: "火球术",
|
||
description: "发射火球,造成范围伤害",
|
||
baseDamage: 50,
|
||
cooldown: 2.0,
|
||
maxLevel: 5,
|
||
upgradeEffect: "伤害+20%,冷却-0.2秒"
|
||
},
|
||
{
|
||
id: "lightning",
|
||
name: "闪电链",
|
||
description: "释放闪电,弹射多个目标",
|
||
baseDamage: 30,
|
||
bounceCount: 3,
|
||
maxLevel: 5,
|
||
upgradeEffect: "弹射次数+1,伤害+15%"
|
||
},
|
||
{
|
||
id: "frostNova",
|
||
name: "冰霜新星",
|
||
description: "释放冰霜,冻结周围敌人",
|
||
baseDamage: 40,
|
||
freezeDuration: 2.0,
|
||
maxLevel: 5,
|
||
upgradeEffect: "范围+20%,冻结时间+0.5秒"
|
||
}
|
||
],
|
||
|
||
// 被动技能
|
||
passiveSkills: [
|
||
{
|
||
id: "attackSpeed",
|
||
name: "攻速提升",
|
||
description: "攻击速度提升",
|
||
effect: "攻击速度+10%",
|
||
maxLevel: 5,
|
||
upgradeEffect: "攻速+5%"
|
||
},
|
||
{
|
||
id: "moveSpeed",
|
||
name: "移速提升",
|
||
description: "移动速度提升",
|
||
effect: "移动速度+10%",
|
||
maxLevel: 5,
|
||
upgradeEffect: "移速+5%"
|
||
},
|
||
{
|
||
id: "critChance",
|
||
name: "暴击率",
|
||
description: "暴击率提升",
|
||
effect: "暴击率+5%",
|
||
maxLevel: 5,
|
||
upgradeEffect: "暴击率+3%"
|
||
}
|
||
],
|
||
|
||
// 选择逻辑
|
||
selectionLogic: {
|
||
// 已有技能优先升级
|
||
prioritizeExisting: true,
|
||
|
||
// 随机新技能
|
||
randomNewSkill: true,
|
||
|
||
// 避免重复
|
||
avoidDuplicate: true,
|
||
|
||
// 权重系统
|
||
weights: {
|
||
existingSkill: 0.4, // 40%概率已有技能
|
||
newActiveSkill: 0.3, // 30%概率新主动技能
|
||
newPassiveSkill: 0.3 // 30%概率新被动技能
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.3 天赋系统
|
||
```typescript
|
||
// 天赋池设计
|
||
TalentPool {
|
||
// 攻击类天赋
|
||
attackTalents: [
|
||
{
|
||
id: "comboMaster",
|
||
name: "连击大师",
|
||
description: "连续击杀3个敌人后,下一次攻击必定暴击",
|
||
trigger: "连续击杀3个",
|
||
effect: "下一次攻击必定暴击",
|
||
cooldown: 10
|
||
},
|
||
{
|
||
id: "execute",
|
||
name: "处决",
|
||
description: "对血量低于20%的敌人造成双倍伤害",
|
||
condition: "目标血量<20%",
|
||
effect: "伤害x2"
|
||
}
|
||
],
|
||
|
||
// 防御类天赋
|
||
defenseTalents: [
|
||
{
|
||
id: "shieldOnHit",
|
||
name: "受击护盾",
|
||
description: "受到伤害时获得相当于伤害值50%的护盾",
|
||
trigger: "受到伤害",
|
||
effect: "获得伤害值50%的护盾",
|
||
cooldown: 5
|
||
},
|
||
{
|
||
id: "dodgeRecovery",
|
||
name: "闪避回复",
|
||
description: "闪避成功后回复5%生命值",
|
||
trigger: "闪避成功",
|
||
effect: "回复5%生命值"
|
||
}
|
||
],
|
||
|
||
// 特殊类天赋
|
||
specialTalents: [
|
||
{
|
||
id: "goldMagnet",
|
||
name: "金币磁铁",
|
||
description: "金币掉落范围增加100%",
|
||
effect: "金币拾取范围x2"
|
||
},
|
||
{
|
||
id: "expBoost",
|
||
name: "经验加成",
|
||
description: "经验获取增加20%",
|
||
effect: "经验获取+20%"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.4 升级选择界面
|
||
```typescript
|
||
// 升级选择UI设计
|
||
LevelUpUI {
|
||
// 暂停游戏
|
||
pauseGame: true,
|
||
|
||
// 显示三个选项
|
||
optionCount: 3,
|
||
|
||
// 选项展示
|
||
optionDisplay: {
|
||
icon: "技能图标",
|
||
name: "技能名称",
|
||
description: "技能描述",
|
||
currentLevel: "当前等级",
|
||
maxLevel: "最大等级",
|
||
upgradeEffect: "升级效果"
|
||
},
|
||
|
||
// 选择逻辑
|
||
selection: {
|
||
type: "三选一",
|
||
canSkip: false, // 必须选择一个
|
||
timeLimit: 0 // 无时间限制
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 四、局外英雄解锁系统
|
||
|
||
### 4.1 英雄设计
|
||
```typescript
|
||
// 英雄池
|
||
HeroPool {
|
||
// 初始英雄
|
||
initialHero: {
|
||
id: "warrior",
|
||
name: "战士",
|
||
description: "近战英雄,高血量,高防御",
|
||
baseStats: {
|
||
hp: 200,
|
||
attack: 30,
|
||
defense: 20,
|
||
speed: 100
|
||
},
|
||
startingSkills: ["slash", "shield"],
|
||
unlock: "默认解锁"
|
||
},
|
||
|
||
// 可解锁英雄
|
||
unlockableHeroes: [
|
||
{
|
||
id: "mage",
|
||
name: "法师",
|
||
description: "远程英雄,高攻击,低防御",
|
||
baseStats: {
|
||
hp: 120,
|
||
attack: 50,
|
||
defense: 10,
|
||
speed: 100
|
||
},
|
||
startingSkills: ["fireball", "frostNova"],
|
||
unlock: {
|
||
cost: 1000,
|
||
currency: "金币"
|
||
}
|
||
},
|
||
{
|
||
id: "archer",
|
||
name: "弓箭手",
|
||
description: "远程英雄,高攻速,高暴击",
|
||
baseStats: {
|
||
hp: 150,
|
||
attack: 35,
|
||
defense: 15,
|
||
speed: 120
|
||
},
|
||
startingSkills: ["arrowRain", "criticalShot"],
|
||
unlock: {
|
||
cost: 2000,
|
||
currency: "金币"
|
||
}
|
||
},
|
||
{
|
||
id: "paladin",
|
||
name: "圣骑士",
|
||
description: "平衡型英雄,有治疗能力",
|
||
baseStats: {
|
||
hp: 180,
|
||
attack: 25,
|
||
defense: 18,
|
||
speed: 90
|
||
},
|
||
startingSkills: ["holyLight", "divineShield"],
|
||
unlock: {
|
||
cost: 3000,
|
||
currency: "金币"
|
||
}
|
||
},
|
||
{
|
||
id: "necromancer",
|
||
name: "死灵法师",
|
||
description: "召唤型英雄,召唤亡灵协助战斗",
|
||
baseStats: {
|
||
hp: 130,
|
||
attack: 40,
|
||
defense: 12,
|
||
speed: 100
|
||
},
|
||
startingSkills: ["summonSkeleton", "lifeDrain"],
|
||
unlock: {
|
||
cost: 5000,
|
||
currency: "金币"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 4.2 英雄解锁界面
|
||
```typescript
|
||
// 英雄选择界面
|
||
HeroSelectionUI {
|
||
// 显示所有英雄
|
||
displayAllHeroes: true,
|
||
|
||
// 英雄状态
|
||
heroStatus: {
|
||
unlocked: "已解锁,可选择",
|
||
locked: "未解锁,显示解锁条件",
|
||
selected: "当前选择"
|
||
},
|
||
|
||
// 英雄信息展示
|
||
heroInfo: {
|
||
portrait: "英雄头像",
|
||
name: "英雄名称",
|
||
description: "英雄描述",
|
||
baseStats: "基础属性",
|
||
startingSkills: "初始技能",
|
||
unlockCondition: "解锁条件"
|
||
},
|
||
|
||
// 解锁方式
|
||
unlockMethods: [
|
||
{
|
||
type: "金币解锁",
|
||
currency: "局内获得金币",
|
||
persistent: true
|
||
},
|
||
{
|
||
type: "成就解锁",
|
||
condition: "达成特定成就",
|
||
persistent: true
|
||
},
|
||
{
|
||
type: "广告解锁",
|
||
type: "观看激励视频",
|
||
persistent: false // 临时解锁
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 4.3 货币系统
|
||
```typescript
|
||
// 货币系统
|
||
CurrencySystem {
|
||
// 局内货币(每局重置)
|
||
sessionCurrency: {
|
||
gold: {
|
||
name: "金币",
|
||
source: "击杀怪物、完成波次",
|
||
usage: "局内刷新技能、购买临时增益、金币复活",
|
||
reset: "每局重置"
|
||
}
|
||
},
|
||
|
||
// 局外货币(永久保留)
|
||
persistentCurrency: {
|
||
gems: {
|
||
name: "宝石",
|
||
source: "IAA广告、成就奖励",
|
||
usage: "解锁特殊英雄、购买外观",
|
||
reset: "永久保留"
|
||
}
|
||
},
|
||
|
||
// 货币获取
|
||
currencyGain: {
|
||
// 金币获取
|
||
gold: {
|
||
normalMonster: 10,
|
||
eliteMonster: 50,
|
||
bossMonster: 200,
|
||
waveComplete: 100
|
||
},
|
||
|
||
// 宝石获取
|
||
gems: {
|
||
adReward: 10,
|
||
achievement: 50,
|
||
dailyLogin: 20
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.4 局内金币消费场景(借鉴吸血鬼幸存者)
|
||
|
||
#### 场景1:刷新三选一技能
|
||
```typescript
|
||
// 刷新技能系统
|
||
RefreshSkillSystem {
|
||
baseCost: 50, // 基础刷新成本
|
||
freeRefresh: 3, // 每次升级免费刷新3次
|
||
costGrowth: 1.2, // 每次刷新成本×1.2
|
||
maxCost: 200, // 最大成本上限
|
||
refundRatio: 0.2, // 刷新返还20%金币
|
||
|
||
// 刷新逻辑
|
||
refresh: function() {
|
||
if (this.freeRefreshCount > 0) {
|
||
this.freeRefreshCount--;
|
||
return true;
|
||
}
|
||
|
||
let cost = Math.min(this.maxCost, this.currentCost);
|
||
if (player.gold >= cost) {
|
||
player.gold -= cost;
|
||
this.currentCost = Math.floor(this.currentCost * this.costGrowth);
|
||
player.gold += Math.floor(cost * this.refundRatio);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 场景2:临时增益商店
|
||
```typescript
|
||
// 临时增益系统(借鉴吸血鬼幸存者)
|
||
BuffShopSystem {
|
||
// 出现时机
|
||
spawnTrigger: {
|
||
eliteKill: 0.3, // 击杀精英怪30%概率出现
|
||
bossKill: 1.0, // 击杀Boss必出现
|
||
timeInterval: 120 // 每2分钟随机出现一次
|
||
},
|
||
|
||
// 增益类型
|
||
buffTypes: [
|
||
{
|
||
id: "attackUp",
|
||
name: "攻击力提升",
|
||
description: "攻击力+10%",
|
||
icon: "attack_icon",
|
||
cost: 100,
|
||
duration: 30,
|
||
effect: { attack: 0.1 }
|
||
},
|
||
{
|
||
id: "speedUp",
|
||
name: "移动速度提升",
|
||
description: "移动速度+10%",
|
||
icon: "speed_icon",
|
||
cost: 100,
|
||
duration: 30,
|
||
effect: { speed: 0.1 }
|
||
},
|
||
{
|
||
id: "pickupRangeUp",
|
||
name: "拾取范围提升",
|
||
description: "金币/经验拾取范围+20%",
|
||
icon: "pickup_icon",
|
||
cost: 80,
|
||
duration: 30,
|
||
effect: { pickupRange: 0.2 }
|
||
},
|
||
{
|
||
id: "cooldownDown",
|
||
name: "冷却时间减少",
|
||
description: "技能冷却时间-10%",
|
||
icon: "cooldown_icon",
|
||
cost: 120,
|
||
duration: 30,
|
||
effect: { cooldown: -0.1 }
|
||
},
|
||
{
|
||
id: "shield",
|
||
name: "护盾",
|
||
description: "获得可抵挡3次伤害的护盾",
|
||
icon: "shield_icon",
|
||
cost: 150,
|
||
duration: 0,
|
||
effect: { shield: 3 }
|
||
},
|
||
{
|
||
id: "expBoost",
|
||
name: "经验加成",
|
||
description: "经验获取+50%",
|
||
icon: "exp_icon",
|
||
cost: 150,
|
||
duration: 30,
|
||
effect: { exp: 0.5 }
|
||
},
|
||
{
|
||
id: "goldBoost",
|
||
name: "金币加成",
|
||
description: "金币获取+50%",
|
||
icon: "gold_icon",
|
||
cost: 150,
|
||
duration: 30,
|
||
effect: { gold: 0.5 }
|
||
},
|
||
{
|
||
id: "critBoost",
|
||
name: "暴击率提升",
|
||
description: "暴击率+15%",
|
||
icon: "crit_icon",
|
||
cost: 120,
|
||
duration: 30,
|
||
effect: { critChance: 0.15 }
|
||
}
|
||
],
|
||
|
||
// 商店显示逻辑
|
||
shopDisplay: {
|
||
buffCount: 3, // 每次显示3个增益
|
||
refreshCost: 50, // 刷新商店金币
|
||
canSkip: true, // 可以跳过购买
|
||
pauseGame: true // 打开商店时暂停游戏
|
||
},
|
||
|
||
// 购买逻辑
|
||
purchase: function(buffId) {
|
||
let buff = this.buffTypes.find(b => b.id === buffId);
|
||
if (player.gold >= buff.cost) {
|
||
player.gold -= buff.cost;
|
||
applyBuff(buff);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 场景3:金币复活
|
||
```typescript
|
||
// 复活系统
|
||
ReviveSystem {
|
||
// 复活方式
|
||
reviveMethods: [
|
||
{
|
||
type: "广告复活",
|
||
cost: 0,
|
||
maxCount: 3, // 最多3次广告复活
|
||
effect: "恢复50%血量,清除周围怪物"
|
||
},
|
||
{
|
||
type: "金币复活",
|
||
cost: 500, // 金币复活成本
|
||
maxCount: 999, // 无限次
|
||
effect: "恢复满血,清除周围怪物,获得10秒无敌"
|
||
}
|
||
],
|
||
|
||
// 复活界面
|
||
reviveUI: {
|
||
showCountdown: true, // 显示倒计时
|
||
countdownTime: 10, // 10秒倒计时
|
||
showReviveOptions: true, // 显示复活选项
|
||
canWatchAd: true, // 可以观看广告
|
||
canUseGold: true // 可以使用金币
|
||
},
|
||
|
||
// 复活逻辑
|
||
revive: function(method) {
|
||
if (method === "ad") {
|
||
if (this.adReviveCount >= 3) {
|
||
return false;
|
||
}
|
||
showAd();
|
||
this.adReviveCount++;
|
||
player.hp = player.maxHp * 0.5;
|
||
clearMonstersAround();
|
||
return true;
|
||
}
|
||
|
||
if (method === "gold") {
|
||
if (player.gold < 500) {
|
||
return false;
|
||
}
|
||
player.gold -= 500;
|
||
player.hp = player.maxHp;
|
||
clearMonstersAround();
|
||
applyInvincible(10);
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.5 金币价值设计
|
||
|
||
#### 金币获取与消费平衡
|
||
```typescript
|
||
// 金币经济平衡
|
||
GoldEconomyBalance {
|
||
// 预期金币获取(每局)
|
||
expectedGoldGain: {
|
||
normalKill: 10 * 100, // 100只普通怪 = 1000金币
|
||
eliteKill: 50 * 20, // 20只精英怪 = 1000金币
|
||
bossKill: 200 * 5, // 5只Boss = 1000金币
|
||
waveComplete: 100 * 10, // 10波完成 = 1000金币
|
||
total: 4000 // 总计4000金币
|
||
},
|
||
|
||
// 预期金币消费(每局)
|
||
expectedGoldSpend: {
|
||
refreshSkill: 50 * 10, // 刷新10次技能 = 500金币
|
||
buyBuff: 100 * 5, // 购买5次增益 = 500金币
|
||
revive: 500 * 1, // 复活1次 = 500金币
|
||
total: 1500 // 总计1500金币
|
||
},
|
||
|
||
// 金币剩余率
|
||
goldRemainingRatio: 0.625, // 剩余62.5%金币
|
||
|
||
// 设计目标
|
||
designGoals: {
|
||
ensureAffordable: true, // 确保玩家买得起
|
||
encourageSaving: true, // 鼓励存钱
|
||
createChoice: true, // 创造选择困境
|
||
avoidInflation: true // 避免通胀
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 金币消费优先级设计
|
||
```typescript
|
||
// 消费优先级
|
||
GoldSpendingPriority {
|
||
// 高优先级(必须消费)
|
||
highPriority: [
|
||
{
|
||
type: "刷新技能",
|
||
reason: "直接影响战斗力",
|
||
urgency: "高",
|
||
playerBehavior: "优先消费"
|
||
},
|
||
{
|
||
type: "购买关键增益",
|
||
reason: "关键时刻救命",
|
||
urgency: "极高",
|
||
playerBehavior: "毫不犹豫"
|
||
}
|
||
],
|
||
|
||
// 中优先级(策略消费)
|
||
mediumPriority: [
|
||
{
|
||
type: "购买一般增益",
|
||
reason: "提升效率",
|
||
urgency: "中",
|
||
playerBehavior: "权衡利弊"
|
||
},
|
||
{
|
||
type: "金币复活",
|
||
reason: "延长游戏时间",
|
||
urgency: "中高",
|
||
playerBehavior: "关键时刻使用"
|
||
}
|
||
],
|
||
|
||
// 低优先级(可选消费)
|
||
lowPriority: [
|
||
{
|
||
type: "刷新商店",
|
||
reason: "寻找更好增益",
|
||
urgency: "低",
|
||
playerBehavior: "金币充足时考虑"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 五、心流模式设计
|
||
|
||
### 5.1 挑战与技能平衡
|
||
**核心公式**:
|
||
```
|
||
心流区 = 玩家当前能力 ± 10-20%
|
||
|
||
低于90%:无聊区(怪物太弱,玩家失去兴趣)
|
||
高于120%:焦虑区(怪物太强,玩家产生挫败感)
|
||
```
|
||
|
||
**动态调整机制**:
|
||
```typescript
|
||
// 怪物强度动态调整
|
||
function adjustMonsterDifficulty(playerPower, currentWave) {
|
||
let baseDifficulty = getBaseDifficulty(currentWave);
|
||
let playerPerformance = getPlayerPerformance();
|
||
|
||
if (playerPerformance > 0.8) {
|
||
return baseDifficulty * 1.15;
|
||
} else if (playerPerformance < 0.4) {
|
||
return baseDifficulty * 0.85;
|
||
}
|
||
return baseDifficulty;
|
||
}
|
||
```
|
||
|
||
### 5.2 心流触发点
|
||
**关键设计**:
|
||
|
||
| 时间点 | 设计内容 | 目的 |
|
||
|--------|----------|------|
|
||
| **开局30秒** | 简单怪物,快速击杀 | 建立信心,进入心流 |
|
||
| **首次升级** | 三选一技能选择 | 成长感,策略选择 |
|
||
| **2分钟** | 首次精英怪 | 提升挑战,保持专注 |
|
||
| **5分钟** | Boss战 | 高潮体验,成就感 |
|
||
| **每次升级** | 新技能/天赋选择 | 能力提升,匹配挑战 |
|
||
| **濒死状态** | 最后一击反杀 | 刺激体验,增强记忆 |
|
||
|
||
### 5.3 心流维持机制
|
||
**核心策略**:
|
||
1. **渐进式难度**:怪物强度缓慢上升,避免突然难度激增
|
||
2. **节奏控制**:战斗-升级-战斗的循环,保持新鲜感
|
||
3. **随机惊喜**:稀有怪物、掉落惊喜,打破单调感
|
||
4. **即时反馈**:伤害数字、击杀特效、升级动画
|
||
|
||
---
|
||
|
||
## 六、怪物刷新机制设计
|
||
|
||
### 6.1 基础刷新模式
|
||
|
||
#### 模式A:波次刷新(推荐)
|
||
```typescript
|
||
// 波次结构
|
||
Wave {
|
||
waveId: number,
|
||
monsterCount: number,
|
||
spawnInterval: number,
|
||
monsterTypes: [
|
||
{ type: "普通", ratio: 0.6 },
|
||
{ type: "精英", ratio: 0.3 },
|
||
{ type: "稀有", ratio: 0.1 }
|
||
],
|
||
difficulty: number,
|
||
rewards: Reward
|
||
}
|
||
|
||
// 刷新逻辑
|
||
function spawnWave(waveConfig) {
|
||
let spawnedCount = 0;
|
||
let timer = setInterval(() => {
|
||
let monsterType = randomSelect(waveConfig.monsterTypes);
|
||
spawnMonster(monsterType, waveConfig.difficulty);
|
||
spawnedCount++;
|
||
|
||
if (spawnedCount >= waveConfig.monsterCount) {
|
||
clearInterval(timer);
|
||
startNextWave();
|
||
}
|
||
}, waveConfig.spawnInterval * 1000);
|
||
}
|
||
```
|
||
|
||
#### 模式B:持续刷新
|
||
```typescript
|
||
// 持续刷新配置
|
||
ContinuousSpawn {
|
||
baseInterval: 2.0,
|
||
minInterval: 0.5,
|
||
difficultyGrowth: 0.05,
|
||
maxMonsters: 10,
|
||
}
|
||
|
||
// 刷新逻辑
|
||
function continuousSpawn(config) {
|
||
let currentInterval = config.baseInterval;
|
||
let gameTime = 0;
|
||
|
||
setInterval(() => {
|
||
gameTime += 0.1;
|
||
|
||
currentInterval = Math.max(
|
||
config.minInterval,
|
||
config.baseInterval * (1 - config.difficultyGrowth * gameTime / 60)
|
||
);
|
||
|
||
if (getMonsterCount() < config.maxMonsters) {
|
||
spawnMonster(calculateDifficulty(gameTime));
|
||
}
|
||
}, 100);
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6.2 怪物类型设计
|
||
|
||
#### 基础怪物类型
|
||
| 类型 | 特点 | 出现时机 | 玩家策略 |
|
||
|------|------|----------|----------|
|
||
| **普通怪** | 血量低,攻击低 | 全程 | 快速击杀,积累经验 |
|
||
| **精英怪** | 血量中等,有特殊技能 | 第3波起 | 优先击杀或风筝 |
|
||
| **稀有怪** | 掉落稀有奖励 | 随机 | 必击杀,高价值目标 |
|
||
| **Boss怪** | 高血量,多技能 | 每5波 | 爆发输出,合理走位 |
|
||
| **精英Boss** | 超高难度 | 每10波 | 需要完美操作 |
|
||
|
||
#### 特殊怪物类型
|
||
```typescript
|
||
// 随机事件怪物
|
||
RandomEvent {
|
||
type: "特殊怪物",
|
||
variants: [
|
||
{
|
||
name: "暴走怪物",
|
||
effect: "攻击力+100%,移动速度+50%,但防御-50%",
|
||
reward: "3倍经验"
|
||
},
|
||
{
|
||
name: "群体怪物",
|
||
effect: "一次刷新5只,但每只血量-80%",
|
||
reward: "大量金币"
|
||
},
|
||
{
|
||
name: "护盾怪物",
|
||
effect: "开局带50%血量护盾,击破后秒杀",
|
||
reward: "随机技能碎片"
|
||
},
|
||
{
|
||
name: "自爆怪物",
|
||
effect: "死亡时造成大范围伤害",
|
||
reward: "高风险高回报"
|
||
}
|
||
],
|
||
triggerChance: 0.1
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6.3 刷新位置设计
|
||
|
||
#### 基础位置策略
|
||
```typescript
|
||
// 怪物刷新位置配置
|
||
SpawnPosition {
|
||
xRange: [200, 400],
|
||
yRange: [-150, 150],
|
||
|
||
patterns: [
|
||
"单点刷新",
|
||
"随机刷新",
|
||
"扇形刷新",
|
||
"冲锋刷新"
|
||
]
|
||
}
|
||
|
||
// 具体实现
|
||
function getSpawnPosition(pattern) {
|
||
switch(pattern) {
|
||
case "单点刷新":
|
||
return { x: 350, y: 0 };
|
||
|
||
case "随机刷新":
|
||
return {
|
||
x: random(200, 400),
|
||
y: random(-150, 150)
|
||
};
|
||
|
||
case "扇形刷新":
|
||
let angle = random(-30, 30);
|
||
let distance = random(250, 400);
|
||
return {
|
||
x: distance * cos(angle),
|
||
y: distance * sin(angle)
|
||
};
|
||
|
||
case "冲锋刷新":
|
||
return { x: 500, y: random(-150, 150) };
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6.4 刷新节奏设计
|
||
|
||
#### 节奏曲线
|
||
```typescript
|
||
// 游戏节奏曲线
|
||
RhythmCurve {
|
||
phases: [
|
||
{
|
||
time: "0-2分钟",
|
||
name: "热身期",
|
||
spawnRate: "慢",
|
||
monsterStrength: "弱",
|
||
purpose: "让玩家熟悉操作,建立信心"
|
||
},
|
||
{
|
||
time: "2-5分钟",
|
||
name: "成长期",
|
||
spawnRate: "中",
|
||
monsterStrength: "中",
|
||
purpose: "玩家获得新能力,匹配挑战"
|
||
},
|
||
{
|
||
time: "5-8分钟",
|
||
name: "高潮期",
|
||
spawnRate: "快",
|
||
monsterStrength: "强",
|
||
purpose: "高强度战斗,考验玩家操作"
|
||
},
|
||
{
|
||
time: "8-10分钟",
|
||
name: "极限期",
|
||
spawnRate: "极快",
|
||
monsterStrength: "极强",
|
||
purpose: "挑战极限,追求最高记录"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 七、让玩家"再来一局"的核心机制
|
||
|
||
### 7.1 即时满足机制
|
||
|
||
#### 机制1:随机惊喜
|
||
```typescript
|
||
// 随机惊喜系统
|
||
RandomSurprise {
|
||
types: [
|
||
{
|
||
name: "稀有掉落",
|
||
trigger: "击杀任意怪物有1%概率",
|
||
effect: "直接获得稀有技能/天赋",
|
||
psychology: "赌徒心理,期待下一次"
|
||
},
|
||
{
|
||
name: "暴击连击",
|
||
trigger: "连续暴击3次",
|
||
effect: "获得10秒双倍伤害",
|
||
psychology: "爽快感,刺激继续"
|
||
},
|
||
{
|
||
name: "幸运时刻",
|
||
trigger: "每局随机触发一次",
|
||
effect: "接下来30秒经验+50%",
|
||
psychology: "稀缺性,珍惜机会"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 机制2:连续击杀奖励
|
||
```typescript
|
||
// 连击系统
|
||
ComboSystem {
|
||
comboLevels: [
|
||
{ count: 5, reward: "金币+10%", effect: "连击特效" },
|
||
{ count: 10, reward: "金币+25%", effect: "连击音效升级" },
|
||
{ count: 20, reward: "金币+50%", effect: "屏幕震动" },
|
||
{ count: 50, reward: "稀有掉落+1", effect: "全屏特效" }
|
||
],
|
||
|
||
penalty: {
|
||
message: "连击中断!",
|
||
motivation: "下次要更小心,争取更高连击"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.2 成长可见机制
|
||
|
||
#### 机制1:局内成长曲线
|
||
```typescript
|
||
// 局内成长可视化
|
||
GrowthVisualization {
|
||
milestones: [
|
||
{
|
||
level: 1,
|
||
unlock: "基础技能",
|
||
visual: "技能图标点亮"
|
||
},
|
||
{
|
||
level: 5,
|
||
unlock: "第一个天赋",
|
||
visual: "天赋槽位开启"
|
||
},
|
||
{
|
||
level: 10,
|
||
unlock: "终极技能",
|
||
visual: "大招图标闪烁"
|
||
}
|
||
],
|
||
|
||
feedback: {
|
||
type: "进度条+数字",
|
||
position: "屏幕上方",
|
||
effect: "升级时播放特效"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 机制2:英雄多样性
|
||
```typescript
|
||
// 英雄多样性设计
|
||
HeroVariety {
|
||
// 不同英雄,不同玩法
|
||
playstyles: [
|
||
{
|
||
hero: "战士",
|
||
style: "近战肉盾",
|
||
appeal: "喜欢正面硬刚的玩家"
|
||
},
|
||
{
|
||
hero: "法师",
|
||
style: "远程输出",
|
||
appeal: "喜欢风筝输出的玩家"
|
||
},
|
||
{
|
||
hero: "弓箭手",
|
||
style: "高攻速暴击",
|
||
appeal: "喜欢快速击杀的玩家"
|
||
},
|
||
{
|
||
hero: "圣骑士",
|
||
style: "平衡治疗",
|
||
appeal: "喜欢稳健发育的玩家"
|
||
},
|
||
{
|
||
hero: "死灵法师",
|
||
style: "召唤流",
|
||
appeal: "喜欢策略布局的玩家"
|
||
}
|
||
],
|
||
|
||
// 激励解锁
|
||
unlockMotivation: {
|
||
message: "解锁新英雄,体验全新玩法!",
|
||
preview: "英雄预览视频",
|
||
demo: "英雄试玩模式"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.3 挫败缓解机制
|
||
|
||
#### 机制1:死亡无惩罚
|
||
```typescript
|
||
// 死亡机制
|
||
DeathMechanism {
|
||
// 死亡即结束
|
||
immediateEnd: true,
|
||
|
||
// 保留货币
|
||
keepCurrency: {
|
||
gold: 0, // 金币不保留(每局独立)
|
||
gems: "全部" // 宝石保留(局外货币)
|
||
},
|
||
|
||
// 复活机制
|
||
revive: {
|
||
adRevive: 3, // 3次广告复活
|
||
costRevive: "100宝石" // 宝石复活
|
||
},
|
||
|
||
// 死亡奖励
|
||
deathReward: {
|
||
base: "局内金币*0.5", // 50%金币
|
||
bonus: "根据波次加成" // 波次越高,加成越多
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 机制2:渐进式解锁
|
||
```typescript
|
||
// 内容渐进式解锁
|
||
ProgressiveUnlock {
|
||
// 新手引导
|
||
tutorial: {
|
||
waves: [1, 2, 3],
|
||
purpose: "教会基本操作",
|
||
reward: "新手礼包"
|
||
},
|
||
|
||
// 难度解锁
|
||
difficulties: [
|
||
{ name: "简单", unlock: "默认" },
|
||
{ name: "普通", unlock: "通关简单模式" },
|
||
{ name: "困难", unlock: "通关普通模式" },
|
||
{ name: "地狱", unlock: "通关困难模式" }
|
||
],
|
||
|
||
// 内容解锁
|
||
content: [
|
||
{ type: "怪物", unlock: "达到指定波次" },
|
||
{ type: "技能", unlock: "达到指定等级" },
|
||
{ type: "天赋", unlock: "达到指定击杀数" }
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.4 社交竞争机制
|
||
|
||
#### 机制1:排行榜
|
||
```typescript
|
||
// 排行榜系统
|
||
Leaderboard {
|
||
types: [
|
||
{
|
||
name: "最高波次",
|
||
reset: "每周",
|
||
reward: "稀有称号+大量宝石"
|
||
},
|
||
{
|
||
name: "最快通关",
|
||
reset: "每日",
|
||
reward: "特殊头像框"
|
||
},
|
||
{
|
||
name: "累计击杀",
|
||
reset: "永久",
|
||
reward: "永久属性加成(局内)"
|
||
}
|
||
],
|
||
|
||
display: {
|
||
top10: "全服前10",
|
||
friends: "好友排行",
|
||
self: "自己的排名"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 机制2:挑战分享
|
||
```typescript
|
||
// 分享系统
|
||
ShareSystem {
|
||
triggers: [
|
||
{
|
||
event: "达到新纪录",
|
||
content: "我用[英雄名]达到了XX波,快来挑战我!",
|
||
reward: "分享奖励:50宝石"
|
||
},
|
||
{
|
||
event: "获得稀有技能",
|
||
content: "我获得了[技能名],运气爆棚!",
|
||
reward: "分享奖励:1次抽奖机会"
|
||
},
|
||
{
|
||
event: "解锁新英雄",
|
||
content: "我解锁了[英雄名],全新玩法!",
|
||
reward: "分享奖励:稀有称号"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 八、IAA广告植入点
|
||
|
||
### 8.1 自然广告点
|
||
```typescript
|
||
// 广告植入时机
|
||
AdPlacement {
|
||
// 波次间休息
|
||
waveRest: {
|
||
timing: "每5波结束后",
|
||
type: "激励视频",
|
||
reward: "下一波怪物伤害-20%",
|
||
acceptance: "高(玩家需要休息)"
|
||
},
|
||
|
||
// 复活
|
||
revive: {
|
||
timing: "死亡后",
|
||
type: "激励视频",
|
||
reward: "免费复活一次",
|
||
acceptance: "极高(不想放弃)"
|
||
},
|
||
|
||
// 双倍奖励
|
||
doubleReward: {
|
||
timing: "波次结算",
|
||
type: "激励视频",
|
||
reward: "金币/经验双倍",
|
||
acceptance: "高(贪心心理)"
|
||
},
|
||
|
||
// 宝箱开启
|
||
chest: {
|
||
timing: "获得宝箱",
|
||
type: "激励视频",
|
||
reward: "直接开启(否则需等待)",
|
||
acceptance: "中(即时满足)"
|
||
},
|
||
|
||
// 英雄解锁
|
||
heroUnlock: {
|
||
timing: "英雄解锁界面",
|
||
type: "激励视频",
|
||
reward: "临时解锁英雄1局",
|
||
acceptance: "高(体验新英雄)"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 8.2 广告频率控制
|
||
```typescript
|
||
// 广告频率策略
|
||
AdFrequency {
|
||
// 最小间隔
|
||
minInterval: 60,
|
||
|
||
// 每日上限
|
||
dailyLimit: 20,
|
||
|
||
// 强制广告
|
||
forced: {
|
||
interval: 300,
|
||
skip: "可跳过"
|
||
},
|
||
|
||
// 用户体验保护
|
||
protection: {
|
||
consecutiveAds: 2,
|
||
cooldownAfterSkip: 30
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 九、数据监控与优化
|
||
|
||
### 9.1 关键指标
|
||
```typescript
|
||
// 核心数据指标
|
||
KeyMetrics {
|
||
// 留存指标
|
||
retention: {
|
||
day1: ">40%",
|
||
day7: ">15%",
|
||
day30: ">5%"
|
||
},
|
||
|
||
// 参与度指标
|
||
engagement: {
|
||
avgSessionTime: ">10分钟",
|
||
avgWavesPerSession: ">20波",
|
||
replayRate: ">60%"
|
||
},
|
||
|
||
// 变现指标
|
||
monetization: {
|
||
adWatchRate: ">50%",
|
||
adWatchPerSession: ">3次",
|
||
heroUnlockRate: ">30%"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.2 A/B测试方案
|
||
```typescript
|
||
// A/B测试维度
|
||
ABTest {
|
||
// 难度曲线
|
||
difficulty: {
|
||
A: "线性增长",
|
||
B: "指数增长",
|
||
C: "阶梯式增长"
|
||
},
|
||
|
||
// 刷新模式
|
||
spawnMode: {
|
||
A: "波次刷新",
|
||
B: "持续刷新",
|
||
C: "混合模式"
|
||
},
|
||
|
||
// 升级速度
|
||
levelUpSpeed: {
|
||
A: "快速升级(每30秒)",
|
||
B: "中速升级(每1分钟)",
|
||
C: "慢速升级(每2分钟)"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 十、总结与建议
|
||
|
||
### 10.1 核心设计原则
|
||
1. **心流优先**:始终保持玩家在挑战与技能的平衡点
|
||
2. **即时反馈**:每个操作都有明确的视觉/数值反馈
|
||
3. **局内成长**:通过升级选择技能/天赋,每局都有新鲜感
|
||
4. **英雄多样**:不同英雄不同玩法,增加重玩性
|
||
5. **挫败缓解**:死亡无惩罚,鼓励重试
|
||
|
||
### 10.2 实施优先级
|
||
**第一阶段(核心玩法)**:
|
||
- ✅ 基础波次刷新机制
|
||
- ✅ 怪物类型设计
|
||
- ✅ 基础难度曲线
|
||
- ✅ 局内升级系统
|
||
|
||
**第二阶段(优化体验)**:
|
||
- ✅ 心流调整机制
|
||
- ✅ 随机惊喜系统
|
||
- ✅ 连击奖励系统
|
||
- ✅ 技能/天赋池设计
|
||
|
||
**第三阶段(长期留存)**:
|
||
- ✅ 英雄解锁系统
|
||
- ✅ 排行榜系统
|
||
- ✅ 成就系统
|
||
- ✅ 英雄多样性设计
|
||
|
||
**第四阶段(商业化)**:
|
||
- ✅ IAA广告植入
|
||
- ✅ 复活机制
|
||
- ✅ 双倍奖励
|
||
- ✅ 英雄解锁广告
|
||
|
||
### 10.3 持续优化方向
|
||
1. **数据驱动**:根据玩家行为数据持续调整难度
|
||
2. **内容更新**:定期添加新英雄、新技能、新天赋
|
||
3. **活动运营**:限时活动、特殊挑战、节日活动
|
||
4. **社区建设**:玩家攻略、英雄搭配、竞技比赛
|
||
|
||
---
|
||
|
||
通过以上设计,可以建立一个既有挑战性又有成长性的肉鸽怪物刷新机制,完全符合吸血鬼幸存者模式的核心玩法,让玩家在每局独立的体验中不断追求更高的记录,产生强烈的"再来一局"冲动。
|