← Changelog
Daily2026-07-12

Engine Tier 2 runtime + Single-realm editor + Gateway asset/component surface + Asset-resident plugins

The editor completes its single-realm migration — all legacy iframe protocol projections, VAG telemetry bridges, and dead EditSurface hosts are retired, replaced by a typed PanelBridge and shared dock layout. The Gateway API gains a full asset and component read surface, converged import/delete, and asset-resident game plugins that load their components in Edit and systems in Play. Active-world query routing, scene-asset placement, and a persistent DEV diagnostics bridge round out the release.

Single-realm editor: legacy protocol retirement

The editor completes its single-realm migration. All communication that previously tunnelled through legacy iframe projections is now handled in-process:

  • Typed PanelBridge replaces VAG_ASSETS_CHANGED and all anonymous broadcast messages
  • Edit runtime VAG telemetry bridge removed — asset change notifications now flow through the typed channel
  • EditSurface iframe host retired — VAG_SPAWN_ENTITY and the associated dead edit preview-control receiver are removed
  • Legacy surface terminology cleaned up across the entire editor surface
  • Shared dock layout injected across all editor panels, replacing per-panel layout duplication

Gateway: asset and component read surface

The editor Gateway API (the AI agent's programmatic door into the editor) gains major new capabilities:

  • Asset read surface: list and inspect catalogued assets by type, path, and GUID
  • Asset import + delete: converged on one canonical door — importAsset / deleteAsset
  • Component read surface: describeComponent and listComponents — AI agents can now enumerate and inspect ECS components on any entity
  • addSceneAssetToScene operation: place a catalogued scene GUID directly into the active scene
  • Active-world query routing: queries now follow activeWorld, so play-world reads work correctly through the gateway door during Play mode
  • argsSchema enforcement on all defined document operations for safer agent dispatch
  • Query serialization fix: variable array<T> fields are now serialized as an enumerable list, not a count

Asset-resident game plugins

Plugins can now ship their logic inside a game asset directory. Components are loaded in Edit mode for authoring, while systems are loaded in Play mode for runtime execution. This removes the requirement to pre-register all plugin logic in the editor bundle.

DEV diagnostics bridge: persistent through Play

The in-process editor diagnostics bridge (DEV bridge) now stays alive during Play mode, enabling continuous editor diagnostics without interruption when the game starts or stops.

Engine: Tier 2 runtime decomposition

The engine runtime is split into three independent subsystems:

  • assets-runtime: asset loading, registry, and lifecycle management decoupled from the core render loop
  • picking: GPU-backed entity picking as a standalone subsystem
  • graphics-extras: post-process effects, HDR resolve, and graphics utilities extracted from the monolithic renderer

Engine: component batch vec-collapse + field-transient

ECS component fields across Lights, Camera, Glyph, Tilemap, and Collider components have been updated with:

  • Batch vec-collapse: vector fields are stored and transmitted as compact arrays, reducing serialization overhead
  • Field-level transient: per-field transient annotations prevent ephemeral runtime state from being persisted to disk

Transform serialization also gains vec fields and field-level transient support.

Engine: instantiateSceneFlat

A new instantiateSceneFlat API opens a scene without inserting a synthetic hierarchy root entity. This matches how scenes authored in the editor appear — entities appear at the top of the scene graph exactly as placed.

Engine: post-process resize fix

Post-process bind groups are now keyed on TextureView identity rather than texture dimensions. Resizing the viewport no longer leaves stale bind groups from the previous resolution, eliminating post-process corruption on window resize.

Engine: CSM cross-world fix

Directional cascade shadow maps (CSM) are recomputed at the merge layer when a cross-world camera + light configuration is detected, fixing shadow rendering in split-world scenes.

Engine: RHI debug idle fast-path

FORGEAX_ENGINE_RHI_DEBUG=1 now has a near-zero cost idle path when no capture is in progress. The debug instrumentation can be left enabled without affecting frame rate during normal gameplay.

Engine: sprite frustum cull fix

Restored BUILTIN_QUAD AABB and M2.5 dispatch pairing, fixing sprites being incorrectly culled when partially outside the frustum.

Engine: FBX loader fix

The fbx-wasm package now ships as a .tar.gz that includes the Emscripten-generated .mjs glue file, fixing FBX import failures caused by the missing loader module.

Fixes

  • Viewport: prevent render-system-no-camera false positive on game create
  • Query routing: play-world reads correctly route through the active world gateway

← All daily updates