Extending EvoEngine

June 16, 2026 ยท View on GitHub

Back to README

Use the smallest extension point that matches the feature.

NeedAdd
Entity behavior with lifecycle hooks, editor UI, serialization, or asset referencesPrivate component
High-volume simulation data with chunked ECS iterationData component
Scene-level behavior independent of one component instanceSystem
Reusable project data that should be referenced and serializedAsset
Global application behavior, UI, render hooks, or input hooksLayer
Build-time module outside the SDKService
Loadable/reloadable domain featureRuntime package
Scripted workflow or automation entry pointPython binding

Components

Use data components when memory layout and parallel iteration matter most. Use private components when a feature needs editor UI, lifecycle methods, polymorphism, serialized state, or asset references.

Systems

Add a system when behavior should run over a scene independently of one component instance. Systems can operate on scene state and component queries and are useful for simulation or global update logic.

Assets

Add an asset when data should be reusable, referenceable, and stored in projects. Persistent assets need type registration, serialization, editor inspection when useful, and asset-reference collection/relink support when they store asset or entity handles.

Layers

Add a layer when behavior is global to the application or needs top-level UI, render, lifecycle, or input hooks.

Services

Add a Service when the feature is a build-time dependency and should remain outside the SDK. Services live under EvoEngine_Services and are documented in EvoEngine_Services/README.md.

Runtime Packages

Add a runtime package when the feature should be loaded, unloaded, rebuilt, or reloaded independently from a running app. Packages live under EvoEngine_Packages and are documented in runtime-packages.md and EvoEngine_Packages/README.md.

Python Bindings

Add a Python binding when a workflow should run from scripts or external automation. See python-bindings.md.