@vanifica said in Questions about performance:
I would be totally into this. I guess I assumed LOUD worked by graphical changes, but I never tested it extensively since it didn't have an online client as far as I could tell.
They claim 5000 units without any simspeed issues IIRC. That does imply there's some "magic bullet" somewhere in the code they figured out?
Graphics changes do help, but are quite limiting. There is a separate render thread that takes care of most of the rendering. Only emitters have a (relative small) impact on the sim.
LOUD can run a significant larger number of units than FAF while staying at +0 or higher. They do this by applying the same techniques, everywhere. If you look at their repository you'll see this. Everything is written with maximum performance in the back of their head.
That means there is no magic bullet - as I did for the projectiles, you have to go over all the files (including the base classes such as seraphimprojectiles.lua, defaultprojectiles.lua, and projectiles.lua) and apply the same techniques everywhere. And that just takes time.
In the end 95% of the work is 'grunt work', in terms of having to go over hundreds of units / weapon files and looking at the logic, making small improvements performance-wise. Only very little of the work is difficult and abstract - there are some examples like specializing code (moving it down a class so that not all units call StopRocking() by default, instead only units that actually do Rocking (hover units) will call that in their own super class). Another example is the impact of the score(board) / hotstats.
If you're interested in helping, I can help get you started.