Duh
So after yesterday’s genius level discovery that rendering a large number of large textures can decrease the FPS (who knew!?), I thought there must be some other rare and hidden wisdom out there to optimise things like collision.
Lo and behold I came across quadtrees and added them to my collision system. I did previously have a basic method to check if objects were close enough to each other before checking them for collision, but nothing as Mondrian as quad trees.
I’m also a big fan and user of LINQ in my day job, but I’m going to remove it from some of my systems and see what sort of improvements I can get.