degac: OK thanks, so you aren't iterating the whole array just a part of it. Problem is if the particles are being killed off randomly you might still need to iterate the whole list I guess.
Leadwerks: So go totally array-based for the all the particle properties? I guess you are suggesting that because you've been using non-OOP Blitz3D for a while. It would undoubtedly be faster though. For an area of a game that needs to be so highly optimised, perhaps it's OK to go non-OOP. That's how I did my particles for my BlitzPlus games (and BBasic2, and Assembly etc)
dmaz: Thanks for the link. That's an interesting approach, it has the advantages of list management but using pre-created types in a pool, so addresses one of my original issues.
So in conclusion so far, it seems that there isn't any neat obvious solution I've been missing right?
Leadwerks: So go totally array-based for the all the particle properties? I guess you are suggesting that because you've been using non-OOP Blitz3D for a while. It would undoubtedly be faster though. For an area of a game that needs to be so highly optimised, perhaps it's OK to go non-OOP. That's how I did my particles for my BlitzPlus games (and BBasic2, and Assembly etc)
dmaz: Thanks for the link. That's an interesting approach, it has the advantages of list management but using pre-created types in a pool, so addresses one of my original issues.
So in conclusion so far, it seems that there isn't any neat obvious solution I've been missing right?