Resolution bug (BGE/UPBGE)

Hello!
There’s this one bug in BGE, that has been bothering me for a while. I don’t mind other bugs:p, as I’ve found reasonable workarounds. But this one is so essential, it even got me thinking of migrating into other engine. Here is the bug: When in fullscreen mode, the set resolution is either misused or ignored(desktop checkbox), with latter being the only way to avoid horrible stretching.

The intuitive behaviour would be, that the set resolution is used for framebuffer so it could be fit into the window in various(good looking) ways, with possibility to choose filtering(nearest,bilinear…). Window resizing(including fullscreen) should not change the set resolution, unless it’s specified(extend). This would allow performance improvement with smaller resolutions, while keeping the intimate immersion, that is only possible with fullscreen.

Of course the appearance of this could be faked easily with a 2d filter, but this needs even more processing, just to discard most of the render. Alternatively, this behaviour can be faked with renderToTexture, which I’ve successfully done. but there’s no huge performance improvement expected with this method either, because full-resolution rendering of an empty frame is inevitable. One would expect, that an empty frame has a negligible cost, but that’s not the case with huge display resolutions.

To me, setting a resolution of a game seems like a basic functionality to expect from a game engine, so this problem makes me doubt in BGE, although, in other aspects, I’m quite pleased with it. I’ve been experimenting with BGE for few years now, and I’ve certainly started to care about it. I would prefer, if this gets fixed in vanilla BGE, but at this point, it seems unlikely. Luckily there’s hope in UPBGE, to which I’m willing to migrate. I’m yet to learn necessary C++, to help with coding, so for now, if there’s anyone capable of fixing this, please consider doing this. Or maybe suggest some other soulution.

Any thoughts are welcome really.

These are the settings, that need to be thought about:

The problem I get is that fullscreen letterbox mode should cut off the edges of the screen not the top and bottom if the monitor is widescreen and the proposed resolution isn’t. If I use a 640x480 resolution on my 1920x1080 monitor I get a really stretched picture in the center of the screen. Any strangely I get the exact same image if I specify a 480x640 resolution…


This is the “print screen” result of a fullscreen 640x480 resolution on my widescreen monitor.
You see the problem?

Yes. And you’ll probably see the letterbox edges even if you set your resolution 1920x1080, which is the exact resolution of your monitor. This should remove the edges, but it does not. Not with my 1680x1050 monitor anyway.
Screenshot of letterbox, using native resolution:


Clearly some calculation is off.

The embedded option needs to be set as the render resolution.
the stand alone resolution is getting used to set the right screen resolution/ratio.

to get rid of the black edges, set embedded resolution to what you like/need/have or hit the extend option, not letterbox.

Extend doesn’t work for me in fullscreen (all stretched) but scale gives a good result.

hmm, on my 1650x1080 and 1920x1200 screen same result:
the low resolution gives a nice old arcade effect to my game haha, maybe i use it at that resolution o.o (ofc not seen on the pic due to the low(small) resolution)


(looking at the picture, the zoom debug is correct, all others are incorrect due to testing stuff for others)