Arch
                                
                                
                                
                                    Arch copied to clipboard
                            
                            
                            
                        A high-performance C# based Archetype & Chunks Entity Component System (ECS) with optional multithreading.
If a world is destroyed and then "destroyed" again after another world has replaced it (occupying the unused world ID), the second world won't actually be able to create entities...
When calling the `public void RemoveRange(Entity entity, Span types)` method with an empty span it will move the entity slot even though the size doesn't change. This throws no exception....
I found that World.WorldSize can have unintended value when create and destroy World multi-threaded. Simply use Interlocked methods to solve this problem. Also unit test added: MultiThreadTest.MultiThreadedCreateAndDestroy Sometimes test failed...
var cmd = new CommandBuffer(); var e = cmd.Create(new ComponentType[..]); var er = e.Reference(); // Cause out of bounds error
I want a convenient way to duplicate entities. At the moment you need to call GetAllComponents(), which is unsatisfying. This implementation is faster, and could be made more efficient in...
This is in 1.3.0-alpha. Situation is running unit tests, so likely a concurrency issue where multiple threads are (indirectly) registering component types at the some time. I would suggest ComponentRegistry.Add...
Example if you have 2k components each 2b, that is 2 chunks. The query will only run 2 jobs, for both chunks. regardless if you have 24 cores. Solution: split...
Example this works ``` [Query(Parallel = false)] private void SomeQuery(in Entity entity) { this.somethng } ``` but this doesnt ``` [Query(Parallel = true)] private void SomeQuery(in Entity entity) { this.somethng...