Fullscreen support? ( i mean real one =)

Hey guys,

any ETA - when fullscreen will be avaible?

I mean fullscreen - not the window so big that it can cover whole screen, but real fullscreen?

so we can use that for Big Picture Steam feature.

We have no plans on doing this.

Back when our Win32 support was in beta, it did support going into fullscreen “exclusive” mode on the primary monitor.  But we later changed it to fullscreen borderless windowed mode (it’s technically a maximzed window without a border).

The reason we changed it is because fullscreen exclusive mode has the following issues/limitations:

  • You cannot display Windows’ native UI such as alerts, text fields, text boxes, etc.
  • It’s not Alt+Tab or multi-monitor friendly.
  • You can’t screencapture its contents from the desktop.  (Can only capture via the video port such as DVI or HDMI.)
  • Most PC gamers now days prefer the game to be rendered in “windowed” mode.

And we have experimented with the steamworks library on our end.  We were able to successfully display Steam’s dashboard overly on top of Corona’s OpenGL content while shown as a normal window and fullscreen windowed mode.  It definitely works.

Also, when I run Steam in BigPicture mode, it runs in fullscreen windowed mode on my Windows 10 machine… just like Corona does.  :slight_smile:

So, I think we’re okay here.

Oh, then - how to do that?

I mean, lets go real -  have this game - http://store.steampowered.com/app/439920

It does works on joysticks and keyboard 100%.

How I can apply for Big Screen Steam feature? So users will able to launch it?

Does it matter if Steam is in big picture mode or not?
I believe Steam just runs your game’s EXE file as-is.

Steam documents how your app should be set up for Big Picture Mode via the link below.  I believe you’ll need a Steam developer account to access this webpage.

   https://partner.steamgames.com/documentation/big_picture

Based on their documentation, what they want you to do is to ensure that your game is fully playable with a game controller.  That is, it should not require a mouse or keyboard.  When you upload your game on Steam, you have to input info about your app.  Under the “Basic Info” tab, there is a section named “Controller Support” which lists the following options:

  • No controller support
  • Partial controller support
  • Full controller support

The above is just informational.  They’re merely your promise to your app users of whether or not it’s fully playable with a controller or not.  I don’t know if Steam will review your app if it’s really true or not.

But anyways, my understanding is that Steam’s big picture mode will prioritize games that are set up for “Full Controller Support” over other games.  If this is what you’re after, then you’ll need to ensure that your game does not require keyboard/mouse input… which you’ve probably already done if you’ve made your game playable on an Android TV, Ouya, Fire TV, etc.

There is only 1 major gotcha that you have to watch out for.  On Windows, you cannot use a game controller to enter text in native UI such as TextFields and TextBox.  Nor can you use a game controller to select/click buttons in a Windows native alert.  This is possible on Android (because Google supports this), but Windows requires a mouse or keyboard to do so.  So, if you have any text entry in your game, then you’ll have to make your own virtual keyboard via Corona’s display objects… kind of like how it was done in old console games (think NES, SNES, Genesis, etc.).

Side Note:
I’ve never released an app on Steam myself.  I’m merely sharing my experience with tests I’ve done last year and from what I’ve read in Steam’s documentation.  But I hope this helps.

It just annoying - more then 20% users are requesting to play fullscreen.

http://steamcommunity.com/app/439920/discussions/0/385428458167054693/

In general - for any of this problems - no native elements(I have none in my games), no alt-tab(atm it same for unreal engine,  so no worries again(xcom2 tested =)), no screencapture(again - its ok for normal users).

If it possible to do so? as a 3rd option for fullscreen - that will ease a living and provide a feature that other SDK/engines have.

@efgames.net Have you tried the existing full screen option that Joshua referred to? I just played Royal Heroes and I only seen an option to maximize the window using the standard windows buttons. I do see a means to enable the currently available full screen mode…

native.setProperty(“windowMode”, “fullscreen”)

https://docs.coronalabs.com/guide/distribution/win32Build/index.html#windowsettings

