Reviewed guidelines
Checked for duplicate suggestions
Summary
Pretty much every type of object (that has a visual component) has some sort of capability to set the image scale.
- Sprite: Just set the scale to e.g. 50%
- 9patch & tiled background: Image scale X / Y
- Particles: has no direct setting for it but can effectively do it via particle size
- Spritefont: has a scale setting
- SVG: doesn't really need it
The only exception are tilemaps.
Possible workarounds or alternatives
I don't think there's one.
Proposed solution
Add the same Image Scale X / Y property as for 9patch/tiled background
Why is this idea important?
Let's say I make a game that should work on mobile and PC. I set the resolution to 1280x720. It looks crisp on mobile, but scaling that up on PC to fullscreen is gonna look like blurry mush (assuming trilinear filtering).
The solution would be to import the sprites at the maximum resolution I want to support at maximum graphical sharpness (e.g. 2560x1440 aka 2k) and scale them down to, in this case, 50%. They will scale up nicely and look crisp up to 2k resolution.
This is also somewhat implied to be recommended by the official tutorial: https://www.construct.net/en/tutorials/supporting-multiple-screen-17 since you shouldn't target a specific screen size, but rather a aspect ratio. It sounds very much like "just make it whatever resolution and scale"
Additional remarks
Why not just make the viewport 2k then and scale down instead? Seems reasonable, but I've tested this. A bigger viewport incurs a substantial performance penalty. Correct me if I'm wrong though, maybe my test was just not good (basically a bunch of sprites tweening between 0 and viewportRight, with different viewport sizes and the sprites scaled up/down accordingly to retain the same visual) so I'd prefer the viewport to stay on the lower end.
Reviewed guidelines
Checked for duplicate suggestions
Summary
Pretty much every type of object (that has a visual component) has some sort of capability to set the image scale.
The only exception are tilemaps.
Possible workarounds or alternatives
I don't think there's one.
Proposed solution
Add the same Image Scale X / Y property as for 9patch/tiled background
Why is this idea important?
Let's say I make a game that should work on mobile and PC. I set the resolution to 1280x720. It looks crisp on mobile, but scaling that up on PC to fullscreen is gonna look like blurry mush (assuming trilinear filtering).
The solution would be to import the sprites at the maximum resolution I want to support at maximum graphical sharpness (e.g. 2560x1440 aka 2k) and scale them down to, in this case, 50%. They will scale up nicely and look crisp up to 2k resolution.
This is also somewhat implied to be recommended by the official tutorial: https://www.construct.net/en/tutorials/supporting-multiple-screen-17 since you shouldn't target a specific screen size, but rather a aspect ratio. It sounds very much like "just make it whatever resolution and scale"
Additional remarks
Why not just make the viewport 2k then and scale down instead? Seems reasonable, but I've tested this. A bigger viewport incurs a substantial performance penalty. Correct me if I'm wrong though, maybe my test was just not good (basically a bunch of sprites tweening between 0 and viewportRight, with different viewport sizes and the sprites scaled up/down accordingly to retain the same visual) so I'd prefer the viewport to stay on the lower end.