相位抄写员

项目总览 #

  • 项目名:相位抄写员(Phase Scribe)

  • 类型:2D 解谜×轻战斗×时间协作

  • 平台:Desktop(Windows/macOS/Linux,Java/LibGDX)、可选 Android、可选 HTML5(LibGDX GWT 导出)

  • 单人→联机:先单人主线(3–5 章),后期解锁 2–4 人协奏本、周常挑战

  • 制作周期(个人):6–12 个月(MVP 2–3 个月)

  • 变现:装饰与效率型加速、创作平台分成、联机房间服务会员

  • 账户:对接现有用户管理平台(JWT/Sessions),游戏作为客户端前端


一、核心创意与体验目标 #

一句话:录制你的操作生成“回声分身(Echo)”,把它们像乐谱一样编排,让“过去的你”与“现在的你”协同通关与围猎。

设计支柱(Pillars)

  1. 时间协作:多条回声轨道+延迟/循环/优先级,像 DAW 的多轨工程。

  2. 轻脚本符记(Glyph):拼积木式逻辑,不需要写代码也能做复杂套路。

  3. 确定性回放:记录输入序列 + 固定帧,保证可复盘、可分享、可竞速。

  4. UGC/工坊:关卡、敌人、符记、乐谱均数据驱动,内置上传与分发。

  5. 公平变现:不卖数值,卖外观与效率;玩家创作可自愿付费解锁。

目标玩家:喜欢战术规划、解谜、速通挑战与 UGC 的中核玩家;习惯像素/线描风的独立游戏受众。


二、世界观与主线 #

  • 题材:蒸汽-抄写术都市。时间被“抄写术”切成可被记录与回放的片段。

  • 主线结构:3–5 章、10–15 关,3–5 小时可通关。

  • 章节点

    • 第 1 章·启封:录制/回放/单轨,基础机关。

    • 第 2 章·分轨:2–3 轨,加入延迟/循环符记,双人踩板、诱敌。

    • 第 3 章·对位:0.1s 同步点,护符者/反抄写机关。

    • 第 4 章·合奏:Boss 干扰回声,乐谱预编排成为核心。

    • 第 5 章·收束:多层协作终章;解锁工坊与周常挑战。

通关后

  • 协奏副本(2–4 人):每人最多 2 条回声,共同编曲打 Boss。

  • 周常乐谱挑战:限定符记/时长,竞速或最少轨解。

  • 社区合奏:使用他人乐谱作为“NPC 回声队友”,形成半异步共斗。


三、核心玩法与规则 #

3.1 回声(Echo)系统 #

  • 回声槽:初始 1,最高 6;关卡/装备/联机可调整上限。

  • 录制:按住“抄写键”,记录 3–10 秒“输入序列”(方向、交互、攻击、放置)。

  • 回放:生成半透明回声实体,按记录时序执行,具有碰撞/仇恨/机关交互能力。

  • 时间轴乐谱:每条轨可设置“开始延迟”“循环次数”“优先级”。

  • 冲突裁决:同格同帧冲突按优先级→时间先后→实体 ID 排序解决。

  • 噪点(负反馈):过多并行回声会产生小概率“失步”(±1 帧抖动),鼓励合理编排。

3.2 符记(Glyph)系统 #

  • 定位:轻量可视逻辑节点,配合回声产生策略差异。

  • 基础节点:Delay、Loop n、OnTrigger、If-Else、Action:Attack/Interact、PlaceTrap。

  • 感知节点:感知敌人/队友/机关状态;数值与距离阈值可调。

  • 使用方式:关卡内收集/购买纸页解锁;乐谱页面拖拽组合生效。

3.3 敌人与战斗 #

  • 巡逻者:被声响吸引,可被回声牵引。

  • 护符者:需要两条以上回声同步打击破盾。

  • 抄写猎犬:优先追逐回声体,分摊火力。

  • 回溯者(Boss):复制你的某条回声反击,强制你做“对位”。

3.4 经济与成长 #

  • 墨水(通用货币),纸页(解锁符记),齿轮(装备改造)。

  • 商店/工坊:关卡据点更新库存;装备提供移动、范围、承载等细改。

  • 难度曲线:以“轨道数量”“同步精度”“机关复合度”作为三条主要轴线。