I didnt know about this possibility. Just tested on my pc - worked great.

Let see how it will perform on players side.

I was confused that win32 build got this ico to go fullscreen - but it was just maximizing. and alt-enter did not worked.

Good point @jerejigga.

Right, the maximize button on your window’s title bar does not put your window into fullscreen mode.  It maximizes it, which is a Windows feature that expands your window to fill the monitor, but still shows your window’s title bar and the Windows OS’ task bar.  It doesn’t work like OS X’s (+) button on the title bar which does put your window into fullscreen mode.  It’s just a native platform difference.  On Windows. you have to put your app window in/out of fullscreen mode programmatically.

Have a look at sample project “Interface\DesktopWindow” that is included with the Corona Simulator.  That sample project launches in fullscreen mode via a setting in the “build.settings” file and it can switch window modes (fullscreen/maximize/minimize/normal) programmatically via widget buttons and key events.  Note that you have to build this sample project for Windows to test this functionality since Corona’s device simulator does not support testing this desktop functionality.

First, I recommend that you set up your app to launch in fullscreen mode just like the above sample project.  You can do so for both OS X and Windows via the “build.settings” setting…

settings = { windows = { defaultMode = "fullscreen", }, }

We document the above setting and other useful desktop window settings here…

   https://docs.coronalabs.com/daily/guide/distribution/win32Build/index.html#defaultmode

   https://docs.coronalabs.com/daily/guide/distribution/osxBuild/index.html#defaultmode

Also note that once your app is in fullscreen mode, the Windows OS does not provide an obvious way on how to get out.  The right thing to do is to first provide an option for the user to exit the game, which is very common with fullscreen PC games.  You can use our native.requestExit() function to do so which works on Android, OS X, Windows, and WP8.

   https://docs.coronalabs.com/daily/api/library/native/requestExit.html

You should also provide a setting/option within your game to put the window in/out of fullscreen mode.  Most PC games would put this under a Settings screen.  And as you’ve recently discovered, Corona allows you to change the window mode at run-time by using the following functions…

   native.setProperty(“windowMode”, “fullscreen”)

   native.setProperty(“windowMode”, “normal”)

You can also fetch the current window mode as shown below.  Ideally, your app should only show a “fullscreen” option when in normal mode (aka: window mode) and show a “normal” or “windowed” mode when in fullscreen mode.

   local windowMode = native.getProperty(“windowMode”)

Documentation for the above Lua functions can be found here…

   https://docs.coronalabs.com/daily/api/library/native/setProperty.html

   https://docs.coronalabs.com/daily/api/library/native/getProperty.html

And for bonus points, you may want to add shortcut key support to toggle your game in/out of fullscreen mode.  On Windows, the de-facto standard for normal/business apps is to use the F11 key, which is supported by web browsers, Windows Explorer, Windows Media Player, PowerPoint, etc.  Also, another popular de-facto standard for many Windows games is to use Alt+Enter to toggle fullscreen mode, which is what Steam big picture mode uses.  So, in order to toggle between fullscreen/normal mode like this, you’ll need to listen for key events.  The “Interface\DesktopWindow” sample project I mentioned above shows you how to do this via the F11 key.  Here is a quick code snippet for your convenience.

-- Called when a key up/down event has been received. local function onKeyReceived(event) -- Toggle the window in/out of fullscreen mode when the F11 key is pressed. -- Note: This is a Microsoft Windows de-facto standard that you must opt-in to programmatically. -- Windows games do not typically support the F11 key for fullscreen support. -- But it is typically supported by apps such as web browsers, video players, presentation tools, etc. if (system.getInfo("platformName") == "Win") then if (event.keyName == "f11") and (event.phase == "down") then if (native.getProperty("windowMode") == "fullscreen") then native.setProperty("windowMode", "normal") else native.setProperty("windowMode", "fullscreen") end end end end Runtime:addEventListener("key", onKeyReceived)

I hope this helps!

