4.8 KiB
Changelog
This document records the version update history of the @esengine/ecs-framework core library.
v2.2.21 (2025-12-05)
Bug Fixes
- Iteration safety fix: Fix issue where component changes during
process/lateProcessiteration caused entities to be skipped (#272)- Adding/removing components during system processing no longer causes entities to be unexpectedly skipped
Performance
- HierarchySystem optimization: Optimize hierarchy system to avoid iterating all entities every frame (#279)
- Use dirty entity set instead of iterating all entities
- Static scene
process()optimized from O(n) to O(1) - 1000 entities static scene: 81.79μs → 0.07μs (1168x faster)
- 10000 entities static scene: 939.43μs → 0.56μs (1677x faster)
- Server simulation (100 rooms x 100 entities): 2.7ms → 1.4ms per tick
v2.2.20 (2025-12-04)
Bug Fixes
- System onAdded callback fix: Fix issue where system
onAddedcallback was affected by registration order (#270)- System initialization now triggers
onAddedcallback for existing matching entities - Added
matchesEntity(entity)method to check if an entity matches the system's query condition - Scene added
notifySystemsEntityAdded/Removedmethods to ensure all systems receive entity change notifications
- System initialization now triggers
v2.2.19 (2025-12-03)
Features
-
System stable sorting: Add stable sorting support for systems (#257)
- Added
addOrderproperty for stable sorting whenupdateOrderis the same - Ensures systems with same priority execute in add order
- Added
-
Module configuration: Add
module.jsonconfiguration file (#256)- Define module ID, name, version and other metadata
- Support module dependency declaration and export configuration
v2.2.18 (2025-11-30)
Features
-
Advanced Performance Profiler: Implement new performance analysis SDK (#248)
ProfilerSDK: Unified performance analysis interface- Manual sampling markers (
beginSample/endSample) - Automatic scope measurement (
measure/measureAsync) - Call hierarchy tracking and call graph generation
- Counter and gauge support
- Manual sampling markers (
AdvancedProfilerCollector: Advanced performance data collector- Frame time statistics and history
- Memory snapshots and GC detection
- Long task detection (Long Task API)
- Performance report generation
DebugManager: Debug manager- Unified debug tool entry point
- Profiler integration
-
Property decorator enhancement: Extend
@serializedecorator functionality (#247)- Support more serialization option configurations
Improvements
-
EntitySystem test coverage: Add complete system test cases (#240)
- Cover entity query, cache, lifecycle scenarios
-
Matcher enhancement: Optimize matcher functionality (#240)
- Improved matching logic and performance
v2.2.17 (2025-11-28)
Features
-
ComponentRegistry enhancement: Add new component registry features (#244)
- Support registering and querying component types by name
- Add component mask caching for performance optimization
-
Serialization decorator improvements: Enhance
@serializedecorator (#244)- Support more flexible serialization configuration
- Improved nested object serialization
-
EntitySystem lifecycle: Add new system lifecycle methods (#244)
onSceneStart(): Called when scene startsonSceneStop(): Called when scene stops
v2.2.16 (2025-11-27)
Features
-
Component lifecycle: Add component lifecycle callback support (#237)
onDeserialized(): Called after component is loaded from scene file or snapshot restore, used to restore runtime data
-
ServiceContainer enhancement: Improve service container functionality (#237)
- Support
Symbol.for()pattern for service identifiers - Added
@InjectPropertyproperty injection decorator - Improved service resolution and lifecycle management
- Support
-
SceneSerializer enhancement: New scene serializer features (#237)
- Support serialization of more component types
- Improved deserialization error handling
-
Property decorator extension: Extend
@serializedecorator (#238)- Support
@range,@sliderand other editor hints - Support
@dropdown,@colorand other UI types - Support
@assetresource reference type
- Support
Improvements
- Matcher tests: Add Matcher test cases (#240)
- EntitySystem tests: Add complete entity system test coverage (#240)
Version Notes
- Major version: Breaking changes
- Minor version: New features (backward compatible)
- Patch version: Bug fixes and improvements