Large performance difference between running in new window vs standalone game

I’m seeing a major performance difference between running in a window launched from the editor vs. running a project as a standalone game.

My project gets the following numbers (using the STAT FPS console command):

Window launched from editor:
~106 fps
~9.6 ms

Standalone game:
~62 fps
~16.13 ms

But it’s clearly not just my project. With the Blueprint Example project (the one with the wood floors and trees and security cameras), I get the following right when I begin running that level:

Window launched from editor:
~90 fps
~11 ms

Standalone game:
~49 fps
~19 ms

Why would this be? Is this a bug? Is it the intended behavior? It seems like maybe the game is rendering twice when running as a standalone game?

Could this be related to the Slate UI flickering I’m experiencing ONLY in standalone game mode ( https://rocket.unrealengine.com/questions/11625/slate-odd-widget-flickering-when-running-as-standa.html )?

Also, is there any way to get performance more like the in-editor window when running it as a standalone game?

Finally, I am trying to do some initial graphics benchmarking to inform our art creation process. Should I be using the window in the editor for this, or the standalone game? Normally I’d want to use the latter but this really seems like a bug to me, and if so, it will massively skew our benchmarking results.

I have actually noticed this behavior as well, there seems to be some extra elements that get loaded in the editor mode that accelerate performance that are not getting loaded in the standalone game.

I was considering making a post myself about this but will instead 1-up your thread :slight_smile:

Rama

PS: In the context of my game the way I observed this accelerated performance was with the DX11 technology of tessellation for my rainbow armor system, I noticed in the editor that the tessellation effect ran much smoother.

I do not know if the issue is simply unbounded frame rate,

I will see if I can figure out how to test… :slight_smile:

#Your Question

“Also, is there any way to get performance more like the in-editor window when running it as a standalone game?”

I tested Spoof’s idea by adding these lines to my defaultengine.ini

[/Script/UnrealEd.EditorEngine]
bSmoothFrameRate=false
MinSmoothedFrameRate=5
MaxSmoothedFrameRate=120

and it did lead to the same feeling of performance improvement that I experienced in the Editor!

So yay for Spoof!

Argh. It led to a " feeling of performance improvement "?

Did you use the STAT FPS console command to get any hard data?

I did, and these .ini file changes made zero difference in my numbers.

EDIT: It worked after trying Spoof’s solution below.

I’d be curious to see if you get the same results that I do. Try taking some of the UE4 samples, launch them in each of those two ways, and in each case, hit ‘~’ and type STAT FPS and write down the numbers.

With editor:

Standalone Game launched while realtime viewport…

disabled: 62 fps (capped)

enabled: 36 fps

New Window launched with realtime viewport…

disabled: 70+ fps

enabled: 70+ fps


Without editor:

Standalone Game launched from shortcut or commandline…

normal settings: 62 fps (capped)

uncapped settings: 75 fps


A standalone game launched from the editor creates a second process visible in windows task manager, which competes for resources with the editor. If the editor is also running a viewport in real time mode then performance is literally halved.

When a game is launched in a new window the editor automatically disables realtime update of viewports, so you get near full performance while in editor.

A standalone game launched from a shortcut or other commandline without the editor running will give maximum performance equivalent to the user experience (depending on build settings). However, it is affected by the config settings for frame rate smoothing, which caps FPS at 62 by default.

Rama’s posted settings will uncap this for the editor, and there is also a second set for true standalone under the alternative heading [/Script/Engine.Engine] that you can apply.

I was very surprised to see it since I was convinced we were barking up the wrong tree, but this did actually fix it.

Thanks, Spoof!

Once I copied the settings to [/Script/Engine.Engine] and ran it outside of the editor using “Launch Game” from my .uproject, I got frame rates similar to the ones I get when running in “New Window” mode.

Unfortunately, it didn’t fix the UI flickering issue, but now I can at least do some serious graphics benchmarking.

In the first scenario, that 62 FPS would appear to be the frame rate smoothing cap as the default for max frame rate is set to 62. When running from the editor it’s probably unbound.

No, that can’t be it. That would not explain the difference in rendering time, which is also substantial.

Reading your thread on the slate UI flicker, you say you run ‘standalone’ with the editor still open? That’d be like running two instances of the game.

this problem is still happening, and I tried to disable the realtime, but the “launch Mode” “standalone game mode” still has a very low fps in comparision with the editor one, also, in the editor it runs smoothly, but in the Launch Mode it is stuttring a little…
How can I fix that?
Thanks

exactly the Same Problem.

Going to dig this out since i ran into the same problem.

Made a small endless runner in 2D. There are around 35 actors on screen at a time and half of them is moving.
Most of them are spawned from one parent actor which pass a “movement speed” float var through all spawned actors.

In viewport this works like a charm but in launch mode or even in packaged build the float var seems to get rounded down and everything moves slower. This leads to unexpected behavior during the game like overlapping sprites and flickering.

Could go along with this and calculate this kind of delay into my actors but since i cannot really test it without launching it this is going to be a big try and error party.

Some additional infos:
ue4 version: 4.18.2
20 actors moving at a time
~15 stationary actors
no light
2D only