Tnx. My bad - I missed this update.

I just added it and it live on steam:

[sharedmedia=core:attachments:5002]

We have no plans on doing this.

Back when our Win32 support was in beta, it did support going into fullscreen “exclusive” mode on the primary monitor.  But we later changed it to fullscreen borderless windowed mode (it’s technically a maximzed window without a border).

The reason we changed it is because fullscreen exclusive mode has the following issues/limitations:

  • You cannot display Windows’ native UI such as alerts, text fields, text boxes, etc.
  • It’s not Alt+Tab or multi-monitor friendly.
  • You can’t screencapture its contents from the desktop.  (Can only capture via the video port such as DVI or HDMI.)
  • Most PC gamers now days prefer the game to be rendered in “windowed” mode.

And we have experimented with the steamworks library on our end.  We were able to successfully display Steam’s dashboard overly on top of Corona’s OpenGL content while shown as a normal window and fullscreen windowed mode.  It definitely works.

Also, when I run Steam in BigPicture mode, it runs in fullscreen windowed mode on my Windows 10 machine… just like Corona does.  :slight_smile:

So, I think we’re okay here.

Oh, then - how to do that?

I mean, lets go real -  have this game - http://store.steampowered.com/app/439920

It does works on joysticks and keyboard 100%.

How I can apply for Big Screen Steam feature? So users will able to launch it?

Does it matter if Steam is in big picture mode or not?
I believe Steam just runs your game’s EXE file as-is.

Steam documents how your app should be set up for Big Picture Mode via the link below.  I believe you’ll need a Steam developer account to access this webpage.

   https://partner.steamgames.com/documentation/big_picture

Based on their documentation, what they want you to do is to ensure that your game is fully playable with a game controller.  That is, it should not require a mouse or keyboard.  When you upload your game on Steam, you have to input info about your app.  Under the “Basic Info” tab, there is a section named “Controller Support” which lists the following options:

  • No controller support
  • Partial controller support
  • Full controller support

The above is just informational.  They’re merely your promise to your app users of whether or not it’s fully playable with a controller or not.  I don’t know if Steam will review your app if it’s really true or not.

But anyways, my understanding is that Steam’s big picture mode will prioritize games that are set up for “Full Controller Support” over other games.  If this is what you’re after, then you’ll need to ensure that your game does not require keyboard/mouse input… which you’ve probably already done if you’ve made your game playable on an Android TV, Ouya, Fire TV, etc.

There is only 1 major gotcha that you have to watch out for.  On Windows, you cannot use a game controller to enter text in native UI such as TextFields and TextBox.  Nor can you use a game controller to select/click buttons in a Windows native alert.  This is possible on Android (because Google supports this), but Windows requires a mouse or keyboard to do so.  So, if you have any text entry in your game, then you’ll have to make your own virtual keyboard via Corona’s display objects… kind of like how it was done in old console games (think NES, SNES, Genesis, etc.).

Side Note:
I’ve never released an app on Steam myself.  I’m merely sharing my experience with tests I’ve done last year and from what I’ve read in Steam’s documentation.  But I hope this helps.

It just annoying - more then 20% users are requesting to play fullscreen.

http://steamcommunity.com/app/439920/discussions/0/385428458167054693/

In general - for any of this problems - no native elements(I have none in my games), no alt-tab(atm it same for unreal engine,  so no worries again(xcom2 tested =)), no screencapture(again - its ok for normal users).

If it possible to do so? as a 3rd option for fullscreen - that will ease a living and provide a feature that other SDK/engines have.

@efgames.net Have you tried the existing full screen option that Joshua referred to? I just played Royal Heroes and I only seen an option to maximize the window using the standard windows buttons. I do see a means to enable the currently available full screen mode…

native.setProperty(“windowMode”, “fullscreen”)

https://docs.coronalabs.com/guide/distribution/win32Build/index.html#windowsettings

I didnt know about this possibility. Just tested on my pc - worked great.

Let see how it will perform on players side.

