Svelto.Tasks 2.0 is a C# library designed for multithreaded, allocation-free task execution, ideal for game development. It runs coroutines in both serial and parallel forms, providing developers with fine control over task execution, cancellation, and profiling. The library is platform-agnostic, supporting various C# environments while integrating with .NET tasks and Unity Jobs.Read More →

Previously, in Svelto.ECS, it was possible to query entity components directly as a managed array, which would have resulted in the fastest way to iterate over the components in c#. Since Svelto.ECS 3.0 and because now the framework supports natively native memory as well, I decided to remove this possibilityRead More →

I had two interesting problems to solve during the development of Svelto.ECS, which in short are: Set an implemented property of a struct, but only when the struct implements a specific interface, from a generic method and without casting the struct to the interface Assign an object to a fieldRead More →

A recent tweet asking about how to achieve zero allocation code in Unity inspired me to write a short piece about the importance of memory allocation in c# and game development. C# wasn’t initially designed for game development, but today, thanks to Unity, ECS and Burst, we can achieve greatRead More →

Finally I found the time to play with unmanaged arrays and Memory<T>/Span<T>. In order to investigate possible improvements of the data structures used by Svelto.ECS, I wanted to know what the fastest way to set elements in a preallocated array could be. Using the very powerful BenchmarkDotNet and with theRead More →