Hey guys,
I’d really love to get some insight on what’s happening here from someone who understands the UE3 and game development a bit more (SD, maybe?). You see, for the last couple of months or so I’ve been suffering from what I thought was network lag, problems on the DB servers or other people’s internet connections. Playing with below-20 ping most of the time, and I’d still get regular stuttering and rubber-banding, and other characters teleporting for tiny distances, especially in CQC. It’s the CQC stutter that started to drive me mad - I thought, how the hell is it possible to aim, what’s wrong with the servers and how can other people cope with this problem? I’d be surprised I couldn’t reliably track heads in CQC, sometimes to a point where I’d wonder if my mouse isn’t working properly, testing it, looking for hardware problems. I never suspected that anything is wrong with the game engine per se as my frame rate would sit at constant 164-165 fps, max what my monitor can support. I’ve got a beefy PC with a 980ti, plenty of ram and super-quick SSD on PCI, and a G-Sync monitor.
Here’s the interesting thing - today I had an idea that it might not be a network related problem - that instead it might be a game engine issue. So I started playing around with settings and solved the problem! Well, kind of, the end result is a bit silly, but at least there is no stutter in CQC finally! Solution - turning the thread sinc back on (drops the frame rate massively) and lowering all graphics settings. Textures and bits are on medium, and everything else is off. Everything! No high quality textures, no lighting, no shadows, no decals, nothing. Game looks a lot blander, the frame rate creeps barely above 100, sometimes dropping to 60-70, on a fricking 980ti, with 20% of RAM and 10% of CPU used during gameplay but… there is no stutter!
So can someone smarter than me explain what might be happening here? Is the game so terribly optimised and the thread sync is a problematic option? I understand how it works in theory, but how can the frames be at 165 with it while the game is still stuttering, and then no stutter with it off, but much lower framerate?
Stuttering, with high FPS on high end PC
Oh, well… I thought this place might be busier than the r/dirtybomb, but it’s not.
Don’t worry, the problem of hardware not being utilized properly has existed for ages already. They promised optimizations 2 years ago, they still haven’t happened.
Just saying, don’t have your hopes up.
Thanks. I’ve done some more testing with different settings etc. What seems to be happening are FPS spikes. For less than a second or so frames in CQC and some other areas drop by 20-40 fps! And that causes the stutter. Playing with maxsmoothframerate and other settings doesn’t help. I’ve capped my frames and monitor at 144 now, and where previously frames dropped from 165 to about 130-140, not it drops from 144 to about 100-120. Strange, so even if I lower the fps ceiling and in theory leave more headroom, I still get the spikes and that causes the micro-stutter. What a shame… 
If you’re rubberbanding/stuttering it’s definitely “network lag” but the source of it shouldn’t be assumed to be someone else’s connection if you’re the one experiencing these things. When you see other players warp (typically it’s a certain player out of all the players and usually an opponent since you don’t focus much on watching teammates) that means it’s them*.
- By them I don’t necessarily mean it’s their connection at their house because the real issue could lie anywhere in-between them and the server.
The monitor supports a non-quantifiable amount of frames per second. The 165 is the refresh rate, not an “FPS limit”. Nice monitor btw, know exactly which one that is.
Your SSD won’t touch your FPS at all and a 980Ti is definitely overkill for DB, especially considering it’s mostly dependent on CPU instead of GPU.
[quote=“Mr_Klein;29141”]No high quality textures, no lighting, no shadows, no decals, nothing. Game looks a lot blander, the frame rate creeps barely above 100, sometimes dropping to 60-70, on a fricking 980ti, with 20% of RAM and 10% of CPU used during gameplay but… there is no stutter!
So can someone smarter than me explain what might be happening here? Is the game so terribly optimised and the thread sync is a problematic option? I understand how it works in theory, but how can the frames be at 165 with it while the game is still stuttering, and then no stutter with it off, but much lower framerate?[/quote]
You GPU has very little to do with the FPS. You could probably get the same FPS using a GTX285, GTX480, GTX650 Ti (or Boost edition).
I recommend you try going into the NVIDIA panel and setting up a profile under “3D Settings” for Dirty Bomb where you set “maximum pre-rendered frames” to “1”.
UE3’s two main threads are the game and render threads. Type “stat unit” in the console to open some information.
The render thread is for things like shadows, particles, smoke, etc… and game is for things like hit registration, movement and shooting. The game thread knows where you’re facing so it instructs the render thread to render things on your screen based on where the game thread thinks you’re facing or what actions it thinks you’re doing.
Usually at the end of a frame the game synchronizes this information between the game and render threads because it’s more efficient to do so. I guess I would compare it to Nagle’s Algorithm. It wants to use less total communications instead of sending things immediately.
SD changed “One Frame Thread Lag” to “Thread Sync” and the whole thing was a bit of a messed up change because if I recall correctly they claimed that the options were reversed but they weren’t, atleast when that patch came out. I think they’ve fixed it now but to be honest I’ve totally lost track after all the confusion that occured when they changed it. I also don’t know why they didn’t just leave it as “One Frame Thread Lag” to keep UE3 things consistent across games and help people who are familiar with this setting determine what they want to set it to. People aren’t going to understand what “Thread Sync” is anyways if they are the types of people who don’t know what the former name of it was for. This actually only makes things WORSE as even I, someone with a good amount of knowledge on technological things in general, lack that much information about Unreal Engine and had to google “One Frame Thread Lag” back when it was still called this. If you look up “Thread Sync” it’s going to be tough to find the proper information.
So as far as I can tell, if you have “Thread Sync” disabled that means the game may have to “wait” for a moment (very small but enough to increase input lag) to wait on the render thread. This setting being off should improve your FPS at the same time.
If the setting is enabled it should decrease input lag at the cost of FPS because it’s making the game “save” the current thread and queue the next thread in preparation so there’s no delay waiting on threads.
I play with Thread Sync “Off” and never have any issues with input lag. I prefer the higher FPS and if there is any difference with the input lag it must be a placebo amount because I can’t even notice anything being different. I think that setting may only be good set to “on” on systems that have issues.