I was confused that win32 build got this ico to go fullscreen - but it was just maximizing. and alt-enter did not worked.

Good point @jerejigga.

Right, the maximize button on your window’s title bar does not put your window into fullscreen mode.  It maximizes it, which is a Windows feature that expands your window to fill the monitor, but still shows your window’s title bar and the Windows OS’ task bar.  It doesn’t work like OS X’s (+) button on the title bar which does put your window into fullscreen mode.  It’s just a native platform difference.  On Windows. you have to put your app window in/out of fullscreen mode programmatically.

Have a look at sample project “Interface\DesktopWindow” that is included with the Corona Simulator.  That sample project launches in fullscreen mode via a setting in the “build.settings” file and it can switch window modes (fullscreen/maximize/minimize/normal) programmatically via widget buttons and key events.  Note that you have to build this sample project for Windows to test this functionality since Corona’s device simulator does not support testing this desktop functionality.

First, I recommend that you set up your app to launch in fullscreen mode just like the above sample project.  You can do so for both OS X and Windows via the “build.settings” setting…

settings = { windows = { defaultMode = "fullscreen", }, }

We document the above setting and other useful desktop window settings here…

   https://docs.coronalabs.com/daily/guide/distribution/win32Build/index.html#defaultmode

   https://docs.coronalabs.com/daily/guide/distribution/osxBuild/index.html#defaultmode

Also note that once your app is in fullscreen mode, the Windows OS does not provide an obvious way on how to get out.  The right thing to do is to first provide an option for the user to exit the game, which is very common with fullscreen PC games.  You can use our native.requestExit() function to do so which works on Android, OS X, Windows, and WP8.

   https://docs.coronalabs.com/daily/api/library/native/requestExit.html

You should also provide a setting/option within your game to put the window in/out of fullscreen mode.  Most PC games would put this under a Settings screen.  And as you’ve recently discovered, Corona allows you to change the window mode at run-time by using the following functions…

   native.setProperty(“windowMode”, “fullscreen”)

   native.setProperty(“windowMode”, “normal”)

You can also fetch the current window mode as shown below.  Ideally, your app should only show a “fullscreen” option when in normal mode (aka: window mode) and show a “normal” or “windowed” mode when in fullscreen mode.

   local windowMode = native.getProperty(“windowMode”)

Documentation for the above Lua functions can be found here…

   https://docs.coronalabs.com/daily/api/library/native/setProperty.html

   https://docs.coronalabs.com/daily/api/library/native/getProperty.html

And for bonus points, you may want to add shortcut key support to toggle your game in/out of fullscreen mode.  On Windows, the de-facto standard for normal/business apps is to use the F11 key, which is supported by web browsers, Windows Explorer, Windows Media Player, PowerPoint, etc.  Also, another popular de-facto standard for many Windows games is to use Alt+Enter to toggle fullscreen mode, which is what Steam big picture mode uses.  So, in order to toggle between fullscreen/normal mode like this, you’ll need to listen for key events.  The “Interface\DesktopWindow” sample project I mentioned above shows you how to do this via the F11 key.  Here is a quick code snippet for your convenience.

-- Called when a key up/down event has been received. local function onKeyReceived(event) -- Toggle the window in/out of fullscreen mode when the F11 key is pressed. -- Note: This is a Microsoft Windows de-facto standard that you must opt-in to programmatically. -- Windows games do not typically support the F11 key for fullscreen support. -- But it is typically supported by apps such as web browsers, video players, presentation tools, etc. if (system.getInfo("platformName") == "Win") then if (event.keyName == "f11") and (event.phase == "down") then if (native.getProperty("windowMode") == "fullscreen") then native.setProperty("windowMode", "normal") else native.setProperty("windowMode", "fullscreen") end end end end Runtime:addEventListener("key", onKeyReceived)

I hope this helps!

Tnx. My bad - I missed this update.

I just added it and it live on steam:

[sharedmedia=core:attachments:5002]

Super helpful, thanks!