Game Optimization (and Multi-core CPU utilization)


I know its still very early to talk about optimization at this stage, but I do hope its one of the higher priority for the developer and will be done properly when most of the Gameplay element is polished out.

UE4 is great for people like me rocking higher end hardware, but its also concerning to me that Developers rely too much on brute force from hardware rather than optimization (cough PUBG cough).

Speaking of PUBG and UE4, I do hope the game isn't like that which uses at MOST 4 cores 4 threads - which sucks for HEDT platform and people like me using Ryzen 6 cores and 8 cores. A game like this is very CPU intensive with lots of physics and destruction, as well as for 100+ FPS gaming.

Anyway, can't wait for Alpha, really hope I get selected 😃

I really hope they impliment this, as well as DirectX 12

@SovietSpaghetti UE4 supports dx12 quite fully now so it'd be possible. That said it really doesn't make much difference outside a few very specific use cases. I wouldn't expect a noticeable difference in a game like insurgency. It's kinda like the dx10 of this generation imo haha. Not that useful to most of us, but laying the ground work for the next version.

@Nekrosmas Multi-threading in games is interesting, because games often require processing to happen in a fixed and predictable order so systems don't break. A really oversimplified example of this is if you were to simulate firing of weapons on a thread separately to the thread where you update the hitbox positions based on animation, at any given instant the code could be testing a bullet hit against outdated or future collision data depending on which thread was running faster or had less work to do. Realistically this probably wouldn't be a big issue but just using it as an example to describe how multi-threading isn't always practical in game development.

It's super good for stuff that doesn't need to be accurate like big crunching of numbers (a good place to use it might be spawning loot in a pubg style game because it's ok if that happens in the background while people play the game).
Another great example of where it's practical is Rainbow six siege. That game has a really cool system where when you plant c4 it calculates the destruction on separate thread in the background so it's ready to all explode when the timer counts down etc and doesn't hold up the main game thread.

So yeah multi-threading is great, but it's not a matter of just separating the existing 4 threads out onto however many a pc has but instead taking advantage of extra threads when it's possible (which is rarely every tick of a game)

last edited by elliotgraytho

@sovietspaghetti But DX12 runs pretty terribly still, so why even do the work for it?

@mainfold These days anecdotally it's more on par with 11 as devs get their implementations sorted, but yeah in the pc space there isn't much benefit most of the time. No real user facing advantage generally for sure. Might happen anyway because of the xbox one version but we'll see.

@elliotgraytho until microsoft learn that they need to segment the versions and not have the XBone version and PC version being one and the same, it's gonna remain a difficult tool to optimize (when it's gotta have the bottom-end support for the api of two different platforms in one).

I wish they'd just fleshed out dx12 for PC only first and then adapted it for their console, but oh well, dx11.1 (or rather the dx11 with the dx11.1 sdk partch for windows 7 specifically) still runs the best