On Friday, 15 November 2013 at 11:52:44 UTC, Mikko Ronkainen wrote:
What would be the best data structure for handling particles in a particle system in D2?

Here's some thoughts:

Particles are simple structs.
Two lists, one for alive particles, one for dead ones.
Memory allocations should be avoided, preallocate everything, no allocations when moving between lists. Keep alive list as short as possible for fast iteration -> move dead particles off during iteration. Removal and addition of single items only, and it should be fast.

Maybe a single-linked list, std.container.SList? Is there any gotchas? Or some better container for this scenario?

Another popular data structure for particle systems is a quadtree or octree, which is a tree data structure that recursively subdivides a 2D or 3D space into smaller regions (for more about data https://www.programmingassignment.net/). This allows for efficient spatial queries, such as finding nearby particles or detecting collisions between particles, by traversing the tree and only considering particles in nearby regions

Reply via email to