1. I optimized all those type creations/deletions out of my system weeks ago before the new version which used them ever made it's way into any of the hands of those who use it. They were only ever in when I first added the clipping code, and it was too slow that way so I had top optimize it before release.
Good good, tho I wouldn't have used arrays in the polygon type in the first place, take a test, you'll see putting banks into types or even adding a manualy linked list to it is infact faster when being deleted then a type with blitzArrays, it's rediculous how slow they are... (the creation time is not slow however, just the removal)
2. What's this Storm's Shadows you're talking about?
Storm Engine, the shadows are just a tiny bit of it, it's a full development solution for blitz that myself and shattered are currently working on. It offers more functionality then all the seperate blitz products for sale currently offer together and in a much more flexible package.
3. While my own tests did in fact show that deleting a type with an array in it was slower than deleting a regular type, I seem to recall my test showing that both were anything but lightning fast. But I won't deny that the difference may be great enough that you need not worry about it much if you avoid the use of arrays.
Run this, it should demonstrate my point, overhere it takes 1 millisec to free the 10000 normal types and 2480 milliseconds to free the ones with blitzArrays give it a go on your comp! :)
Type tenVariables Field a,b,c,d,e,f,g,h,i,j End Type Type blitzArray Field dummy[9] End Type Const testAmmount = 10000 Delay 500 time = MilliSecs() For i = 1 To testAmmount V.tenVariables = New tenVariables Next Print "Creation of tenVariables took: " + (MilliSecs() - time) Delay 500 time = MilliSecs() For j = 1 To testAmmount B.blitzArray = New blitzArray Next Print "Creation of blitzArray took: " + (MilliSecs() - time) Delay 500 time = MilliSecs() For V.tenVariables = Each tenVariables Delete V Next Print "Deleting of tenVariables took: " + (MilliSecs() - time) Delay 500 time = MilliSecs() For B.blitzArray = Each blitzArray Delete B Next Print "Deleting of blitzArray took: " + (MilliSecs() - time) WaitKey()