10 KiB
10 KiB
@esengine/network
13.0.0
Patch Changes
- Updated dependencies [
4e66bd8]:- @esengine/blueprint@4.5.0
- @esengine/ecs-framework-math@2.10.1
12.0.0
Patch Changes
- Updated dependencies [
fa593a3]:
11.0.0
Patch Changes
- Updated dependencies [
bffe90b]:- @esengine/ecs-framework-math@2.9.0
10.0.0
Minor Changes
-
#440
30173f0Thanks @esengine! - feat(network): 添加定点数网络同步支持 | Add fixed-point network sync support@esengine/network - 新增定点数同步模块 | Add fixed-point sync module
- 新增
FixedSnapshotBuffer:定点数快照缓冲区 | AddFixedSnapshotBuffer: fixed-point snapshot buffer - 新增
FixedClientPrediction:定点数客户端预测 | AddFixedClientPrediction: fixed-point client prediction - 支持确定性帧同步和状态回滚 | Support deterministic lockstep and state rollback
- 新增
Patch Changes
- Updated dependencies [
30173f0]:- @esengine/ecs-framework-math@2.8.0
9.0.0
Patch Changes
- Updated dependencies [
0d33cf0]:- @esengine/blueprint@4.4.0
8.0.0
Patch Changes
- Updated dependencies [
c2acd14]:- @esengine/blueprint@4.3.0
7.0.0
Patch Changes
- Updated dependencies [
2e84942]:- @esengine/blueprint@4.2.0
6.0.0
Patch Changes
- Updated dependencies [
caf3be7]:- @esengine/blueprint@4.1.0
5.0.3
Patch Changes
- Updated dependencies [
902c0a1]:- @esengine/rpc@1.1.3
5.0.2
Patch Changes
- Updated dependencies []:
- @esengine/rpc@1.1.2
5.0.1
Patch Changes
- Updated dependencies [
3e5b778]:- @esengine/ecs-framework@2.7.1
- @esengine/blueprint@4.0.1
5.0.0
Patch Changes
- Updated dependencies [
1f3a76a]:- @esengine/ecs-framework@2.7.0
- @esengine/blueprint@4.0.0
4.0.1
Patch Changes
- Updated dependencies [
04b08f3]:- @esengine/ecs-framework@2.6.1
- @esengine/blueprint@3.0.1
4.0.0
Patch Changes
- Updated dependencies []:
- @esengine/ecs-framework@2.6.0
- @esengine/blueprint@3.0.0
3.0.1
Patch Changes
- Updated dependencies [
a08a84b]:- @esengine/ecs-framework@2.5.1
- @esengine/blueprint@2.0.1
3.0.0
Minor Changes
-
#390
1f297acThanks @esengine! - feat: ECS 网络状态同步系统@esengine/ecs-framework
新增
@sync装饰器和二进制编解码器,支持基于 Component 的网络状态同步:import { Component, ECSComponent, sync } from '@esengine/ecs-framework'; @ECSComponent('Player') class PlayerComponent extends Component { @sync('string') name: string = ''; @sync('uint16') score: number = 0; @sync('float32') x: number = 0; @sync('float32') y: number = 0; }新增导出
sync- 标记需要同步的字段装饰器SyncType- 支持的同步类型SyncOperation- 同步操作类型(FULL/DELTA/SPAWN/DESPAWN)encodeSnapshot/decodeSnapshot- 批量编解码encodeSpawn/decodeSpawn- 实体生成编解码encodeDespawn/processDespawn- 实体销毁编解码ChangeTracker- 字段级变更追踪initChangeTracker/clearChanges/hasChanges- 变更追踪工具函数
内部方法标记
将以下方法标记为
@internal,用户应通过Core.update()驱动更新:Scene.update()SceneManager.update()WorldManager.updateAll()
@esengine/network
新增
ComponentSyncSystem,基于@sync装饰器自动同步组件状态:import { ComponentSyncSystem } from '@esengine/network'; // 服务端:编码状态 const data = syncSystem.encodeAllEntities(false); // 客户端:解码状态 syncSystem.applySnapshot(data);修复
- 将
@esengine/ecs-framework从 devDependencies 移到 peerDependencies
@esengine/server
新增
ECSRoom,带有 ECS World 支持的房间基类:import { ECSRoom } from '@esengine/server/ecs'; // 服务端启动 Core.create(); setInterval(() => Core.update(1 / 60), 16); // 定义房间 class GameRoom extends ECSRoom { onCreate() { this.addSystem(new PhysicsSystem()); } onJoin(player: Player) { const entity = this.createPlayerEntity(player.id); entity.addComponent(new PlayerComponent()); } }设计
- 每个
ECSRoom在Core.worldManager中创建独立的 World Core.update()统一更新 Time 和所有 WorldonTick()只处理状态同步逻辑
Patch Changes
- Updated dependencies [
1f297ac]:- @esengine/ecs-framework@2.5.0
- @esengine/blueprint@2.0.0
2.2.0
Minor Changes
-
#379
fb8bde6Thanks @esengine! - feat(network): 网络模块增强新增功能
- 客户端预测 (NetworkPredictionSystem)
- 本地输入预测和服务器校正
- 平滑的校正偏移应用
- 可配置移动速度、校正阈值等
- 兴趣区域管理 (NetworkAOISystem)
- 基于网格的 AOI 实现
- 观察者进入/离开事件
- 同步数据过滤
- 状态增量压缩 (StateDeltaCompressor)
- 只发送变化的字段
- 可配置变化阈值
- 定期完整快照
- 断线重连
- 自动重连机制
- Token 认证
- 完整状态恢复
协议增强
- 添加输入序列号和时间戳
- 添加速度和角速度字段
- 添加自定义数据字段
- 新增重连协议
文档
- 添加客户端预测文档(中英文)
- 添加 AOI 文档(中英文)
- 添加增量压缩文档(中英文)
- 客户端预测 (NetworkPredictionSystem)
2.1.1
Patch Changes
- Updated dependencies [
a000cc0]:- @esengine/rpc@1.1.1
2.1.0
Minor Changes
-
#364
7940f58Thanks @esengine! - ## @esengine/rpc新增 | Added
- 新增类型安全的 RPC 库,支持 WebSocket 通信
- 新增
RpcClient类:connect/disconnect, call/send/on/off/once 方法 - 新增
RpcServer类:Node.js WebSocket 服务端 - 新增编解码系统:支持 JSON 和 MessagePack
- 新增 TextEncoder/TextDecoder polyfill,兼容微信小游戏平台
- 新增 WebSocketAdapter 接口,支持跨平台 WebSocket 抽象
- Add type-safe RPC library with WebSocket support
- Add
RpcClientclass with connect/disconnect, call/send/on/off/once methods - Add
RpcServerclass for Node.js WebSocket server - Add codec system with JSON and MessagePack support
- Add TextEncoder/TextDecoder polyfill for WeChat platform compatibility
- Add WebSocketAdapter interface for cross-platform WebSocket abstraction
@esengine/network
变更 | Changed
- 重构 NetworkService:拆分为
RpcService<P>基类和GameNetworkService游戏服务类 - 新增
gameProtocol:类型安全的 API (join/leave) 和消息 (input/sync/spawn/despawn) - 新增类型安全的便捷方法:sendInput(), onSync(), onSpawn(), onDespawn()
- 更新 NetworkPlugin 使用新的服务架构
- 移除 TSRPC 依赖,改用 @esengine/rpc
- Refactor NetworkService into
RpcService<P>base class andGameNetworkService - Add
gameProtocolwith type-safe API (join/leave) and messages (input/sync/spawn/despawn) - Add type-safe convenience methods: sendInput(), onSync(), onSpawn(), onDespawn()
- Update NetworkPlugin to use new service architecture
- Remove TSRPC dependency, migrate to @esengine/rpc
@esengine/cli
变更 | Changed
- 更新 Node.js 适配器使用
@esengine/rpc和@esengine/network - 生成的服务器代码改用
RpcServer+gameProtocol - 添加
ws和@types/ws依赖 - 更新 README 模板中的客户端连接示例
- Update Node.js adapter to use
@esengine/rpcand@esengine/network - Generated server code now uses
RpcServer+gameProtocol - Add
wsand@types/wsdependencies - Update client connection example in README template
Patch Changes
- Updated dependencies [
7940f58]:- @esengine/rpc@1.1.0