The surface problem, def is limiting. When you add textures, when you start to animate entities. The animation of entities, using boned animations, is a frame killer tbh. Try having a fair few animated models running around, 70 + onscreen surfaces, collisions, gameplay... etc It's very hard to manage.