Indeed, I don't know how the devs could stand it, unless they are all playing with rendering interpolation disabled as a matter of course. The hilarious thing is how minimal the strafe tilting effect actually is in this game anyway.Graf Zahl wrote:That gem ranks high among the things that would ruin any game for me...
The actor culling seems like a good idea in theory, but the respawning of culled actors is too much as soon as the radius for that exceeds the most basic level. A throttle for respawning actors seems like an obvious solution, unless constantly spawning actors is just a bad idea in general... Very glad to have the nuclear option for this in my arsenal until it's figured out.
A separate issue is that some of the models used in these maps take too long to load, to the point where some of them get in the way of even maintaining 35fps. I'm interested if my idea of quickly scaling up the mod's LOD system to encompass the whole map on level start, and then ramping it back down would work to in effect preload all the models. Or maybe there is even a simpler way to accomplish this already...
Well anyway, for anyone having trouble with this mod's performance even though you have a decent rig I suggest the following:
1) Use Vulkan
2) Accept that 60fps is probably the sweet spot for this mod and cap here
3) Nuke culling: scripts\actors\effects\effects.zs lines 204-242
4) Nuke tilt: scripts\items\tilt.zs lines 222-248
5) Create an alias to toggle the scenery LOD between your preferred level, and 1024 (or lower), so for the maps that just went completely overboard with models you can just quickly hit a key to recover. For example:
alias lodtoggle1 "boa_scenelod 1024; bind z lodtoggle2"
alias lodtoggle2 "boa_scenelod 8192; bind z lodtoggle1"
bind z "lodtoggle1"
Temporarily reducing scenery LOD let me keep 60fps on that crazy zombie city zone of c3m0 for instance.
Keep in mind, the script edits may only apply to the initial c3 release package.
While still not perfect due to the aforementioned model loading issue, the difference between this and the stock config is night and day for me. Hopefully it can help someone else out.
EDIT/ If you need even more emergency performance, add the other LOD types to your lodtoggle, starting with boa_treeslod. On my system, scenery seems to be the real killer so far, but I can imagine adding at least trees to the stack could be helpful for some lesser systems.
EDIT/ And please note, the culling nuke is only meant for the very specific use case i've outlined: high end systems targeting 60fps. In this specific use case, the current culling system does more harm than good in my experience. Bypassing the culling system on medium and low end spec will probably make things even worse, is my guess. The tilt nuke should benefit everyone, except those who have rendering interpolation disabled, in which case the problem is already solved.
EDIT/ And finally a note for the devs: I suggest making the boa_strafetilt cvar actually bypass execution of the script, instead of just removing the visual effect. Actually just nuke it from orbit and get rid of it altogether, but failing that, at least make it possible to bypass, put a note in the game saying it should only be used with interpolation disabled, etc. But honestly, why even have it at that point? The effect is so laughably miniscule the way it's implemented anyway. I was afraid maybe it was being used for the flinch too, and I was gonna be forced to cheat, but it didn't even affect that, so... And regarding my concerns with the current culling system, it comes down to what kind of gamer you are and how you perceive performance. Do you run uncapped and look at peaks and averages and want those as high as possible at any expense? Well then the current system is probably doing some good in this regard. However if you're the type to pick a target you think is going to be regularly achievable, and want to minimize anything which will cause you to miss your target (any individual frame time, not average FPS), the current system has some problems, because on a high end system you can't even run capped at 35fps without massive actor respawn glut which happens in some areas causing you to miss your target. Of course it's not the only thing doing this (the killer model loading), but every little bit helps. But please, don't view this as me crapping all over your hard work. I really appreciate this mod and love it very much, which is the only reason I've been so concerned with getting it running smoothly. Thank you to everyone who worked on this, it's really awesome! Like seriously.