四、内容与关卡设计 #

  • 关卡目标:到达终点/清理目标/同步踩板/护送。

  • 机关库(优先开发):压板、门、传送门、定时器、旋转桥、拉杆、可推箱、音叉(节拍提示)。

  • 模板法:每新增一个机关/符记,至少产出 2–3 个“谜题模板”,复用生成 3–5 张变体地图。

  • 竞速与评分:记录通关时间、回声条数、失败次数;生成可分享回放码。


五、UGC 与 MOD 体系 #

目标:玩家可用 JSON/少量 JS(可选)扩展关卡/敌人/符记/乐谱;内置工坊上传、依赖管理与版本回退。

5.1 目录与资源结构(客户端) #

/assets               # 官方与本地资源
  /sprites
  /tilesets
  /sfx
  /music
/data                 # 数据驱动配置
  /levels             # 关卡 JSON(Tiled 导出)
  /actors             # 敌人/物件定义
  /glyphs             # 符记组合与参数
  /scores             # 乐谱(轨道配置)
/mods                 # 本地 MOD 包(zip 或文件夹)

5.2 JSON Schema(示例) #

敌人定义 actors/patroller_mk1.json

{
  "$schema": "https://phase-scribe.dev/schema/actor.json",
  "id": "patroller_mk1",
  "hp": 6,
  "speed": 1.2,
  "ai": "patrol",
  "sight": 5,
  "loot": { "ink": [1, 2], "page": [0, 1] },
  "tags": ["common"]
}

乐谱定义 scores/tutorial_01.json

{
  "id": "score_tut_01",
  "tracks": [
    { "echoId": "e1", "delay": 0.0, "loop": 1, "priority": 1 },
    { "echoId": "e2", "delay": 1.2, "loop": 2, "priority": 0 }
  ],
  "syncPoints": [0.0, 3.0, 6.0]
}

关卡定义(Tiled 导出 + 扩展属性)

{
  "map": "maps/ch1_03.tmx",
  "start": {"x": 4, "y": 9},
  "goal": {"x": 56, "y": 9},
  "actors": ["patroller_mk1", "warden_shield"],
  "score": "score_tut_01",
  "rules": { "maxTracks": 3, "timeLimit": 300 }
}

5.3 运行时沙箱 #

  • 白名单 API:Vector, Raycast, PlaySfx, SpawnEcho, OnTrigger, GetState

  • 资源隔离:MOD 命名空间与版本号;冲突采用“后加载优先”且可手动排序。

  • 限流:脚本每帧指令上限、执行超时中断;只读网络禁用。

5.4 工坊流程 #

  1. 游戏内创作面板→导出 zip(包含 mod.json 清单、资源与数据)。

  2. 登录后一键上传到工坊;服务端做 schema 校验与杀软扫描。

  3. 作品带版本与依赖;多人副本可声明“需求玩家回声槽≥3”。


六、网络与联机 #

阶段性策略

  • P1(单机):打磨确定性回放与乐谱编辑;

  • P2(小队联机 2–4 人):状态同步 + 输入广播(KCP/UDP 或 TCP+Nagle 关闭)。

6.1 后端选型 #

  • 语言/框架:Java(Spring Boot / Netty),或 Colyseus(Node)替代;本方案以 Java 为主。

  • 协议:WebSocket(桌面/HTML5 通用);桌面端可选 UDP(KCP)通道优化。

6.2 同步模型 #

  • 权威服:服务器判定伤害、机关状态、胜负;客户端进行插值与特效。

  • 输入回放:玩家与回声仅上传“输入序列 + 时间戳”,以**固定帧(60Hz)**重演。

  • 状态快照:每 100ms 下发校正快照;丢包时以时间轴重算回放。

  • 反作弊

    • 回放校验(服务端对上传的输入重演,比较 hash)。

    • 关键事件签名(开箱、结算、掉落)。

    • 速率限制与 IP/设备指纹。

6.3 数据包结构(示例) #

