Hi chanfort. Thanks for the detailed reply. The 2 main origins of overhead I believe are the many sprite manager rearrangements and the kdtree search functions. As I understand you have a different material for each angle for each pose? Perhaps all poses for all angles could fit in one sprite atlas? Also perhaps more then one spritemanager should be used(?) because the sprite manager has to iterate everytime thousands of sprites. The kdtree function could be written in c++ and make an optimized lib. I will try it and see if there is some difference. About the formations: 1. They are very useful for any kind of strategic game. 2. You could treat each formation as a unit and so the battle search functions would eat up a lot less resources. When needed local (inside the formation) searches can be made.