# AIP Roguelite 游戏技术方案
本文档描述用于AIP实验验证的Roguelite游戏技术实现方案,基于Rust Bevy引擎开发。
---
## 1. 项目概述
### 1.1 目标
开发一个2D俯视像素风格Roguelite游戏,用于验证AIP(情感交互编程)系统的有效性。游戏需要:
1. 支持实时情绪数据采集(15维行为特征)
2. 支持AIP Director的交互参数动态调节
3. 支持大规模在线实验(N > 500)
4. 运行于移动端(iOS/Android)
### 1.2 技术栈
| 游戏引擎 | Bevy 0.18 | Rust原生ECS引擎 (最新稳定版) |
| 渲染 | Bevy 2D | 像素风格渲染 |
| 物理引擎 | bevy_rapier2d 0.30 | 2D碰撞检测 |
| 粒子系统 | bevy_hanabi 0.15 | 视觉反馈效果 |
| UI框架 | bevy_egui 0.32 | 调试界面、游戏UI |
| 音频 | bevy_kira_audio 0.22 | 动态音频反馈 |
| 存储 | sled 0.34 | 嵌入式数据库 |
| 网络 | reqwest 0.12 + tokio 1.0 | 异步HTTP |
### 1.3 项目结构
```
roguelite/
├── Cargo.toml
├── assets/
│ ├── sprites/
│ │ ├── player/ # 玩家精灵
│ │ ├── enemies/ # 敌人精灵
│ │ ├── items/ # 道具精灵
│ │ ├── tiles/ # 地图瓦片
│ │ └── effects/ # 特效精灵
│ ├── audio/
│ │ ├── sfx/ # 音效
│ │ └── music/ # 背景音乐
│ └── fonts/ # 字体文件
├── src/
│ ├── main.rs
│ ├── core/ # 核心系统
│ ├── player/ # 玩家系统
│ ├── world/ # 世界生成
│ ├── enemies/ # 敌人系统
│ ├── items/ # 道具系统
│ ├── ui/ # 用户界面
│ ├── aip/ # AIP集成
│ ├── audio/ # 音频系统
│ ├── effects/ # 视觉效果
│ └── utils/ # 工具函数
├── tests/
└── docs/
```
---
## 2. 游戏设计
### 2.1 核心玩法循环
```
进入地牢 → 探索房间 → 战斗/收集 → 升级/选择 → 下一层/死亡
```
**核心机制**:
- 程序化生成的地牢地图
- 实时战斗,自动锁定目标
- 收集道具和装备
- 升级技能树
- 死亡后重新开始(Roguelite核心)
### 2.2 移动端控制方案
**横屏布局**:
```
┌─────────────────────────────────────────────────────────────────────┐
│ ┌─────────┐ ┌─────────────────┐│
│ │ HP: ████│ │ Level: 1-3 ││
│ │ MP: ██ │ │ Score: 12,450 ││
│ └─────────┘ └─────────────────┘│
│ │
│ ┌─────────────────────┐ │
│ │ 游戏画面区域 │ │
│ │ (玩家 + 敌人) │ │
│ └─────────────────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────┐ ┌─────┐ │
│ │ 技能1 │ │ 技能2 │ │ 技能3 │ │道具1│ │道具2│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────┘ └─────┘ │
│ │
│ ┌───────────────┐ │
│ │ 虚拟摇杆 │ (左手控制移动) │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
```
**控制映射**:
| 移动 | 左侧虚拟摇杆 | 8方向移动 |
| 普通攻击 | 自动锁定 | 自动攻击最近敌人 |
| 技能1-3 | 右侧按钮 | 点击释放技能 |
| 道具1-2 | 右侧小按钮 | 使用消耗品 |
| 暂停 | 右上角按钮 | 打开暂停菜单 |
### 2.3 自动锁定系统
- 自动检测范围内最近敌人
- 自动瞄准和攻击
- 可切换锁定目标(点击屏幕其他区域)
---
## 3. 生成式地牢系统
### 3.1 地牢生成流程
```
1. 生成房间
├── 确定房间数量 (5-12个)
├── 随机放置房间位置
└── 确保房间不重叠
2. 连接房间
├── 使用Delaunay三角剖分
├── 生成最小生成树 (MST)
└── 添加额外通道增加循环
3. 细化走廊
├── 生成走廊瓦片
└── 添加装饰和陷阱
4. 放置内容
├── 入口/出口
├── 敌人生成点
├── 宝箱和道具
└── 秘密房间
```
### 3.2 房间类型
| 类型 | 说明 | 出现概率 |
|------|------|----------|
| Start | 起始房间 | 固定1个 |
| Normal | 普通战斗房间 | 50-60% |
| Elite | 精英怪房间 | 10-15% |
| Boss | Boss房间 | 每层1个 |
| Treasure | 宝箱房间 | 10-15% |
| Shop | 商店房间 | 5-10% |
| Secret | 秘密房间 | 5-10% |
| Rest | 休息房间 | 5-10% |
### 3.3 瓦片系统
| 瓦片类型 | 是否可行走 | 是否阻挡视线 |
|----------|-----------|-------------|
| Floor | ✓ | ✗ |
| Wall | ✗ | ✓ |
| Door | ✓ | ✗ |
| Pit | ✗ | ✓ |
| Water | ✓ (减速) | ✗ |
| Lava | ✗ (伤害) | ✗ |
| Spike | ✓ (伤害) | ✗ |
| Breakable | ✗ → ✓ | ✓ → ✗ |
### 3.4 AIP可控的地牢参数
| 参数 | 对应Director参数 | 影响范围 |
|------|-----------------|----------|
| 敌人密度 | intensity_factor | 0.3-0.8 |
| 宝箱概率 | reward_scarcity | 0.1-0.5 |
| 陷阱密度 | env_arousal | 0.05-0.2 |
| 精英房间概率 | challenge_curve | 0.1-0.3 |
---
## 4. 数据采集系统
### 4.1 行为事件类型
| 事件类型 | 数据字段 |
|----------|----------|
| Tap | position, timestamp, pressure |
| Swipe | start, end, duration_ms, velocity |
| MultiTouch | touch_count, positions |
| JoystickMove | direction, intensity |
| SkillUse | skill_id, target_position |
| ItemUse | item_id |
| Pause/Resume | timestamp |
| Death | timestamp, cause |
| LevelComplete | timestamp, time_ms |
| EnemyKill | enemy_type |
| TakeDamage | amount, source |
### 4.2 15维行为特征
| ID | 特征名 | 计算窗口 | 情绪关联 |
|----|--------|----------|----------|
| 0 | 点击频率 | 10秒 | 唤醒↑ |
| 1 | 滑动速度 | 每次滑动 | 唤醒↑ |
| 2 | 多点触控比例 | 10秒 | 唤醒↑ |
| 3 | 设备运动方差 | 10秒 | 唤醒↑ |
| 4 | 重试延迟 | 每次失败 | 效价↓ |
| 5 | 暂停时长 | 每次暂停 | 效价↓ |
| 6 | 犹豫时间 | 10秒 | 效价↓ |
| 7 | 路径效率 | 10秒 | 掌控↑ |
| 8 | 取消率 | 10秒 | 掌控↓ |
| 9 | 完成率 | 10秒 | 掌控↑ |
| 10 | 平均压力 | 10秒 | 唤醒↑ |
| 11 | 压力标准差 | 10秒 | 唤醒↑ |
| 12 | 动作精度 | 10秒 | 掌控↑ |
| 13 | 平均反应时间 | 10秒 | 效价↓ |
| 14 | 反应时间标准差 | 10秒 | 效价↓ |
### 4.3 数据采集流程
```
游戏运行中
│
├── 触控事件监听 (TouchInput System)
│
├── 游戏事件监听 (GameEvent System)
│
↓
行为记录生成 (BehaviorRecord)
│
↓
本地缓存队列 (sled数据库)
│
├──→ 实时处理 → 特征提取 → EDM推理
│
└──→ 批量上传 → 云端存储
```
### 4.4 数据存储格式
**Session数据结构**:
- session_id: 会话唯一标识
- user_id: 用户标识
- device_id: 设备标识
- start_time / end_time: 会话时间
- behavior_events: 行为事件列表
- predicted_emotions: EDM预测情绪列表
- game_stats: 游戏统计
---
## 5. AIP系统集成
### 5.1 EDM集成
**功能**:实时情绪推断
**输入**:15维行为特征(10秒窗口)
**输出**:EmotionState (valence, arousal, dominance)
**更新频率**:每10秒
### 5.2 Director集成
**功能**:生成交互参数
**输入**:
- 用户特质 (8维)
- 环境状态 (6维)
- 实时情绪 (3维)
- 情绪统计 (6维)
**输出**:InteractionParams (7维)
**更新频率**:每2秒
### 5.3 交互参数应用
| 参数 | 游戏影响 |
|------|----------|
| intensity_factor | 敌人生成速率、伤害倍率 |
| feedback_intensity | 屏幕震动、音效音量 |
| pace_speed | 游戏节奏、事件触发频率 |
| reward_scarcity | 稀有道具掉落率 |
| env_arousal | 环境特效密度、背景音乐强度 |
| rhythm_modulation | 音乐节奏、心跳音效 |
| challenge_curve | 难度曲线斜率 |
---
## 6. 视觉效果系统
### 6.1 像素风格渲染
- 4x像素放大
- 像素对齐渲染
- 调色板限制(可选)
### 6.2 动态效果
| 效果 | 触发条件 | AIP控制 |
|------|----------|---------|
| 屏幕震动 | 受伤、爆炸 | feedback_intensity |
| 粒子效果 | 攻击、技能 | env_arousal |
| 闪光效果 | 暴击、升级 | feedback_intensity |
| 屏幕色调 | 情绪状态 | Director输出 |
---
## 7. 音频系统
### 7.1 音频类型
| 类型 | 说明 | AIP控制 |
|------|------|---------|
| 背景音乐 | 循环播放 | rhythm_modulation |
| 战斗音效 | 攻击、受伤 | feedback_intensity |
| 环境音效 | 风声、水声 | env_arousal |
| UI音效 | 按钮、弹窗 | 固定音量 |
### 7.2 动态音频
- 音乐节奏随 rhythm_modulation 变化
- 音效音量随 feedback_intensity 变化
- 环境音密度随 env_arousal 变化
---
## 8. 网络与数据上传
### 8.1 数据上传策略
| 场景 | 上传时机 |
|------|----------|
| 会话结束 | 立即上传 |
| 网络不可用 | 本地缓存,恢复后上传 |
| 大数据量 | 分批上传 |
### 8.2 数据格式
- JSON格式
- Gzip压缩
- HTTPS加密传输
---
## 9. 构建与部署
### 9.1 依赖版本
```toml
[dependencies]
bevy = "0.18"
bevy_rapier2d = "0.30"
bevy_egui = "0.32"
bevy_kira_audio = "0.22"
bevy_hanabi = "0.15"
serde = "1.0"
serde_json = "1.0"
sled = "0.34"
reqwest = "0.12"
tokio = "1.0"
chrono = "0.4"
uuid = "1.0"
aip = { path = "../" }
```
### 9.2 构建目标
| macOS | x86_64-apple-darwin | 开发调试 |
| iOS | aarch64-apple-ios | App Store |
| iOS Sim | aarch64-apple-ios-sim | 模拟器 |
| Android | aarch64-linux-android | Google Play |
| Android | armv7-linux-androideabi | 兼容设备 |
### 9.3 构建命令
```bash
# 桌面调试
cargo run
# Android构建
cargo build --target aarch64-linux-android --release
# iOS构建
cargo build --target aarch64-apple-ios --release
```
---
## 10. 性能指标
| 帧率 | ≥ 60 FPS |
| 内存占用 | ≤ 200MB |
| 启动时间 | ≤ 3秒 |
| 特征提取延迟 | ≤ 5ms |
| EDM推理延迟 | ≤ 10ms |
| Director决策延迟 | ≤ 10ms |
---
## 11. 任务清单
### Phase 1: 项目初始化
- [ ] **T1.1** 创建项目目录结构 `roguelite/`
- [ ] **T1.2** 配置 Cargo.toml 依赖
- [ ] **T1.3** 创建基础模块文件
- [ ] **T1.4** 配置 Bevy 基础渲染管线
- [ ] **T1.5** 实现像素风格渲染设置
### Phase 2: 核心游戏系统
- [ ] **T2.1** 实现游戏状态机 (GameState)
- [ ] **T2.2** 实现玩家实体和组件
- [ ] **T2.3** 实现玩家移动系统
- [ ] **T2.4** 实现虚拟摇杆控制
- [ ] **T2.5** 实现自动锁定系统
- [ ] **T2.6** 实现战斗系统
- [ ] **T2.7** 实现技能系统
- [ ] **T2.8** 实现道具系统
### Phase 3: 地牢生成系统
- [ ] **T3.1** 实现房间生成算法
- [ ] **T3.2** 实现房间连接算法 (Delaunay + MST)
- [ ] **T3.3** 实现走廊生成
- [ ] **T3.4** 实现瓦片系统
- [ ] **T3.5** 实现内容放置 (敌人/宝箱/陷阱)
- [ ] **T3.6** 实现多层地牢
- [ ] **T3.7** 实现地牢参数调节接口
### Phase 4: 敌人系统
- [ ] **T4.1** 设计敌人类型和属性
- [ ] **T4.2** 实现敌人生成器
- [ ] **T4.3** 实现敌人AI (寻路、攻击)
- [ ] **T4.4** 实现敌人行为树
- [ ] **T4.5** 实现Boss AI
- [ ] **T4.6** 实现敌人难度调节
### Phase 5: UI系统
- [ ] **T5.1** 实现游戏HUD (HP/MP/分数)
- [ ] **T5.2** 实现虚拟摇杆UI
- [ ] **T5.3** 实现技能按钮UI
- [ ] **T5.4** 实现道具栏UI
- [ ] **T5.5** 实现暂停菜单
- [ ] **T5.6** 实现游戏结束界面
### Phase 6: 数据采集系统
- [ ] **T6.1** 定义行为事件类型
- [ ] **T6.2** 实现触控事件监听
- [ ] **T6.3** 实现游戏事件监听
- [ ] **T6.4** 实现行为记录存储
- [ ] **T6.5** 实现15维特征提取器
- [ ] **T6.6** 实现Z-score归一化
- [ ] **T6.7** 实现校准数据收集
- [ ] **T6.8** 实现本地数据缓存 (sled)
### Phase 7: AIP集成
- [ ] **T7.1** 实现EDM Bridge
- [ ] **T7.2** 实现Director Bridge
- [ ] **T7.3** 实现交互参数应用系统
- [ ] **T7.4** 实现情绪历史管理
- [ ] **T7.5** 实现用户特质采集
- [ ] **T7.6** 实现环境状态采集
- [ ] **T7.7** 集成测试
### Phase 8: 视觉效果系统
- [ ] **T8.1** 实现屏幕震动效果
- [ ] **T8.2** 实现粒子效果系统
- [ ] **T8.3** 实现闪光效果
- [ ] **T8.4** 实现屏幕色调调节
- [ ] **T8.5** 实现动态效果参数接口
### Phase 9: 音频系统
- [ ] **T9.1** 集成 bevy_kira_audio
- [ ] **T9.2** 实现背景音乐播放
- [ ] **T9.3** 实现音效系统
- [ ] **T9.4** 实现动态音频调节
- [ ] **T9.5** 实现音乐节奏调节
### Phase 10: 网络与数据上传
- [ ] **T10.1** 实现数据上传服务
- [ ] **T10.2** 实现离线缓存
- [ ] **T10.3** 实现断点续传
- [ ] **T10.4** 实现数据压缩
- [ ] **T10.5** 实现错误处理
### Phase 11: 移动端适配
- [ ] **T11.1** Android平台构建配置
- [ ] **T11.2** iOS平台构建配置
- [ ] **T11.3** 触控输入优化
- [ ] **T11.4** 屏幕适配
- [ ] **T11.5** 性能优化
### Phase 12: 测试与优化
- [ ] **T12.1** 单元测试编写
- [ ] **T12.2** 集成测试编写
- [ ] **T12.3** 性能测试
- [ ] **T12.4** 内存泄漏检测
- [ ] **T12.5** AIP功能验证测试
### Phase 13: 资源制作
- [ ] **T13.1** 玩家精灵图
- [ ] **T13.2** 敌人精灵图
- [ ] **T13.3** 道具精灵图
- [ ] **T13.4** 地图瓦片图
- [ ] **T13.5** 特效精灵图
- [ ] **T13.6** 背景音乐
- [ ] **T13.7** 音效资源
---
## 13. 资源规格表
### 13.1 图片资源规格
**精灵图规格CSV**:
| SPR_001 | player | player_idle | 32x32 | 4 | 8 | 16色 | 像素风格, 俯视角度, 战士角色, 盔甲细节, 静止站立动画 | 色块图 |
| SPR_002 | player | player_walk | 32x32 | 8 | 12 | 16色 | 像素风格, 俯视角度, 战士角色, 行走动画, 四方向 | 色块图 |
| SPR_003 | player | player_attack | 48x48 | 6 | 15 | 16色 | 像素风格, 俯视角度, 挥剑攻击, 攻击特效, 动态姿势 | 色块图 |
| SPR_004 | player | player_hurt | 32x32 | 3 | 10 | 16色 | 像素风格, 受伤闪烁, 红色色调, 痛苦表情 | 色块图 |
| SPR_005 | player | player_death | 32x32 | 8 | 8 | 16色 | 像素风格, 死亡倒地, 消失动画, 灵魂升起 | 色块图 |
| ENM_001 | enemies | slime_green | 24x24 | 6 | 8 | 8色 | 像素风格, 史莱姆, 绿色果冻状, 跳跃移动, Q弹动画 | 色块图 |
| ENM_002 | enemies | slime_red | 24x24 | 6 | 8 | 8色 | 像素风格, 史莱姆, 红色火焰状, 跳跃移动, 火焰特效 | 色块图 |
| ENM_003 | enemies | skeleton | 32x32 | 8 | 10 | 12色 | 像素风格, 骷髅战士, 白色骨骼, 持剑盾牌, 行走攻击 | 色块图 |
| ENM_004 | enemies | bat | 16x16 | 4 | 12 | 6色 | 像素风格, 蝙蝠, 黑色翅膀, 飞行动画, 简单形状 | 色块图 |
| ENM_005 | enemies | ghost | 32x32 | 6 | 8 | 8色 | 像素风格, 幽灵, 半透明蓝色, 漂浮动画, 幽灵尾巴 | 色块图 |
| ENM_006 | enemies | boss_demon | 64x64 | 10 | 10 | 24色 | 像素风格, 恶魔Boss, 红色皮肤, 犄角翅膀, 攻击施法动画 | 色块图 |
| ITM_001 | items | sword_iron | 16x16 | 1 | - | 8色 | 像素风格, 铁剑, 银色剑身, 木质剑柄, 简洁设计 | 色块图 |
| ITM_002 | items | sword_fire | 16x16 | 1 | - | 12色 | 像素风格, 火焰剑, 红橙色火焰包裹, 魔法武器 | 色块图 |
| ITM_003 | items | potion_hp | 16x16 | 1 | - | 8色 | 像素风格, 红色药水瓶, 玻璃瓶身, 红色液体, 瓶塞 | 色块图 |
| ITM_004 | items | potion_mp | 16x16 | 1 | - | 8色 | 像素风格, 蓝色药水瓶, 玻璃瓶身, 蓝色液体, 瓶塞 | 色块图 |
| ITM_005 | items | coin_gold | 12x12 | 6 | 10 | 6色 | 像素风格, 金币, 黄色闪亮, 旋转动画, 简单形状 | 色块图 |
| ITM_006 | items | chest | 32x32 | 3 | 8 | 12色 | 像素风格, 宝箱, 木质箱体, 金色装饰, 打开动画 | 色块图 |
| TILE_001 | tiles | floor_stone | 16x16 | 1 | - | 8色 | 像素风格, 石板地面, 灰色纹理, 地牢风格, 可平铺 | 色块图 |
| TILE_002 | tiles | wall_stone | 16x16 | 1 | - | 8色 | 像素风格, 石墙, 深灰色, 砖块纹理, 地牢风格 | 色块图 |
| TILE_003 | tiles | door | 32x16 | 4 | 8 | 12色 | 像素风格, 木门, 棕色木质, 铁质门环, 开关动画 | 色块图 |
| TILE_004 | tiles | water | 16x16 | 8 | 6 | 8色 | 像素风格, 水面, 蓝色波纹, 流动动画, 可平铺 | 色块图 |
| TILE_005 | tiles | lava | 16x16 | 8 | 6 | 12色 | 像素风格, 岩浆, 红橙黄色, 冒泡动画, 危险区域 | 色块图 |
| FXP_001 | effects | hit_slash | 32x32 | 6 | 20 | 8色 | 像素风格, 斩击特效, 白色弧线, 快速闪烁, 攻击反馈 | 色块图 |
| FXP_002 | effects | explosion | 48x48 | 10 | 15 | 16色 | 像素风格, 爆炸特效, 红橙黄火焰, 扩散消失 | 色块图 |
| FXP_003 | effects | heal | 32x32 | 8 | 10 | 8色 | 像素风格, 治愈特效, 绿色光芒, 上升动画, 恢复效果 | 色块图 |
| FXP_004 | effects | levelup | 48x48 | 12 | 12 | 16色 | 像素风格, 升级特效, 金色光芒, 光柱上升, 庆祝效果 | 色块图 |
### 13.2 音频资源规格
**背景音乐规格CSV**:
| BGM_001 | music | dungeon_explore | 180s | 90 | OGG | 神秘,紧张 | 8-bit芯片音乐, 地牢探索, 低沉贝斯, 神秘氛围, 循环播放 | 网络搜索 |
| BGM_002 | music | battle_normal | 120s | 140 | OGG | 激烈,紧张 | 8-bit芯片音乐, 战斗音乐, 快节奏, 鼓点密集, 紧张刺激 | 网络搜索 |
| BGM_003 | music | battle_boss | 150s | 160 | OGG | 史诗,紧张 | 8-bit芯片音乐, Boss战, 史诗感, 管弦乐风格, 高潮迭起 | 网络搜索 |
| BGM_004 | music | safe_room | 120s | 70 | OGG | 平静,安心 | 8-bit芯片音乐, 安全区域, 舒缓旋律, 治愈风格, 放松氛围 | 网络搜索 |
| BGM_005 | music | victory | 30s | 120 | OGG | 欢快,胜利 | 8-bit芯片音乐, 胜利音乐, 欢快旋律, 庆祝氛围, 短促有力 | 网络搜索 |
| BGM_006 | music | game_over | 20s | 60 | OGG | 悲伤,失败 | 8-bit芯片音乐, 失败音乐, 低沉旋律, 悲伤氛围, 短促收尾 | 网络搜索 |
**音效规格CSV**:
| SFX_001 | sfx | sword_swing | 0.3s | OGG | 中性 | 8-bit音效, 剑挥舞声, 嗖嗖声, 简洁有力 | 网络搜索 |
| SFX_002 | sfx | sword_hit | 0.2s | OGG | 冲击 | 8-bit音效, 剑命中声, 撞击声, 金属质感 | 网络搜索 |
| SFX_003 | sfx | player_hurt | 0.3s | OGG | 痛苦 | 8-bit音效, 受伤声, 痛苦呻吟, 低沉短促 | 网络搜索 |
| SFX_004 | sfx | player_death | 0.5s | OGG | 悲伤 | 8-bit音效, 死亡声, 低沉坠落, 悲伤收尾 | 网络搜索 |
| SFX_005 | sfx | enemy_death | 0.3s | OGG | 满足 | 8-bit音效, 敌人死亡, 爆炸声, 消失音效 | 网络搜索 |
| SFX_006 | sfx | pickup_coin | 0.2s | OGG | 欢快 | 8-bit音效, 拾取金币, 叮当声, 清脆悦耳 | 网络搜索 |
| SFX_007 | sfx | pickup_item | 0.3s | OGG | 欢快 | 8-bit音效, 拾取道具, 闪光声, 魔法音效 | 网络搜索 |
| SFX_008 | sfx | use_potion | 0.4s | OGG | 治愈 | 8-bit音效, 使用药水, 液体声, 恢复音效 | 网络搜索 |
| SFX_009 | sfx | chest_open | 0.5s | OGG | 期待 | 8-bit音效, 宝箱打开, 吱呀声, 惊喜音效 | 网络搜索 |
| SFX_010 | sfx | door_open | 0.3s | OGG | 中性 | 8-bit音效, 门打开, 吱呀声, 木质质感 | 网络搜索 |
| SFX_011 | sfx | footstep | 0.1s | OGG | 中性 | 8-bit音效, 脚步声, 石板地面, 轻快节奏 | 网络搜索 |
| SFX_012 | sfx | explosion | 0.4s | OGG | 冲击 | 8-bit音效, 爆炸声, 巨大轰鸣, 震撼效果 | 网络搜索 |
| SFX_013 | sfx | level_up | 0.6s | OGG | 欢快 | 8-bit音效, 升级音效, 上升旋律, 成就感 | 网络搜索 |
| SFX_014 | sfx | button_click | 0.1s | OGG | 中性 | 8-bit音效, 按钮点击, 清脆短促, UI反馈 | 网络搜索 |
| SFX_015 | sfx | menu_select | 0.2s | OGG | 中性 | 8-bit音效, 菜单选择, 确认音效, 简洁有力 | 网络搜索 |
### 13.3 资源来源策略
| 色块图 | 使用纯色块或简单渐变生成的占位图 | 开发阶段所有精灵图 |
| 网络搜索 | 从免费资源网站搜索合适的8-bit风格资源 | 音效、背景音乐 |
| AI生成 | 使用AI工具生成像素风格图片 | 最终版精灵图 |
| 委托制作 | 委托像素艺术家定制 | 高质量核心资源 |
### 13.4 推荐资源网站
| OpenGameArt | opengameart.org | 图片、音频 | CC0/CC-BY |
| Freesound | freesound.org | 音效 | CC0/CC-BY |
| Incompetech | incompetech.com | 背景音乐 | CC-BY |
| Kenney | kenney.nl | 图片、音频 | CC0 |
| itch.io | itch.io | 图片、音频 | 多种授权 |
---
## 14. 总结
本方案设计了一个完整的Roguelite游戏系统,满足AIP论文实验需求:
| 游戏核心 | 2D俯视像素风格,生成式地牢,移动端横屏控制 |
| 数据采集 | 完整的15维行为特征提取,支持EDM训练 |
| AIP集成 | EDM实时情绪推断,Director动态参数调节 |
| 实验支持 | 数据上传,A/B测试框架 |