Should modern games work within a fullscreen window?

Started by
16 comments, last by SeanMiddleditch 9 years, 4 months ago

I prefer if games don't try to launch themselves at fullscreen at all, unless specified. Especially linux side (Unity games tend to be the worst offenders), it often detects the wrong monitor and screws up my desktop when I have to alt-f4 out of the program because the game menu is rendered offscreen somewhere. I say give me a start-up menu the first time to let me manually set the settings I'd like. Sure, it seems nice to have the game query my system, but it's a giant pain if it gets it wrong. If you go that route, make sure you do it right. But, in general, I don't like getting locked out of my desktop as the default setting the first time I launch a game, with a dice roll of whether it gets the resolution right :P

Beginner here <- please take any opinions with grain of salt

Advertisement
Washu, perhaps I should have put a year on my post as frame of reference. I did say that for me the resolution was 1024x768, this was before 2000 and perhaps this has caused some misunderstanding. In a lot of instances the graphic was scaled down to native resolution from 1024x768 to something closer to 640x480, so what i am saying is the offscreen buffer dimensions you pick should be bigger than that commonly seen on a users desktop and should scale *down*. On that note hold on while I get my pipe and slippers, as I have clearly shown my age... :)

If you have a target of DX9, then full screen is definitely a performance win. However, as of Windows Vista, all GPU resources are virtualized, and thus in Direct3D 10 and above, there is no performance benefit. There is no exclusive mode. However, the one benefit that full screen mode provides is the ability to set the resolution.

I have not yet observed any performance difference between full screen windowed, and full screen mode in any application that supports D3D10 and above on ATI or nVidia cards in any current AAA games that I've played (and I play a lot of them). That being said, SLI/Crossfire might still require full screen mode, I don't have either of those setup currently.

Not really. On Windows 7 and Vista, Borderless window needs to go through Aero; while Fullscreen doesn't. The most notable problem is getting VSync to run correctly on non-fullscreen modes, specially if you're also running multiple monitors.
By running correctly, I mean not causing massive stalls (which may go undetected if the GPU and CPU aren't being stressed enough).
"Fullscreen" basically tells the OS that this window is the only important thing right now.

This gives the hardware and OS the chance to skip unnecessary steps and provide useful features while eliminating others.

It just makes your life as a dev easier.

Windowed fullscreen is often very useful when recording and doing a let's play and so for marketing but also while development and testing.

However the implementation of UI overlays like in Steam (if Steam is used) and other useful tools makes windowed fullscreen support a waste of dev time for indie/hobby devs.

Advantages are:
- Possible Performance improvements (depends on used hardware and OS)
- Avaibility to (easily) change resolution without messing up the tidied up desktop and other opened UIs of the user.
Also you can change other video settings that only apply to your game and do not stay when your game crashes.
- Mouse coordinates are screen coordinates and no double mouse cursors
- Not losing accidentialy window focus from time to time
- No other windows popping up, disturbing the gameflow or irritating the player - atmosphere & immersion

Just to name some.

"Fullscreen" is a bundle of (background) features provided exactly for cases like games.
You don't need to use it but games often can benefit from it.

However the implementation of UI overlays like in Steam (if Steam is used) and other useful tools makes windowed fullscreen support a waste of dev time for indie/hobby devs.

No.
You just said a couple lines before that borderless window is useful for debugging, which contradicts your "windowed fullscreen support a waste of dev time for indie/hobby devs" statement. It is not a waste of time. It's very useful.

Furthermore, I know a couple of gamer fellows that will very angry if you don't include borderless window support. It gives the fullscreen experience (cover the whole monitor), without the Alt tabbing issues and allows integration with other external programs (i.e. multiplayer VoIP like Ventrillo or Mumble).

A fullscreen app in a multimonitor setup will takeover one monitor. Trying to reach the windows from the other monitors will cause the fullscreen app to go crazy; which doesn't happen on a borderless setup.

Long story short, support all 3 options. Borderless windows is just a small subset of windowed mode. It's very easy to support and your users will appreciate it.

Not really. On Windows 7 and Vista, Borderless window needs to go through Aero; while Fullscreen doesn't. The most notable problem is getting VSync to run correctly on non-fullscreen modes, specially if you're also running multiple monitors.
By running correctly, I mean not causing massive stalls (which may go undetected if the GPU and CPU aren't being stressed enough).

This may or maynot be the case. I have not noticed it on my Windows 7 machines at all. I do run multiple monitors, and often times the games do not occupy all of the monitors (which is why I run full screen windowed in as many cases as possible).

Regardless though, the amount of effort necessary to add support for full screen windowed is damn trivial (it is, after all, just windowed mode). While the convenience it adds for development AND for the end user is massive.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

@Matias Goldberg
Yes, from the statepoint of a player it is useful.
I like this mode in Battlefield 3&4 as alt-tabbing in/out from fullscreen can take up to 10minutes but then again this is DICE/Egosoft and a AAA title.

When talking about possible features the word "optional" can be said everytime to every possible feature, though it is not some kind of a all-around solver.
You have to draw a strict line between what to support and implement and what not.
You can't just develop everything optional to please everyone.

When developing you have to test and develop against all existing features and this doesn't end at borderless windows.
If you do stuff "optional" you have to turn it on and see if it works and turn it off and see if it still works, now do this for every possible setting and you end up very fast at a dead end in development.
X on/off settings = 2^X
possible states your software has to be developed, maintained and tested against.

That is why I suggested Fullscreen only at first for Indie/Hobby devs because it works always as intended and is easier to develop and maintain while with borderless window you have to consider different environments and are going to encounter some definit "bugs".
Fullscreen just solves all of those problems in a very easy and fast to develop way.

Additionaly Indie/Hobby games are not AAA titles who have a lot of ressources and are not problematic to alt-tab out/in.

Yes I said during development borderless window is very useful to debug but in this case you only have to support your own system and performance as well as visual bugs caused by this mode(but don't stop you from debugging) should be low priority.

At the very end, if your game is ready and set up you can consider starting to support borderless window mode if needed or demanded.

What do you think the difference is between borderless windowed (sometimes called fullscreen windowed) and fullscreen? They're surely the same thing!


Exclusive fullscreen does not allow things like OS overlays. Windowed fullscreen - among other things - does. This is because in windowed fullscreen mode, the system compositor is still in charge of the final image on your screen. This adds some delay. It's not usually noticeable.

However the implementation of UI overlays like in Steam (if Steam is used) and other useful tools makes windowed fullscreen support a waste of dev time for indie/hobby devs.


Not at all. First, if you're an indie dev and you're not using a premade engine or at least using SDL2 or another windowing library that supports all three window modes with practically no effort required then you're doing games wrong.

Second, many gamers have a very strong preference for always running in fullscreen borderless. It helps if you're alt-tabbing between the game and Hulu/Netflix/Skype/iTunes, for instance. It also means - if used correctly - that while in menus your mouse will not be locked to the window border so you can hit pause in the game and mouse over to said video/music/chat app (if it's on another monitor, for instance) and interact with it without even having to alt-tab.

Any moderately recent game that lacks fullscreen borderless support should have a bug filed against it. It's ridiculously easy to add and support and has high value to many customers, not to mention the developer benefits.

Sean Middleditch – Game Systems Engineer – Join my team!

This topic is closed to new replies.

Advertisement