Skip to content

Rewrite ecs core - #74

Merged
SpectralDragon merged 83 commits into
mainfrom
feature/build_opt
Dec 9, 2025
Merged

SpectralDragon merged 83 commits into
mainfrom
feature/build_opt

Conversation

@SpectralDragon

@SpectralDragon SpectralDragon commented Jun 14, 2025 •

Copy link
Copy Markdown
Contributor

Update logic for storing and accessing components


Note

Massive refactor introducing chunk-based ECS with async queries/systems, revamped schedulers/resources, updated render graph/pipelines and Metal backend, reworked input/UI, and added extensive tests.

  • ECS Core:
    • Introduce chunk-based storage (Chunks, Chunk, ComponentLayout, BlobArray, SparseSet) and new Archetype model with edges.
    • Revamp queries and system params (WorldQueryTarget, QueryTarget, FilterQuery, SystemParameter, Ref, Res/ResMut), change detection via Tick.
    • Replace executors with protocol + single-threaded executor; simplify SystemsGraph; add System async update.
    • Overhaul World (entities/records, command queue, resources API, extract/spawn APIs, change tracking).
  • Schedulers:
    • Add/rename stages (extract, prepare, render, renderRunner, fixedUpdate removal/changes); new DefaultSchedulerRunner; async stage execution.
  • Rendering:
    • New command encoder layer (CommandBuffer, RenderCommandEncoder, Blit*); refactor Metal backend (swapchain/drawables, windows), remove old draw list paths.
    • Render graph becomes value type; new nodes for 2D (Main2DRenderNode, UpscaleNode); introduce pipeline configurators/cache (RenderPipelines).
    • Camera/render target rework (RenderViewTarget, viewport/texture handling); window surfaces management in render world.
  • Input/UI:
    • Input becomes Resource struct with rumble engine, event clearing system; update Apple gamepad manager to emit via callback.
    • UI systems updated; add UIRender scaffolding and window management resources.
  • Plugins:
    • Migrate plugins (Physics, RenderWorld, Sprite, Text, Camera, Tilemap, etc.) to new APIs/schedulers.
  • Utilities:
    • Add BlobArray, SparseSet, UnsafeBox, fixed-array/set helpers, hashing/util extensions.
  • Tests:
    • Add comprehensive ECS/storage/scheduler/world tests and utils tests (SparseArray/Set, hashing).

Written by Cursor Bugbot for commit 0a8887e. This will update automatically on new commits. Configure here.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant