Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Why not design game very large so it scales down? — Gideros Forum

Why not design game very large so it scales down?

rpallenrpallen Member
edited November 2017 in Game & application design
I’m reading “Gideros Mobile Game Development” by Arturs Sosins. He seems to recommend using logical dimensions of 480x800 to be somewhere in the middle of the different screen sizes. In his discussion of scaling, he mentions using anti-aliasing to improve image quality when scaling up. The also mentions using image suffixes to use different image sizes for different screen resolutions.

I’m not disputing what he says to do, but I’d like to understand something. Why isn’t it easier to just make everything bigger to begin with and then almost all of the scaling will be down, I don’t know how to make vector graphics (and I’m not especially anxious to learn ANOTHER new thing) so when I make images in GIMP, I make them very big so I can reduce them without the loss of quality you get when you make something bigger.

Again, why can’t I just make the game very big so when it scales, it scales down, not up. And yes, I know that bigger images make bigger file sizes, but isn’t that better than having multiple files of the same picture?

Comments

  • lower res phones are usually also lower specs phones and they may have trouble to load into memory and to render with good fps your game if it is has large images.

    also scaling down a huge texture does not look necessarily as good as an image which is already lower resolution. anti-aliasing is not that perfect actually.
  • totebototebo Member
    edited November 2017
    I also thought exactly that when I started with Gideros. Scaling doesn't work that we'll on all devices. If you want crisp graphics on ANY device, I recommend you design all graphic assets as @3, use TexturePack and have it scale down to all other sizes. Doing this ensures crisp and sharp bitmaps on all devices.
    My Gideros games: www.totebo.com
  • totebo, I don't know what you mean when you say. "I recommend you design all graphic assets as @3".

    The book I mentioned says:
    You can specify any suffix you want together with the ratio, for example, let's specify
    three ratios such as:
    • suffix: @small, ratio: 0.5
    • suffix: @medium, ratio: 1
    • suffix: @big, ratio: 2
    Then create images with resolutions in these ratios and name them accordingly:
    • ball_@small.png with 40 x 40 resolution
    • ball_@medium.png with 80 x 80 resolution
    • ball_@big.png with 160 x 160 resolution
  • I have been using Gideros for some time now and never used the different graphics scales things with the @ symbol. I have chosen my resolution to be 960 x 640 and that seems to look pretty good, no matter what hardware it is run on.

    @keszegh is also correct, if you have a load of 512x512 images but scaling them down to 64x64 in your game then performance will suffer. Personally I think it is best to choose a target resolution and stick with it :)

    Likes: oleg

    +1 -1 (+1 / -0 )Share on Facebook
  • olegoleg Member
    edited November 2017
    for example you need:
    -different detail of the character under the big screen and small

    * Under the small screen the character has fewer details and a big head
    image
    111.PNG
    352 x 190 - 16K
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
    +1 -1 (+2 / -0 )Share on Facebook
  • @oleg - nice idea. :)
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • @rpallen I meant I suggest using differen
    t bitmaps for different device resolutions, ie. @2, @3. A good way of automating this is to use spriteshert, and let Gideros automatically load the appropriate spritesheet by adding the @ to the filename. Ie. spritesheet.png, spitesheet@2.png, spritesheet@3.png.

    If you create only the @3 version of the bitmap, then you can use TexturePacker to scale it down to @2 and @1. That way you only have to create one bitmap, and it will look pixel perfect on any device.
    My Gideros games: www.totebo.com
  • @oleg this is an interesting idea! It may be useful for very small screens (Apple Watch?). For other screens I tend to think of how large the graphic is going to be in the "real world", ie. how many cm/inches it will actually cover on device. Unless you're targeting very low resolution devices, you would be ok using the same graphic I reckon.
    My Gideros games: www.totebo.com
  • It's a pity there is no way for Gideros to auto scale the gfx to a new bitmap on loading.

    eg in the scaling list you say there are @3, @2 files and you describe the scale.

    If the apk contains a sprites@3.png a @2 file and a normal file then all is good - like the situation now. But if only the higher resolution @3 file is provided then if the device resolution dictates that it should be using the @2 version of the file then png loader makes the @2 texture from the @3 data.

    Likes: keszegh, antix

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+2 / -0 )Share on Facebook
  • @oleg this is an interesting idea! It may be useful for very small screens (Apple Watch?).


    11.PNG
    679 x 590 - 471K
    11.PNG 471.1K
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
  • THAT would be magic. Really nice idea @sinistersoft. And after I started using the auto-sized loading bitmaps on iOS I believe in miracles.

    Likes: SinisterSoft

    My Gideros games: www.totebo.com
    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @SinisterSoft, this could actually be done by gideros... maybe in a future release :)

    Likes: SinisterSoft

    +1 -1 (+1 / -0 )Share on Facebook
  • NinjadoodleNinjadoodle Member
    edited November 2017
    Hi @hgy29 - Would this mean that if you only provided @4x sized atlases, the device would still load them into memory in order to do the resizing?

    Loading the image would then still crash the device.

    The current way, it just ignores the the higher res file @2x, @4x, if the device can't handle them.

    ***

    Also, there is another benefit to designing at a base resolution and then providing higher resolution assets.

    If I design a game at the logical dimensions of 320x480, and later decide, that I want to 'upgrade' the graphics to 4k, I can do this by providing @4x / @8x etc. (I don't have to change any code - just add the assets)
  • hgy29hgy29 Maintainer
    In my opinion it would still load the image (no other way around), but resample it if needed before uploading to GPU (to avoid crash due to oversized image). This would be done only if base res image doesn't exists but high res does.
    +1 -1 (+2 / -0 )Share on Facebook
  • SinisterSoftSinisterSoft Maintainer
    edited November 2017
    @hgy29 - that's what I intended - not for the gpu to load it and then it resize - but for the cpu to resize before it ever gets to the gpu.

    (and only if the lower resolution wasn't provided - in some cases (like @oleg demonstrated) you may want different images completely at different sizes)
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
Sign In or Register to comment.