Files
tianshu-engine/PRODUCTION.md

105 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 生产级交付检查清单
从"能跑的 Demo"到"能交付用户的生产级引擎",需要补全以下内容。
---
## 一、性能与加载(玩家打开游戏的前 3 秒)
| # | 项目 | 说明 |
|---|------|------|
| 1.1 | 启动加载优化 | 骨架屏 + 进度条 + 首场景预加载优先级。替代当前串行 fetch JSON → 无 loading 进度 |
| 1.2 | 视频预加载策略 | LRU 缓存池3-5 个已解码视频),降低内存占用,提升预加载命中率 |
| 1.3 | 大场景 JSON 懒加载 | 章节级按需加载(只加载当前章节的场景定义和视频),避免整个 demo.json 一次性加载 |
| 1.4 | 资源压缩 | 视频 WebM/MP4 双编码 + Gzip/Brotli JSON |
| 1.5 | 首屏时间目标 | <200ms骨架屏 + 关键 CSS 内联 |
---
## 二、可靠性与错误处理
| # | 项目 | 说明 |
|---|------|------|
| 2.1 | 视频加载失败 | 超时检测 + 重试指数退避 3 + 错误画面 + 跳过按钮ROADMAP P18 |
| 2.2 | JSON 解析失败 | 格式验证 + 错误提示 + 降级到默认剧情 |
| 2.3 | IndexedDB 不可用 | 检测 + 降级到 memory-only 模式 + 提示用户 |
| 2.4 | 内存溢出 | 视频缓存上限 + 自动释放最久未用的 buffer |
| 2.5 | 浏览器兼容检测 | 检测 Web Audio API / Fullscreen API / `<video>` 支持不支持的显示提示 |
---
## 三、部署与分发
| # | 项目 | 说明 |
|---|------|------|
| 3.1 | 构建产物分析 | 代码分割 + tree-shaking 验证 |
| 3.2 | CDN 部署 | `public/videos/` 上传到 CDN`videoUrl` 支持绝对路径 |
| 3.3 | PWA 离线支持 | Service Worker 缓存核心资源离线也能玩 |
| 3.4 | 版本更新 | Service Worker 检测新版本 + 提示刷新 |
| 3.5 | 多环境配置 | 环境变量控制 JSON 路径CDN 域名 |
---
## 四、内容管线与制作效率
| # | 项目 | 说明 |
|---|------|------|
| 4.1 | JSON Schema 验证 | 编辑器 + 引擎加载时验证 JSON 结构合法性 |
| 4.2 | 视频编码规范脚本 | 自动化 ffmpeg 批处理统一编码参数多场景生成 |
| 4.3 | 字幕工具链 | Aegisub 兼容 + 时间轴自动校准 |
| 4.4 | 分支冲突检测 | 死路检测某些分支永不触发+ 循环检测 |
| 4.5 | 版本管理 | 场景 JSON 版本号 + 存档兼容性检测 + 迁移逻辑 |
---
## 五、分析
| # | 项目 | 说明 |
|---|------|------|
| 5.1 | 玩家行为统计 | 匿名收集中途退出位置热门分支平均通关时长 |
| 5.2 | 错误上报 | `window.onerror` + Promise rejection 捕获 + 上报日志服务 |
| 5.3 | A/B 测试 | 同一场景多个视频变体按用户分流 |
---
## 六、安全
| # | 项目 | 说明 |
|---|------|------|
| 6.1 | JSON 注入防护 | 禁止 eval所有外部数据只做 JSON.parse |
| 6.2 | XSS 检查 | 确认没有 `v-html` 使用点 |
| 6.3 | 存档篡改防护 | 存档加 HMAC 签名校验防止本地修改成就 |
---
## 七、测试
| # | 项目 | 说明 |
|---|------|------|
| 7.1 | 单元测试 | Engine / StateManager / VideoManager 核心逻辑测试 |
| 7.2 | 剧情路径遍历 | 自动遍历所有 choices 分支验证无死路 |
| 7.3 | 跨浏览器测试 | Chrome / Firefox / Safari 兼容矩阵 |
| 7.4 | 性能回归 | Lighthouse + 自定义首屏/切换延迟基线 |
---
## 八、文档
| # | 项目 | 说明 |
|---|------|------|
| 8.1 | API 文档 | Engine 公开方法文档 |
| 8.2 | 场景 JSON 规范 | 完整字段参考手册 |
| 8.3 | 制作指南 | 如何从零制作一个交互式电影 |
| 8.4 | 部署指南 | 如何部署到服务器 / CDN / PWA |
---
## 优先级建议
| 优先级 | 内容 |
|:--:|------|
| **P0 立即可做** | JSON Schema 验证 (4.1)、场景分章节懒加载 (1.3)、错误处理 (2.1-2.5) |
| **P1 短期** | PWA 离线 (3.3)、视频编码规范脚本 (4.2)、单元测试 (7.1) |
| **P2 中期** | CDN 部署 (3.2)、分析 (5.1-5.2)、存档 HMAC (6.3) |
| **P3 长期** | A/B 测试 (5.3)、多环境配置 (3.5)、跨浏览器测试 (7.3) |