Recommended resolution for windows 32 app

Hey!

I am working on a game that will ship firstly for windows 32 desktop.

After some research I realised that I wanted to support most screen resolutions out there.

This made me ending up at 1366x768 screen resolution explicitly set in
 - config.lua (setting the values of width/height)
 - build.settings (defaultViewWidth and defaultViewHeight in the “window”-parameter)

This works out okay as long as screen resolution is equal to or higher than 1366x768.
The thing is though, activating window mode-maximized or even fullscreen, actually upscales the content area into a higher resolution - and from what I can see: display.contentWidth and display.contentHeight stays at 1366x768 - which means I am still working with the same amount of actual content coordinates/pixels even though the actual screen resolution might be at 1600x900, 1600x1200 or even 1920x1080.

What I might want to achieve is use the extra screen width and height for higher resolution screens to instead make extra space between elements (or empty area) while keeping the game objects at their actual original size (which have proper size set at 1366x768).

From what I understand there is no option to change display resolution after .exe file has been started -
so what do I do?

  • Keep designing the game in 1366x768, let maximize/fullscreen upscale the content - but in turn to achieve what I want - do I downscale .xScale and .yScale for groups/display objects to create that extra space.
    (would images stay sharp in this case? does dynamic scaling work well with maximizing/fullscreen mode)

  • Should I design the game in 1600x900 or higher and then let things be downscaled instead - for lower resolutions such as 1366x768?
    (a bit unclear how the engine handles strokes of strokewidth 1 for basic lines and shapes - when downsized)

Anyone have any experience with this or any general recommendations?
Much appreciated.

Regards, Jonas.

The content area you define in config.lua is your virtual content area. You’re defining what you want it to mean. If your screen is larger, you can use dynamic images (display.newImageRect() in conjunction to adding a few lines to config.lua that tells Corona when to use @2x images) and Corona will pick the right sized image for you.

display.contentWidth/Height provided you the exact numbers you typed into config.lua, nothing more. That’s your defined content area. If your physical screen has a different aspect ratio then display.actualContentWidth/Height will be calculated to be your full screen, but scaled to your defined content area. For instant with a width of 768, on a 16:9 HDTV shaped monitor (common for computer desktop displays) the actual height would be 768 * 16 / 9 or 1365.  If your app then runs on a typical 3:2 laptop screen like MacBook Pros’s have, Corona would make the 1365 fit and adjust the other number to 910.  Adding to the confusion, config.lua is always listed in portrait orientation, that is width is the short side number, height is the long side number. Most computer monitors are going to be landscape oriented. So keep that in mind when I’m discussing width and height.

What I would consider doing is making your config.lua 720x1280 and then add support for @2x images that are designed to run at 1080x1920. This would cover most modern computer screens.  For your 768x1365 screens, it would likely stretch the 720x1280 based images up a little bit but you can control at what factor the @2x images will be used. I usually suggest a 1.5x multiplier but that would be an exact match for 1080 (1080/720 = 1.5), to get your @2x images to show up on 1600x900, you would want a scale multiplier of 1.25x.

Rob

The content area you define in config.lua is your virtual content area. You’re defining what you want it to mean. If your screen is larger, you can use dynamic images (display.newImageRect() in conjunction to adding a few lines to config.lua that tells Corona when to use @2x images) and Corona will pick the right sized image for you.

display.contentWidth/Height provided you the exact numbers you typed into config.lua, nothing more. That’s your defined content area. If your physical screen has a different aspect ratio then display.actualContentWidth/Height will be calculated to be your full screen, but scaled to your defined content area. For instant with a width of 768, on a 16:9 HDTV shaped monitor (common for computer desktop displays) the actual height would be 768 * 16 / 9 or 1365.  If your app then runs on a typical 3:2 laptop screen like MacBook Pros’s have, Corona would make the 1365 fit and adjust the other number to 910.  Adding to the confusion, config.lua is always listed in portrait orientation, that is width is the short side number, height is the long side number. Most computer monitors are going to be landscape oriented. So keep that in mind when I’m discussing width and height.

What I would consider doing is making your config.lua 720x1280 and then add support for @2x images that are designed to run at 1080x1920. This would cover most modern computer screens.  For your 768x1365 screens, it would likely stretch the 720x1280 based images up a little bit but you can control at what factor the @2x images will be used. I usually suggest a 1.5x multiplier but that would be an exact match for 1080 (1080/720 = 1.5), to get your @2x images to show up on 1600x900, you would want a scale multiplier of 1.25x.

Rob