Is it possible to add an internal resolution option?

0 favourites
  • 8 posts
From the Asset Store
Kids Game
$49 USD
New Sounds Added Update: 115 new sound effects added for no additional cost!
  • It seems that setting the "Fullscreen Quality" project property to "High" automatically sets the internal resolution as high as possible based on window/screen size.

    This can vastly improve the visuals of your game, but it can also be very taxing on the GPU for 2k or 4k displays. There are diminishing returns beyond a certain point, anyway.

    Ashley That said, would it be possible to let us set the internal resolution ourselves in order to find a proper balance between visual quality and performance? Ideally this could be turned into an in-game option so players can find that balance themselves. At the very least, an option to cap the internal resolution to a multiple of the viewport size would suffice.

  • With low quality fullscreen mode, the 'Set canvas size' action modifies the render resolution IIRC.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Hey Ashley

    Thanks for the response. I tried that out but it seems setting the canvas size affects the external resolution regardless of fullscreen quality mode, or whether or not the game is in fullscreen.

    To elaborate - my game has a native resolution of 640x360. On a 4K display with Fullscreen Quality [High], the internal resolution / resolution scale is automatically set to a whopping 6x / 600%.

    I don't think the "fullscreen quality" option should be a simple "high" (automatic resolution scale) or "low" (native) - it should be something the developer can set themselves, or give to the player so they can find an appropriate setting based on their device specs.

    I've been thinking of ways this could be implemented and it could be as simple as adding a dropdown list ranging from 1x - 8x or so with "automatic" as a default to keep the current functionality.

    Is this something you would consider?

  • It should already be supported. I'm not sure what you mean, because if you set the fullscreen quality to "low", and use the 'Set canvas size' action, you should have complete control over the size the engine renders the game at.

  • I think there is some confusion over the terminology here. I'm not talking about window size / canvas size / external resolution, which is all "Set Canvas Size" affects. I'm talking about internal resolution or what is maybe more commonly known as resolution scale, which pertains to rendering quality. It is, admittedly, kind of hard to describe because it's implemented differently in various games and engines. C3 already has it, my only issue is that I have no control over it.

    Please take a look at the images below.

    These are from a C3 project with a 320x180 viewport, in fullscreen, on a 2560x1440 display.

    With low quality fullscreen, the internal resolution stays at 320x180 (100% resolution scale). This results in blurry text and chunky pixels on the rotated object.

    However, with high quality fullscreen the internal resolution is automatically changed to the display's 2560x1440 (800% resolution scale), resulting in ultra crisp text and smoothed-out pixels on the rotated object.

    This is the desired result, but I don't need the internal resolution or "quality" to be quite so high because it can become taxing on the GPU. I would like to limit the internal resolution to something lower like 1280x720 (400% resolution scale), while keeping the external resolution at 2560x1440. This way I get slightly crisper text and smoother movements / rotations, but not quite as much as I would with the full-on 2560x1440 internal resolution. In exchange I get better performance.

    You might be thinking "Well, a 340x180 game should not be using high quality fullscreen anyway" but that is not always true. Many low-res pixel art games these days opt for higher internal resolutions or "high quality fullscreen" because it makes movements & scrolling smoother, and allows them to use text instead of spritefonts. 380x140 was just for the example images anyway, as it makes the difference in fullscreen quality modes very apparent.

    Hopefully this explains the issue well enough. I know I'm not the best at it. I can try to find other references or examples if needed.

  • Yeah, that's exactly what I was talking about. With low quality fullscreen mode, you should be able to change the internal resolution with the 'Set canvas size' action.

  • As I've mentioned in the earlier posts, "Set Canvas Size" does not affect internal resolution as you are suggesting it does - it merely changes the external resolution but without changing the window size.

    Please take a look at this .gif: media.giphy.com/media/A2OHsceP7gBTRADQvm/giphy.gif

    Or the .c3p itself here: dropbox.com/s/mbe5ma4s677pt0c/Internal%20Resolution%20Test.c3p

    This is what happens when setting the canvas size to 200%, 300%, etc.

    I get the exact same results regardless of fullscreen quality mode or any other project properties / display modes.

    If it is supposed to work how you are suggesting then maybe this is a bug?

  • Oh I see - it does change the visible area, but then you can compensate for that via System: Set layout scale to resolutionScale, which looks like it then gets the result you want.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)