DOTS Layer¶
Burstable code is required. Jobified code is encouraged.
Data Modeling: DOTS Compatible¶
Data used in this layer are DOTS-compatible
. They are:
- Stored in struct
- Blitable
- Blob assets
- NOT in Native Containers: this should only be used in Systems
Data Processing: Systems¶
Purely done in System
- Only Burstable System (ISystem
)
- OnUpdate must be Burstable
- OnCreate is preferrably Burstable. Reflective code is sometime useful to create more expansive queries, such as getting all components which implement a specific interface. This will make it Non-Burstable.
- Retrieving data using only Query
- Structural changes: prefer query-based over per-entity API
- Data processing preferrably in Jobs
- Avoid Command Buffer if possible
Visibility¶
Components¶
- Public if intended to be used in other assemblies
- Internal if only used by its own systems
Systems¶
- Must be internal
- If system ordering is required from other assemblies, a public ``ComponentSystemGroup`` must be created
- If this ``ComponentSystemGroup`` is used in many assemblies for system ordering. It could be promoted to Stratkit.Entities.Core
IDotsModule¶
- Implement this interface to expose internal systems for system creation