Skip to content

v0.6.0

UI System Overhaul

  • Migrated UI layout computation from TypeScript to C++/WASM for significantly improved performance
  • Added new UI components: ProgressBar, Dropdown, Toggle, and quick-create templates
  • Rewrote UI framework architecture with extracted walkParentChain helper for cleaner hierarchy traversal
  • Enhanced layout system with proper anchor mode handling and slider drag fixes
  • Editor schemas auto-generated for all UI components

ECS Core Enhancements

Unified Transform

  • Merged LocalTransform and WorldTransform into a single Transform component
  • Simplifies the API — no more juggling two separate transform types

Generational Handles

  • Rebuilt ECS registry with flat vector pools and generational entity handles
  • Eliminates stale entity reference bugs and improves cache locality
  • Significant iteration performance improvement for large entity counts

Change Detection & Events

  • Added ECS change detection system for tracking component modifications
  • New event system for decoupled entity-to-entity and system-to-system communication

Live-Edit Play Mode

  • Full live editing of entity properties while the game is running
  • Changes in the editor are reflected in real-time in the running game
  • Shared Scene/Game view using an offscreen WebGL canvas (no more iframe duplication)
  • Replaced RuntimeSyncService with lightweight inline renderer sync

Asset Importer Pipeline

  • New asset importer system with per-platform override support
  • Define platform-specific asset processing rules (e.g., different texture compression for WeChat vs Playable)
  • Integrated into the existing build pipeline

Multi-Window Support

  • Detach any editor panel into a separate OS window
  • Independent window lifecycle with full panel functionality preserved
  • Panels can be re-docked back into the main window

Editor Improvements

  • Compound entity creation (e.g., Button, Slider) auto-selects the root entity in hierarchy
  • Per-component enabled/disabled toggle in Inspector
  • Live preview toggle in Scene View settings
  • Scene View zoom-to-cursor fix and overlay scale correction
  • Removed addressable groups from bottom dock panel
  • Improved dropdown placeholder rendering and inspector schema handling

Performance

  • ECS Registry: Flat vector pools replace sparse sets, ~2x faster iteration on views
  • TransformSystem: Fused double iteration into single pass with nameLen bounds check
  • Root Transform: Fast path skips matrix multiplication for root entities
  • GL Flush: Removed redundant GL state calls in render flush

SDK & Runtime

  • Enhanced World.query() API with improved ergonomics
  • App.tick() lifecycle improvements and scene asset lifecycle management
  • Component registry consolidation and DRY scene loading
  • System ordering fixes and toggle performance improvement (O(n²) → O(n))

Platform Fixes

  • WeChat MiniGame: Use wx.getSystemInfoSync for correct safe area insets
  • Playable Ads: Resolved entity reference warnings in builds and prefab instantiation
  • Native: Guard stencil GL calls with ES_PLATFORM_WEB for native build compatibility

Bug Fixes

  • Fix text disappearing after entity creation due to C++ entity ID recycling
  • Fix UIRect layout for mixed anchor modes
  • Fix zero UIRect size when fill anchors collapse at slider minimum
  • Fix slider fill position and progress bar layout sync
  • Fix progress bar fill positioning and UIRect move gizmo support
  • Fix input touch ID tracking and spine cache key collision
  • Fix dropdown placeholder, color NaN values, and texture handle guards
  • Fix renderer correctness issues and reduce draw call overhead

Other

  • Upgraded spine-runtimes to 4.2.104
  • Added SDK integration tests for UI, layout, slider, and app tick
  • Updated eht.py codegen for vector types and dual output