Files
esengine/packages/framework/network/CHANGELOG.md
github-actions[bot] c188a36f2b chore: release packages
2026-01-06 10:26:20 +00:00

10 KiB
Raw Blame History

@esengine/network

13.0.0

Patch Changes

12.0.0

Patch Changes

11.0.0

Patch Changes

  • Updated dependencies [bffe90b]:
    • @esengine/ecs-framework-math@2.9.0

10.0.0

Minor Changes

  • #440 30173f0 Thanks @esengine! - feat(network): 添加定点数网络同步支持 | Add fixed-point network sync support

    @esengine/network - 新增定点数同步模块 | Add fixed-point sync module

    • 新增 FixedSnapshotBuffer:定点数快照缓冲区 | Add FixedSnapshotBuffer: fixed-point snapshot buffer
    • 新增 FixedClientPrediction:定点数客户端预测 | Add FixedClientPrediction: 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 1f297ac Thanks @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());
        }
    }
    

    设计

    • 每个 ECSRoomCore.worldManager 中创建独立的 World
    • Core.update() 统一更新 Time 和所有 World
    • onTick() 只处理状态同步逻辑

Patch Changes

  • Updated dependencies [1f297ac]:
    • @esengine/ecs-framework@2.5.0
    • @esengine/blueprint@2.0.0

2.2.0

Minor Changes

  • #379 fb8bde6 Thanks @esengine! - feat(network): 网络模块增强

    新增功能

    • 客户端预测 (NetworkPredictionSystem)
      • 本地输入预测和服务器校正
      • 平滑的校正偏移应用
      • 可配置移动速度、校正阈值等
    • 兴趣区域管理 (NetworkAOISystem)
      • 基于网格的 AOI 实现
      • 观察者进入/离开事件
      • 同步数据过滤
    • 状态增量压缩 (StateDeltaCompressor)
      • 只发送变化的字段
      • 可配置变化阈值
      • 定期完整快照
    • 断线重连
      • 自动重连机制
      • Token 认证
      • 完整状态恢复

    协议增强

    • 添加输入序列号和时间戳
    • 添加速度和角速度字段
    • 添加自定义数据字段
    • 新增重连协议

    文档

    • 添加客户端预测文档(中英文)
    • 添加 AOI 文档(中英文)
    • 添加增量压缩文档(中英文)

2.1.1

Patch Changes

  • Updated dependencies [a000cc0]:
    • @esengine/rpc@1.1.1

2.1.0

Minor Changes

  • #364 7940f58 Thanks @esengine! - ## @esengine/rpc

    新增 | Added

    • 新增类型安全的 RPC 库,支持 WebSocket 通信
    • 新增 RpcClientconnect/disconnect, call/send/on/off/once 方法
    • 新增 RpcServerNode.js WebSocket 服务端
    • 新增编解码系统:支持 JSON 和 MessagePack
    • 新增 TextEncoder/TextDecoder polyfill兼容微信小游戏平台
    • 新增 WebSocketAdapter 接口,支持跨平台 WebSocket 抽象

    • Add type-safe RPC library with WebSocket support
    • Add RpcClient class with connect/disconnect, call/send/on/off/once methods
    • Add RpcServer class 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 and GameNetworkService
    • Add gameProtocol with 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/rpc and @esengine/network
    • Generated server code now uses RpcServer + gameProtocol
    • Add ws and @types/ws dependencies
    • Update client connection example in README template

Patch Changes

  • Updated dependencies [7940f58]:
    • @esengine/rpc@1.1.0