{
  "op": "input",            // 包类型:input/state/chat
  "room": "raid-42",
  "t": 123456789,            // 客户端发送时间戳
  "seq": 1024,               // 包序号
  "payload": {
    "playerId": "u_932",
    "frame": 3600,           // 逻辑帧
    "inputs": ["U","U","A","E"]  // 上/下/左/右/交互/攻击等编码
  }
}

七、技术栈与工程结构 #

7.1 客户端(Java + LibGDX) #

  • 渲染:LibGDX(SpriteBatch/Stage)、固定逻辑步 60Hz。

  • 物理:Box2D(或轻量 AABB 碰撞自研)。

  • 地图:Tiled(解析 TMX/TSX),支持多层与碰撞层。

  • 音频:libgdx-audio;节拍器用 Gdx.graphics.getDeltaTime() 与固定 BPM 对齐。

  • 依赖:Kryo/KryoNet(序列化/网络),Gson/Jackson(JSON),Guava(工具)。

目录建议

/client
  /assets (sprites, sfx, music)
  /scenes (Boot, Menu, Game, Editor)
  /systems (echo, glyph, combat, ai, physics)
  /ui (score-timeline, inventory, shop)
  /data (levels, actors, glyphs, scores)
  Main.java

7.2 后端(Java + Spring Boot) #

  • 模块

    • auth-adapter(对接你的用户平台,校验 JWT/Token)

    • game-api(关卡/存档/工坊/结算)

    • matchmaking(匹配/房间目录,Redis)

    • replay-verify(回放校验作业,异步队列)

  • 数据库:PostgreSQL/MySQL;工坊文件存储(S3/本地 NAS)。

  • 缓存/队列:Redis;异步任务用 Spring Event 或 RabbitMQ。

7.3 前端/运营(Vue 3) #

  • 用途:启动器/工坊浏览、作品详情、版本管理、赛季活动页。

  • 鉴权:沿用现有平台登录态;iframe/自定义 URL Scheme 拉起桌面端。


八、API 设计(草案) #

鉴权Authorization: Bearer <JWT>(来自你的用户管理平台)

GET  /v1/profile                  # 读取玩家档案/资产
GET  /v1/levels                   # 关卡列表(分页、标签、难度)
GET  /v1/levels/{id}              # 关卡详情(含推荐乐谱)
POST /v1/save                     # 上传存档(加签 + 回放哈希)
GET  /v1/scores/{id}              # 拉取乐谱配置
POST /v1/workshop/upload          # 上传 MOD(zip),后台校验
GET  /v1/workshop/search          # 搜索/排行/订阅
POST /v1/matchmaking/find         # 匹配加入房间
WS   /v1/room/{roomId}/connect    # 实时联机
POST /v1/purchase/create          # 发起赞助/购买订单
POST /v1/purchase/verify          # 回调验签

存档上传体(示例)

{
  "slot": 1,
  "progress": {"chapter": 2, "level": 5},
  "inventory": {"ink": 123, "page": 7, "gears": ["boots_1"]},
  "replayHash": "6b1f...",        
  "timestamp": 1723456789,
  "sign": "HMAC-SHA256(...)"
}

九、变现与合规 #

  • 装饰:角色皮肤、回声轨道样式、音效包、UI 主题。

  • 效率:合成/修复加速券(可自然完成),工坊云存配额、私人房。

  • UGC 分成:作者自定价格(可 0),平台抽成小比例,支持赞助。

  • 支付合规:订单号签名、回调验签、账务对账脚本;未成年人时段与付费限额(若面向国内)。


十、制作计划(个人开发,保守) #

M1–M2:核心验证(MVP)

  • 录制/回放/延迟/循环最小闭环;1 敌人 + 1 机关;基础乐谱 UI。

  • 存档读写、关卡加载、碰撞与相机。

  • 验收:一关可玩、可复盘分享 JSON。

M3–M4:内容成型

  • 2–3 章、3–4 敌种、6–8 符记;商店与经济系统;音画反馈。

  • 打磨乐谱易用性(吸附对齐/自动错位建议)。

M5–M6:主线完结 + 工坊 Alpha

  • 终章 Boss;关卡编辑/导入;MOD 热加载与上传;崩溃与日志系统。

  • 封闭测试(30–100 人)。

