Fullscreen as default?

Archives Forums/MacOS X Discussion/Fullscreen as default?

anawiki(Posted 2007) [#1]
Hi
For windows games it is common to use fullscreen mode as default option, but is that also applicable for Mac? I received following comment from one of Runes reviewers:

I'd recommend using windowed mode as the default preference
(I'd recommend that regardless - it's just a little more user friendly in general).

Is that so?

cheers,
Roman


LAB[au](Posted 2007) [#2]
It's true that I have seen far more windowed as default on mac than fullscreen.

I guess there is no rule, however I am doing the same under windows (default windowed), and have therefore only a windowed mode or a maximized borderless "fake" fullscreen at the convenience of a button the user has to push (something like windows media player or quicktime).
I am doing this as well on MacOS and Linux.

This way you don't switch resolution but it has a serious limitation if you are using 3D, max size of a render buffer is 2048 or 2560 pixels and with the gigantic 30" screens of these days that isn't doing it. So I just draw the maxsize render buffer centered with black frame around it.

The good thing with this fake fullscreen is that you don't have weird effects when suddenly something tries to popup in front of your software.


ima747(Posted 2007) [#3]
It is much more common among mac games to have a windowed option than among PC games. However it is not required. The type of game and style of game play, I feel, are more important to offering a windowed option than the platform. Such as a casual non-timed puzzle game where if you get a phone call and have to look something up in another program, that's a perfect candidate for a windowed mode of play. However for something very involved, that's more of an experiance to play, such as a FPS or racing game should always be full screen as, if you can't focus on it, you can't play it properly. Also if the game takes over the mouse it should always be full screen as if the mouse leaves the window and someone clicks on the desktop by accident rather than shooting that badguy on the far right of the window it ruins the experiance.

As far as having windowed mode as the default that depends again on intended play style. If you intend for people to sit down and play the game for a good stretch without doing anything else then you don't want the distraction of the menu bar, blinking chat programs etc. However if it's a quick pickup and play for 5 minutes while you wait for someone to call you back type game then you want them to be able to get out quickly, like mine sweeper.

One last note, if the game does have a windowed mode of play, regardless of if it is the default or not, it should always remember if it was windowed or full screen when it starts and revert to the last used setting. If someone likes it full screen they REALLY don't want to have to switch in EVERY time they play, and the reverse is true for windowed mode.
Hope that helps!


remz(Posted 2007) [#4]
LAB[au]: ...a maximized borderless "fake" fullscreen at the convenience of a button the user has to push (something like windows media player or quicktime).
I am doing this as well on MacOS and Linux.

Hello LAB[au], I am really interested in learning how you do that on the mac: my app currently does what you described, on Windows. On the mac, the same code will hide the toolbar, maximize the window, but the Mac OS menu bar stays, the window title bar too, along with the dock at the bottom.
(and annoyingly, the toolbar 'hides' with an animation... :( )
So I'm reading on Cocoa how to make an application take over the whole screen area without switching resolution.
As I see it at the moment, one would need to perform things like:
- call CGDisplayCapture()
- Set window level to CGShieldingWindowLevel() or NSMainMenuWindowLevel+1
- Set the window style to NSBorderlessWindowMask
- Override this canBecomeKeyWindow -> True
- call makeKeyAndOrderFront:nil
- perform cabalistic ritual involving leprechauns
- Do reverse when going back to windowed mode

How did you do it?
Thanks!


MacSven(Posted 2008) [#5]
I have done a little tweak in the BlitzMax GUI so you can use GUI applications in fullscreenmode. Are you interested?


ImaginaryHuman(Posted 2008) [#6]
I say go fullscreen for normal games and windowed for casual.


robw(Posted 2008) [#7]
MacSven,
Yes can you let us know what you've done to allow GUI apps in fullscreen mode?


ImaginaryHuman(Posted 2008) [#8]
Are you sure this is even possible? I so far have not seen a single OSX app that takes over the whole desktop as a `full screen window`. I've only seen client-space windows with the OSX title bar, or full-fullscreen. Having said that it would be really nice if gui apps could work on full full screens.


MacSven(Posted 2008) [#9]
Yes, i use the Kiosk mode on MacOS X. You can create i window with no titlebar, hide the Desktop -> This is FullScreenmode.

See here:

http://developer.apple.com/technotes/tn2002/tn2062.html

PS: I am working on a WebBrowser in fullscreen gui mode, and it works.


Brucey(Posted 2008) [#10]
I so far have not seen a single OSX app that takes over the whole desktop as a `full screen window`.

wxWidgets allows you to set flags on the window which allows it to be proper fullscreen too. Works on all platforms, which is handy for consistency :-)


MacSven(Posted 2008) [#11]
Take a look at:
Download and unzip the module and move it to brl.mod, rebuild all modules.

http://www.macsven.de/macoslsui.html

OSSetSystemUIMode:Int(KIMode:Int,KIOption:Int)

kUIModeNormal
kUIModeContentSuppressed
kUIModeContentHidden
kUIModeAllSuppressed
kUIModeAllHidden

kUIOptionAutoShowMenuBar
kUIOptionDisableAppleMenu
kUIOptionDisableProcessSwitch
kUIOptionDisableForceQuit
kUIOptionDisableSessionTerminate
kUIOptionDisableHide

Try it and let me know if it work's for you?


Brucey(Posted 2008) [#12]
move it to brl.mod

It is better to use your own "namespace", rather than BRL or Pub.
In the past, BlitzMax Updates have moved the old brl.mod and pub.mod folders to replace them with updated versions. This would result in your module being removed.

:-)


MacSven(Posted 2008) [#13]
-> Brucey

Have made my own Drawer macsven.mod and changed the name to macsystemextension.mod.
Code expandet to get the MAC address of the first ethernet card in a Mac.

Sven.