This is for anyone that may find this interesting and wasn’t aware this was still available (it was all removed from microsofts website)
Shawn Hargreaves (was one of the developers of xna) has kept all his blogging on xna Shawn Hargreaves Blog Index
One of the interesting things I picked up was using spritebatch for drawing layers as long as each layer comes from 1 texture.
Spritebatch only does that actual draw when spritebatch.end is called (if immediate is selected or if the texture is changed)
So rather than using spritebatch sorting (which is slow and uses array.sort) use multiple spritebatches before calling all your draws and end them in the correct order.
Batchlayer0.end
Batchlayer1.end
Batchlayer2.end
However im not sure if the batch gets drawn if the batch gets too big before end is called
Those articles are great, I had forgotten what the links were. They used to be hosted by Microsoft but at some point they went offline and could only be found with the wayback machine.