项目总览 #
项目名:相位抄写员(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)
时间协作:多条回声轨道+延迟/循环/优先级,像 DAW 的多轨工程。
轻脚本符记(Glyph):拼积木式逻辑,不需要写代码也能做复杂套路。
确定性回放:记录输入序列 + 固定帧,保证可复盘、可分享、可竞速。
UGC/工坊:关卡、敌人、符记、乐谱均数据驱动,内置上传与分发。
公平变现:不卖数值,卖外观与效率;玩家创作可自愿付费解锁。
目标玩家:喜欢战术规划、解谜、速通挑战与 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 工坊流程 #
游戏内创作面板→导出 zip(包含
mod.json清单、资源与数据)。登录后一键上传到工坊;服务端做 schema 校验与杀软扫描。
作品带版本与依赖;多人副本可声明“需求玩家回声槽≥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.echocore.glyphcore.aicore.levelnet.syncui.timeline。事件总线:
EventBus(订阅/发布),避免系统强耦合。存档格式:JSON + HMAC(防篡改);重要字段使用版本号。
资源 GUID:
type: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。
十七、对接你的账户平台(集成步骤) #
客户端启动 → 浏览器/内嵌 WebView 打开你的登录页 → 获取
JWT。客户端持久化 Token(加密存本地)→ 所有 API/WS 带
Authorization。后端
auth-adapter调用你平台的/auth/verify校验 Token 与权限。订单与支付走你平台;游戏后端订阅支付回调,发放游戏内道具。
账号封禁/未成防沉迷策略全部复用平台侧规则。
十八、后续扩展(路线) #
赛季机制:限定符记/主题机关 + 天梯(按最少轨/最短时)。
创作竞赛:官方题面(指定节拍与机关),评审与奖励。
Replay Lab:回放可视化分析(热力图、撞击/失步统计)。
跨端:移动端触控优化、HTML5 试玩版导出、Steam 上架(Java 包装为原生)。
本文档为 v1.0 规划,建议在 MVP 验收后进入 v1.1(联机与工坊扩展)版本规划。