I always follow the KISS method, and in my case, the “stupid” part really applies! lol
For building roads, or race tracks, well it’s a god send, it keeps me from having to model each curve, etc. I have yet to finish the “mine field”. I.e. lay down say 250 control points, and then tell it, that you wish to fire, only 50 particle systems (depending on how “heavy” the particle system is of course), at any one time, but either pick the control points randomly, or “chase” someone through the mine field. There is a lot of things to do with particle systems that I have not got implemented yet.
A spline mesh component cannot be instanced, so that can hurt on roads, a lot of the other stuff, that it does, can all be instanced, hence even if it’s 500 trees, it boils down to one draw call for them. And I still have the luxury of individual placement once it has randomly built the forest
What I found that was really killer, and I found this when doing the stairs. Is that shadowing, is a performance killer. make a stair system of 200 stairs, and turn on shadowing, and watch performance drop through the floor. Turn off shadowing, and it rebounds right back. I wrote up a blog post on it, because it was so dramatic. So when I’m talking to folks, and they are grumping about performance, i’m always like, “and how much shadowing are you doing?”