Skip to content

Commit ad19eef

Browse files
author
hobobo
committed
更新示例代码
1 parent 25dd2dc commit ad19eef

307 files changed

Lines changed: 12164 additions & 2133 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Docs/design/07-NetworkSynchronization/04-ReplaySystem.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 04-回放系统
22

3-
> 回放系统负责把“已经发生过的战斗/模拟过程”稳定地记录下来,并在后续以可控速度、可寻址方式重新播放。AbilityKit 里它不是单一实现,而是由通用记录容器、事件轨道、回放控制器、锁步文件格式以及 Demo 侧的回放录制/播放器共同组成。
3+
> 回放系统负责把“已经发生过的战斗/模拟过程”稳定地记录下来,并在后续以可控速度、可寻址方式重新播放。AbilityKit 里它不是单一实现,而是由通用记录容器、事件轨道、回放控制器、按帧记录文件格式以及 Demo 侧的回放录制/播放器共同组成。
44
55
## 1. 能力定位
66

@@ -28,7 +28,7 @@
2828
| 会话封装 | 统一管理容器、序列化器与轨道工厂 | [`RecordSession`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Session/RecordSession.cs:5)[`IRecordSession`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Session/IRecordSession.cs:5) |
2929
| 回放控制 | 以固定步长推进事件消费 | [`BasicReplayController`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Replay/BasicReplayController.cs:6)[`IReplayClock`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Replay/IReplayClock.cs:5) |
3030
| 事件分发 | 将通用事件解码为 typed 回调 | [`TypedReplayEventHandler`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Adapters/Replay/TypedReplayEventHandler.cs:9) |
31-
| 锁步录制/回放 | 把输入、状态哈希、快照写入锁步文件并反向读取 | [`LockstepFrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepFrameRecordSink.cs:7)[`LockstepInputRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepInputRecordReplaySource.cs:10) |
31+
| 按帧录制/回放 | 把输入、状态哈希、快照写入按帧记录文件并反向读取 | [`FrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordSink.cs:7)[`FrameRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordReplaySource.cs:10) |
3232
| Demo 回放 | 为 MOBA 提供独立的二进制回放文件录制与播放 | [`ReplayRecorder`](../../../Unity/Packages/com.abilitykit.demo.moba.share/Runtime/Game/Flow/Battle/Replay/ReplayRecorder.cs:11)[`ReplayPlayer`](../../../Unity/Packages/com.abilitykit.demo.moba.share/Runtime/Game/Flow/Battle/Replay/ReplayPlayer.cs:11) |
3333

3434
---
@@ -186,11 +186,11 @@ sequenceDiagram
186186

187187
---
188188

189-
## 6. 锁步录制与回放源
189+
## 6. 按帧录制与回放源
190190

191191
### 6.1 录制出口
192192

193-
[`LockstepFrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepFrameRecordSink.cs:7) 负责把运行中的锁步数据写入底层 writer:
193+
[`FrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordSink.cs:7) 负责把运行中的按帧数据写入底层 writer:
194194

195195
- `AppendInput`:记录输入。
196196
- `AppendStateHash`:记录状态哈希。
@@ -200,9 +200,9 @@ sequenceDiagram
200200

201201
### 6.2 文件/源结构
202202

203-
[`LockstepInputRecordFile`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepInputRecordFile.cs) 定义了锁步回放文件的元数据、输入帧、状态哈希帧、快照帧和索引块。
203+
[`FrameRecordFile`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordFile.cs) 定义了按帧回放文件的元数据、输入帧、状态哈希帧、快照帧和索引块。
204204

205-
[`LockstepInputRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepInputRecordReplaySource.cs:10) 则把该文件反向整理为按帧查询的数据源:
205+
[`FrameRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordReplaySource.cs:10) 则把该文件反向整理为按帧查询的数据源:
206206

207207
- `TryGetInputs(FrameIndex frame, out IReadOnlyList<PlayerInputCommand> inputs)`
208208
- `TryGetSnapshots(FrameIndex frame, out IReadOnlyList<WorldStateSnapshot> snapshots)`
@@ -213,8 +213,8 @@ sequenceDiagram
213213

214214
```mermaid
215215
flowchart TB
216-
Writer[LockstepFrameRecordSink] --> File[LockstepInputRecordFile]
217-
File --> ReplaySource[LockstepInputRecordReplaySource]
216+
Writer[FrameRecordSink] --> File[FrameRecordFile]
217+
File --> ReplaySource[FrameRecordReplaySource]
218218
ReplaySource --> Inputs[输入查询]
219219
ReplaySource --> Snapshots[快照查询]
220220
ReplaySource --> Hashes[哈希查询]
@@ -270,7 +270,7 @@ MOBA Demo 还实现了一套独立的二进制回放格式,用于战斗回放
270270
```mermaid
271271
sequenceDiagram
272272
participant Runtime as 战斗运行时
273-
participant Sink as LockstepFrameRecordSink
273+
participant Sink as FrameRecordSink
274274
participant Writer as 底层写入器
275275
participant Session as RecordSession
276276
@@ -312,10 +312,10 @@ sequenceDiagram
312312
- [`BasicReplayController`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Replay/BasicReplayController.cs:6)
313313
- [`TypedReplayEventHandler`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Adapters/Replay/TypedReplayEventHandler.cs:9)
314314

315-
### 锁步与文件回放
315+
### 按帧记录与文件回放
316316

317-
- [`LockstepFrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepFrameRecordSink.cs:7)
318-
- [`LockstepInputRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepInputRecordReplaySource.cs:10)
317+
- [`FrameRecordSink`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordSink.cs:7)
318+
- [`FrameRecordReplaySource`](../../../Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordReplaySource.cs:10)
319319

320320
### Demo 二进制回放
321321

@@ -329,6 +329,6 @@ sequenceDiagram
329329
回放系统在 AbilityKit 里有两个层次:
330330

331331
- **通用层**:以 `RecordContainer``RecordSession``BasicReplayController` 为核心,适合抽象化记录与回放。
332-
- **业务层**以锁步文件与 Demo 二进制回放为核心,适合战斗调试、问题复现和产品功能落地。
332+
- **业务层**以按帧记录文件与 Demo 二进制回放为核心,适合战斗调试、问题复现和产品功能落地。
333333

334334
两者共享“按帧组织历史数据”的思想,但在文件结构、序列化方式和调用者角色上各自独立。

Docs/design/08-GameplayModules/00-GameplayCapabilityMap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ Record 模块不是玩法层的一部分,但它是玩法问题复现和确定
374374
| BasicReplayController | `Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Replay/BasicReplayController.cs` | 按 ReplayClock 消费指定帧事件并交给 handler |
375375
| RecordContainer | `Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Container/RecordContainer.cs` | 记录容器 |
376376
| EventTrack | `Unity/Packages/com.abilitykit.record/Runtime/Record/Core/Tracks/EventTrack.cs` | 事件轨道 |
377-
| LockstepFrameRecordSink | `Unity/Packages/com.abilitykit.record/Runtime/Record/Lockstep/LockstepFrameRecordSink.cs` | 帧同步输入记录 |
377+
| FrameRecordSink | `Unity/Packages/com.abilitykit.record/Runtime/Record/FrameRecord/FrameRecordSink.cs` | 按帧输入记录 |
378378

379379
回放 Tick 流程:
380380

0 commit comments

Comments
 (0)