M7–M9:联机协奏

  • 匹配/房间/掉线重连;2–4 人副本;回放校验与反作弊。

  • 赛季挑战与周常系统。

M10–M12:运营与商业化

  • 装饰/加速券;工坊分成与结算;监控、报警、A/B 测试。

十一、测试与质量 #

  • 自动化:核心系统(回放、碰撞、机关)做 JUnit 单测;回放 determinism 做金丝雀测试。

  • 压测:联机房间 4 人×200 房;消息丢包/重排模拟。

  • 可访问性:色盲模式、节拍辅助线、操作缓冲(输入宽容)、自定义键位。

  • 遥测:卡关点、失败原因、乐谱编辑操作耗时、关卡热度。


十二、美术与音频规范 #

  • 画面:像素/线描混合;逻辑分辨率 480×270,整数缩放至 960×540/1280×720。

  • 色彩:低色数调色板 + 高对比可读;危险/可交互统一标色。

  • 动画:回声出现/消散带“纸页翻动/墨迹扩散”粒子。

  • 音频:打击类短音;BPM 与乐谱同步;回声生成加页声、落笔声。

  • 排版:UI 九切片、位图字库(中文 fallback 方案)。


十三、风险与对策 #

  • 确定性难题:统一固定步、去除浮点累积(用整数 tick 或定点数);随机种子固定。

  • 乐谱上手门槛:提供范式模板、一键对齐节拍、自动冲突建议;教学关逐层引导。

  • 内容产能:优先开发“高复用机关”,通过关卡模板扩张内容。

  • 联机时延:输入预测与插值、快照更正;弱网提示与降级策略。


十四、代码与命名规范(摘要) #

  • 语言:Java 17,Gradle 管理;Checkstyle + SpotBugs;命名 camelCase

  • 包结构core.echo core.glyph core.ai core.level net.sync ui.timeline

  • 事件总线EventBus(订阅/发布),避免系统强耦合。

  • 存档格式:JSON + HMAC(防篡改);重要字段使用版本号。

  • 资源 GUIDtype:name@version(如 actor:patroller_mk1@1.0.0)。


十五、落地清单(首批必须项) #

  • 固定步回放(60Hz)与输入录制

  • 乐谱 UI(轨道/延迟/循环/优先级)

  • 2 敌 6 符 + 10 关(含教学)

  • 经济系统(墨水/纸页/齿轮)与商店

  • 存档/设置/键位/可访问性

  • 工坊上传与本地热加载(无脚本/仅数据)

  • 账户平台对接(JWT)

  • 崩溃日志与回放导出


十六、验收与 KPI #

  • MVP 验收

    • 20 分钟教程体验;

    • 1 张综合关卡可让玩家使用≥2 条回声;

    • 回放同种输入在 100 次运行内 hash 恒定一致。

  • 上线 KPI(前 30 天)

    • 日活留存 D1≥35%,D7≥12%;

    • 工坊有效作品 ≥ 50;

    • 平均关卡完成时间分布明显,卡点集中 < 2 处;

    • 变现转化 ≥ 2%,ARPPU ≥ 20。


十七、对接你的账户平台(集成步骤) #

  1. 客户端启动 → 浏览器/内嵌 WebView 打开你的登录页 → 获取 JWT

  2. 客户端持久化 Token(加密存本地)→ 所有 API/WS 带 Authorization

  3. 后端 auth-adapter 调用你平台的 /auth/verify 校验 Token 与权限。

  4. 订单与支付走你平台;游戏后端订阅支付回调,发放游戏内道具。

  5. 账号封禁/未成防沉迷策略全部复用平台侧规则。


十八、后续扩展(路线) #

  • 赛季机制:限定符记/主题机关 + 天梯(按最少轨/最短时)。

  • 创作竞赛:官方题面(指定节拍与机关),评审与奖励。

  • Replay Lab:回放可视化分析(热力图、撞击/失步统计)。

  • 跨端:移动端触控优化、HTML5 试玩版导出、Steam 上架(Java 包装为原生)。


本文档为 v1.0 规划,建议在 MVP 验收后进入 v1.1(联机与工坊扩展)版本规划。