关卡配置系统说明文档
概述
本文档详细说明了塔防游戏关卡配置系统的数据结构和字段含义,帮助策划人员正确配置关卡数据。
文件结构
关卡配置文件采用JSON格式,位于 assets/resources/data/levels/ 目录下,命名规则为 Level{N}.json。
数据结构说明
1. 关卡基本信息
name (string)
- 含义: 关卡显示名称
- 示例: "新手引导(草地平原)"
- 注意: 支持中文,建议包含场景信息
scene (string)
- 含义: 关卡场景标识符
- 可选值:
grassland - 草地平原
forest - 森林场景
magic_ruins - 魔法废墟
industrial - 工业场景
cyberpunk - 赛博都市
- 用途: 用于加载对应的场景资源
description (string)
- 含义: 关卡描述文本
- 示例: "新手引导关卡,学习基础塔防玩法"
- 用途: 在关卡选择界面显示
weapons (array)
- 含义: 关卡可用武器列表
- 示例: ["毛豆射手", "尖胡萝卜"]
- 注意: 武器名称需与武器配置表对应
2. 波次配置 (waves)
waveId (number)
- 含义: 波次编号
- 规则: 从1开始递增
- 用途: 标识波次顺序
enemies (array
- 含义: 该波次的敌人配置列表
- 结构: 每个敌人对象包含以下字段
enemyType (string)
- 含义: 敌人类型标识符
- 可选值:
普通僵尸 - 基础敌人
路障僵尸 - 高血量敌人
漫步僵尸 - 摇摆移动敌人
铁桶僵尸 - 超高防御敌人
火药桶僵尸 - 爆炸敌人
弓箭僵尸 - 远程攻击敌人
法师僵尸 - 魔法攻击敌人
隐身僵尸 - 隐身能力敌人
BOSS1/2/3 - BOSS级敌人
count (number)
- 含义: 该类型敌人的数量
- 范围: 正整数
- 注意: BOSS通常设置为1
spawnInterval (number)
- 含义: 敌人生成间隔(秒)
- 范围: 正数,支持小数
- 注意: BOSS通常设置为0(立即生成)
characteristics (array)
- 含义: 敌人特性描述
- 示例: ["中速移动", "无技能"]
- 用途: 用于UI显示和AI行为参考
3. 关卡设置 (levelSettings)
initialHealth (number)
- 含义: 玩家初始生命值
- 默认值: 100
- 用途: 决定玩家可承受的伤害次数
timeLimit (number)
- 含义: 关卡时间限制(秒)
- 用途: 超时则关卡失败
- 注意: 设置为0表示无时间限制
difficulty (string)
- 含义: 关卡难度标识
- 可选值:
easy - 简单
normal - 普通
hard - 困难
extreme - 极限
- 用途: 影响奖励计算和AI强度
energyMax (number)
- 含义: 关卡最大能量值
- 用途: 限制玩家可同时部署的武器数量
- 示例: 3表示最多可部署3个武器
healthMultiplier (number)
- 含义: 敌人血量倍率
- 默认值: 1.0
- 用途: 控制该关卡敌人的血量倍数,实现难度递进
- 示例: 1.5表示敌人血量为原始值的1.5倍
- 建议: 随关卡递进逐步增加,如1.0 → 1.2 → 1.4 → 1.6 → 2.0
配置建议
难度递进
- 新手关卡: 敌人种类少,数量少,间隔长
- 进阶关卡: 逐步引入新敌人类型
- 高难度关卡: 多种敌人混合,高密度生成
- BOSS关卡: 单体强力敌人,考验玩家策略
平衡性考虑
- 时间限制: 根据波次数量和敌人总数合理设置
- 星级要求: 确保有一定挑战性但不过分苛刻
- 武器搭配: 提供多样化的战术选择
测试要点
- 确保所有波次能在时间限制内完成
- 验证星级要求的合理性
- 测试不同武器组合的可行性
- 检查敌人生成节奏是否合适
数据验证
必填字段检查
- 所有基本信息字段不能为空
- 至少包含一个波次
- 每个波次至少包含一个敌人
数值范围检查
- count > 0
- spawnInterval ≥ 0
- initialHealth > 0
- timeLimit ≥ 0
- energyMax > 0
引用完整性检查
- enemyType 需在敌人配置表中存在
- weapons 中的武器需在武器配置表中存在
- scene 需有对应的场景资源
使用说明
- Excel编辑: 使用上述表格结构在Excel中编辑关卡数据
- 数据导出: 编辑完成后,可以通过脚本将Excel数据转换回JSON格式
- 字段验证: 导入前请确保所有必填字段已填写,数值范围正确
- 测试验证: 导入后需要在游戏中测试关卡的平衡性和可玩性
这样的结构化配置方式可以让策划人员更方便地批量编辑关卡数据,同时保持数据的一致性和完整性。