Release Candidate 0.12.5 is available!

2456

Comments

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 2,687

    So what we're doing if you're using build 0.12.6 or greater and have RI enabled is we take the existing images and name them @3x. @2x is 2/3 the size of @3x and what was @1x is now 1/3 the size of the original image.

  • BBEnkBBEnk Member Posts: 1,764

    @adent42‌

    @adent42 said:
    So what we're doing if you're using build 0.12.6 or greater and have RI enabled is we take the existing images and name them 3x. 2x is 2/3 the size of 3x and what was 1x is now 1/3 the size of the original image.

    How will this work with apps built using iPad size and Universal?

  • JSprojectJSproject Member Posts: 730
    edited September 2014

    @adent42 said:
    So what we're doing if you're using build 0.12.6 or greater and have RI enabled is we take the existing images and name them 3x. 2x is 2/3 the size of 3x and what was 1x is now 1/3 the size of the original image.

    Thanks for your quick answer but that was exactly what I was hoping that you would NOT do. It forces us into a situation with bloated app sizes since another high res image set will be created which is not really needed in practice.

    • I really hope you will reconsider and make the creation of the 3x images an optional setting for us users when creating an universal build. (This would be fine for Iphone6/plus also since it would use the @2x images if no @3x images are located in the app)

    For creation of a iphone6/plus only build then it would be fine to set 3x as per default.

    A simple example below so that everyone understands (feel free to correct me if I'm wrong of course).

    Lets say that we currently have a single full size image for ipad, at retina resolution of 2048x1536.

    During publishing (when our app is created) the files below will be created for our single file (this is what currently happens when we publish)

    a @2x image at 2048x1536
    a @1x image at 1024x768

    With the 0.12.6 version we would instead have the files below generated (from our single image)

    a @3x image at 2048x1536
    a @2x image at 1365x1024
    a @1x image at 682x512

    The situation above repeats for every single image file we provide = bloated app size with incorrect files for each and every current app that we may be in the process of creating or an app that already is on the store and that we would push a new update for.

    Iphone 6/plus would use the @3x images and would look fine (since it is essential our previous @2x image).

    Retina devices like e.g. Ipad Air/4/3 and Iphone 5 would use the @2x images which would be the wrong resolution and look crap. The resolution would also be incorrect for non-retina devices.

    This is a case where I really hope that I misunderstand something.....

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 2,687
    edited September 2014

    @JSproject Yes, you are correct in terms of what is generated. I believe Apple's idea is for you to actually build even larger assets and scale based on the device. See: http://www.paintcodeapp.com/news/iphone-6-screens-demystified

    So the @3x and @2x thing is a loading time optimization for older devices. Since lower resolution devices can't see the detail provided by the larger images, then you can avoid loading the larger images.

    If you're more concerned about disk space, what you can do is turn off the GS resolution independence flag and we will always load the "large" image on all devices. Less disk space, but slower loading on older devices.

    So, if you are concerned with disk space or don't want to take a lot of time reworking your art, I would suggest leaving your current images and turning off RI.

    If you want optimized loading times and the best graphic fidelity, then make images for a @3x target (50% bigger than your current retina images) and turn on RI.

    I hope that clears things up.

  • SocksSocks London, UK.Member Posts: 12,822

    @JSproject said:
    Retina devices like e.g. Ipad Air/4/3 and Iphone 5 would use the @2x images which would be the wrong resolution and look crap . . .

    What are you basing this idea on, I'm not disagreeing, I'm just curious as to what you've read that says the 2048 x 1536 iPad would choose to use not the 2048 x 1536 image, but the 1365x1024 image ?

  • JSprojectJSproject Member Posts: 730

    @Socks said:
    What are you basing this idea on, I'm not disagreeing, I'm just curious as to what you've read that says the 2048 x 1536 iPad would choose to use not the 2048 x 1536 image, but the 1365x1024 image ?

    On the info that the code for loading @3x image assets is only present if your device is running IOS8.

  • SocksSocks London, UK.Member Posts: 12,822

    @JSproject said:
    On the info that the code for loading 3x image assets is only present if your device is running IOS8.

    Oh I see what you mean now.

  • JSprojectJSproject Member Posts: 730

    @adent42 said:
    JSproject Yes, you are correct in terms of what is generated. I believe Apple's idea is for you to actually build even larger assets and scale based on the device. See: http://www.paintcodeapp.com/news/iphone-6-screens-demystified

    So the 3x and 2x thing is a loading time optimization for older devices. Since lower resolution devices can't see the detail provided by the larger images, then you can avoid loading the larger images.

    If you're more concerned about disk space, what you can do is turn of the GS resolution independence flag and we will always load the "large" image on all devices. Less disk space, but slower loading on older devices.

    So, if you are concerned with disk space or don't want to take a lot of time reworking your art, I would suggest leaving your current images and turning off RI.

    If you want optimized loading times and the best graphic fidelity, then make images for a 3x target (50% bigger than your current retina images) and turn on RI.

    I hope that clears things up.

    Using the current images (2x assets with ipad retina as base) but turning off RI would kill off, currently working, support for: Ipad Mini and Ipad 2 since those devices only have 512 MB RAM and can't handle the high res images. That is a sacrifice I will be forced to make then if you are going through with this. That's a shame though since nothing would prevent me from supporting those devices otherwise.

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 2,687

    FYI, we would be using the @2x images on iPad as @JSproject states.

    The iOS devices gives us a "Scale factor" which is what we use to determine what images to load (as does the native iOS image loader, which we are no longer using). iPads with Retina have a scale factor of 2 so we would load @2x images.

    So while @JSproject is right in what is going to happen with images, what you're supposed to do to compensate is make art with a large dimension of 3072. The @3x would be 3072, the @2x would be at 2048 as intended and the @1x would be 1024.

    Basically, as these devices get higher resolutions, the art requirements are going to grow accordingly.

  • SocksSocks London, UK.Member Posts: 12,822

    @adent42 said:
    If you want optimized loading times and the best graphic fidelity, then make images for a 3x target (50% bigger than your current retina images) and turn on RI.

    But, if what JSproject says is correct, then most devices will have a worse graphic fidelity than they currently do ?

    Using a 2048 x 1536 image would previous have given us . . .

    2048 x 1536 images on a 2048 x 1536 screen

    1024 x 768 images on a 1024 x 768 screen

    . . . but now we will have . . .

    1365 x 1024 images on a 2048 x 1536 screen

    682 x 512 images on a 1024 x 768 screen

    Is this reduction in quality correct ?

  • SocksSocks London, UK.Member Posts: 12,822

    It's also odd that we are being moved towards working at 3072 x 2304 (3x) when no device even exists at that size ?

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 2,687

    @Socks yes. So if you want to use our RI autosizing, you will need to provide images that are 3072x2304.

  • SocksSocks London, UK.Member Posts: 12,822

    @adent42 said:
    FYI, we would be using the 2x images on iPad as JSproject states.

    So as it stands, iPads apps produced with GameSalad are going to experience a drop in image quality if we continue to work at their current screen resolution ? And not just a subtle drop in quality either !

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    Whoa whoa whoa, this new resolution stuff sounds like a terrible idea.

    Follow us: Twitter - Website

  • LovejoyLovejoy Member Posts: 2,078
    edited September 2014

    The more adent explains this, the worse it sounds.

    Fortuna Infortuna Forti Una

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    So let me get this straight, With RI enabled on a ipad with a resolution of 2048x1536 and images of 3076x2304 they would be just downscaling? If I don't choose RI and I use the current images then every device must use my 2048x1536 images or have seperate builds?

    Follow us: Twitter - Website

  • SocksSocks London, UK.Member Posts: 12,822
    edited September 2014

    @adent42 said:
    Socks yes. So if you want to use our RI autosizing, you will need to provide images that are 3072x2304.

    A commonly held myth is that downscaling is fine whereas upscaling is bad for image quality, and while the latter is true, downscaling also reduces fidelity, especially on graphic imagery, all your hard won anti-aliasing and edge quality suffers with downscaling, although not as much as upscaling, but it still reduces quality somewhat, in theory a 4x image scaled down using no interpolation (nearest neighbour) would not lose quality, but a 3x image scaled down always will (with, of course, interpolation).

    This all sounds a little messy to me ! So basically anything we are currently working on for Retina iPad will end up being scaled down to sub Retina resolutions (1365 x 1024 pixels) ? Goodbye sharp lines !

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    Can't we have control over the Scale factor? For example have a tick box for 2x or 3x assets with RI so we can choose if we want to go triple or double resolution and scale accordingly?

    Follow us: Twitter - Website

  • JSprojectJSproject Member Posts: 730

    @Socks said:
    Is this reduction in quality correct ?

    Yes, that is exactly what I am saying and what adent42 is confirming. There is no way, with the upcoming GS image auto-naming/scaling, for any device that is running IOS7 or below to load an image with the correct resolution anymore (if the GS team proceed as currently planned) - if you are not remaking all your graphics (quite a big job to do if you just want to push an update for a current app).

    @adent42 said:

    "So, if you are concerned with disk space or don't want to take a lot of time reworking > your art, I would suggest leaving your current images and turning off RI."

    This confuse me right now (it's late here and i'm tired) are you actually creating @2x images in that case? (I would think not... can easily check that tomorrow myself). Are you saying that if we do provide a retina image of 2048x1536 and it is not named @2x (since we are not checking RI) then the retina device would load that image and display it on the device at its full resolution anyway?

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    @JSproject said:
    @adent42 said:

    "So, if you are concerned with disk space or don't want to take a lot of time reworking > your art, I would suggest leaving your current images and turning off RI."

    This confuse me right now (it's late here and i'm tired) are you actually creating @2x images in that case? (I would think not... can easily check that tomorrow myself). Are you saying that if we do provide a retina image of 2048x1536 and it is not named @2x (since we are not checking RI) then the retina device would load that image and display it on the device at its full resolution anyway?

    I'm confused too, now I guess that make sense, but then what about 1024x768 devices, they would be forced to used the 2048x1536 at full size, and effectively double the memory usage+force us to use non-RI projects with camera trickery to make it look right?

    Follow us: Twitter - Website

  • SocksSocks London, UK.Member Posts: 12,822
    edited September 2014

    @AlchimiaStudios said:
    So let me get this straight, With RI enabled on a ipad with a resolution of 2048x1536 and images of 3076x2304 they would be just downscaling?

    Yes, that sounds like the case, but even using the larger 3072x2304 image size, downscaled to 2048x1536, won't give you the quality you previously got from 2048x1536 images, the downscaling process (*66.6666) will mean (regardless of whether bilinear, bicubic, nearest neighbour or whatever the interpolation method use is) that your images will effectively be smeared (anti-aliased if we are being generous), it's simple maths, a 2 pixel wide line on your original has nowhere to go when scaled down, it's either going to be 1 or 2 pixels wide (nearest neighbour), or a slightly smeared image that represents a 1.333 pixel wide line (bicubic/bilinear etc) as there is no such thing as a third of a physical pixel.

    Not good. The whole 'make images x2 or x4 to prevent blurry onscreen images' has just gone out the window, as blurry images (the very ones the advice sought to avoid) are now built in by default.

    Quality-wise the better thing to have done would be to have used 4x images scaled down using nearest neighbour.

  • JSprojectJSproject Member Posts: 730

    Great, more people are understanding and thinking. Have to sign off now, work starts in a few hours.
    The GS team have done some really great things lately so I really hope their current thoughts in regards to this are not set in stone. An optional setting (for us) in regards to "use the current 2x scaling" (produce 2 image assets) or "use the new 3x scaling" (produce 3 image assets) during publishing would at least be much much better than the current plans in my opinion.

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 2,687

    If this helps:

    • Image@3x - iPhone 6 plus
    • Image@2x - iPhone 6 - 4, iPad w/RI
    • Image - iPhone 3, iPad

    So in order to support the iPhone 6 plus, your images need to be bigger (about 3x bigger than what you'd use on a non RI device).

    When you check RI, we scale the images for you on disk making Image@3x, Image@2x and Image. This means the smaller images will load for devices that have lower resolutions.

    When you don't check RI, we leave the image alone, and let OpenGL scale the image for you. The image will display at the best fidelity possible, but on lower resolution devices they will take a bit longer to load since they are loading bigger images than they need.

    This is how it's always worked. Before we assumed your biggest art was targeted to the most capable device (@2x) and scaled that art down accordingly. Now that the most capable devices uses @3x images, you will need to provide artwork to use on that device.

    If we made it an option to only provide only @2x images, then the device would have to scale the images UP for iPhone 6 plus instead of down from the best artwork.

    So if you want to do it "right", start making your images bigger and check RI. If you don't have the resources or access to original files to make your artwork bigger, then don't check RI and the engine / OpenGL will scale the images for you to provide the best possible display.

  • SocksSocks London, UK.Member Posts: 12,822
    edited September 2014

    Just did some initial tests on the scaling factors involved with the 3072 pixel wide image size, and how they effect graphic images, the results are a disaster, I'm not exaggerating either. I can't say what scaling method GameSalad's servers use, but I expect it's not too far from common methods (most likely bicubic), so I've used Photoshop set to nearest neighbour first and then bicubic.

    All I can say is goodbye clean lines ! As a quick example of the kinds of things to expect, it is now impossible to get single pixel wide line on a Retina iPad or an iPad 1, actually mathematically impossible . . . well that's not entirely true, you can have a single pixel line, but you'd need to create it by drawing a 2 or 3 pixel wide line, then using nearest neighbour when scaling (but obviously we have no control over the scaling method) and then you can't reliably predict where it will arrive, it will either be to the left or right of your orginal (as well as being the wrong size), another example would be that lines of width 1, 2, 3 and 4 pixels on a 3072 pixel image will all end up as 1 pixel wide when the 3x is scaled to 1x, or the lines could fail to show up at all (depending on their original position), and if they do show up they will be shifted from their original position . . . and so on . . . so basically nearest neighbour wouldn't be viable as a scaling method here, luckily GS definitely don't use it.

    So that leaves the interpolation route, which does similar thing, and again here for the same reasons (a non-divisible scaling factor) the results are as bad, perhaps even worse than nearest neighbour, again, clean 1 or 2 pixel lines on 2x or 1x resolution devices are impossible to achieve, literally impossible, there is nothing you can produce on a 3072 pixel wide image that when scaled down (using any scaling method outside of NN) that will give you a clean line.

    And all this is not taking the compromise route (with its enormously reduced resolutions for iPads), this is taking the 3072 pixel wide route ! Neither route will increase image fidelity, both will impact on image quality in very noticeable ways.

    Like I say, a disaster.

    I'd say the only viable way around this would be to use 4x images and downsample using nearest neighbour to half and quarter sizes, of course there would be a memory penalty here, but if the idea is to further proof, then that extra quality is likely to have a role over the next few years . . . . or allow us (as an option) to produce our own x2 and x1 images.

  • colandercolander Member Posts: 1,610

    @Socks the new iPhone 6 Plus resolution is 2.3x how does using a 3x image on this resolution work and look?

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    @adent42 said:
    If this helps:

    • Image@3x - iPhone 6 plus
    • Image@2x - iPhone 6 - 4, iPad w/RI
    • Image - iPhone 3, iPad

    So in order to support the iPhone 6 plus, your images need to be bigger (about 3x bigger than what you'd use on a non RI device).

    When you check RI, we scale the images for you on disk making Image@3x, Image@2x and Image. This means the smaller images will load for devices that have lower resolutions.

    When you don't check RI, we leave the image alone, and let OpenGL scale the image for you. The image will display at the best fidelity possible, but on lower resolution devices they will take a bit longer to load since they are loading bigger images than they need.

    This is how it's always worked. Before we assumed your biggest art was targeted to the most capable device (@2x) and scaled that art down accordingly. Now that the most capable devices uses 3x images, you will need to provide artwork to use on that device.

    If we made it an option to only provide only 2x images, then the device would have to scale the images UP for iPhone 6 plus instead of down from the best artwork.

    So if you want to do it "right", start making your images bigger and check RI. If you don't have the resources or access to original files to make your artwork bigger, then don't check RI and the engine / OpenGL will scale the images for you to provide the best possible display.

    That just confirms all of our worst nightmares. Why cant you have a 2x and 3x RI option in place?

    This will mean supporting the ipad 2, ipad mini, and even potentially the iphone 5 will be very very hard due to GS Current performance limitations (heavy memory usage).

    For people with projects reaching up into the Gb's you'll be potentially crippling the ability to even meet file size requirements on a universal build. Not to mention that a game this large would be near impossible to uprez.

    also 3072x2304 is MUCH higher resolution then the iphones 1920x1080, why is it that it needs these tripled iPad assets again?

    Follow us: Twitter - Website

  • SocksSocks London, UK.Member Posts: 12,822
    edited September 2014

    @adent42 said:
    If this helps:

    • Image@3x - iPhone 6 plus
    • Image@2x - iPhone 6 - 4, iPad w/RI
    • Image - iPhone 3, iPad

    So in order to support the iPhone 6 plus, your images need to be bigger (about 3x bigger than what you'd use on a non RI device).

    But the scaling factor is 3x times a standard iPad (1024 x 768), which is 3072 x 2304, which as a number is not even related to the iPhone6/+ screen resolutions ?

    Even the highest resolution iPhone6+ has a smaller pixel count (1920 x 1080) than the current iPads (2048 x 1536) ?

    An iPad image is already bigger than the iPhone6+ !?

    @adent42 said:>
    When you don't check RI, we leave the image alone, and let OpenGL scale the image for you. The image will display at the best fidelity possible, but on lower resolution devices they will take a bit longer to load since they are loading bigger images than they need.

    This sounds like the only viable route if image quality is a concern.

    @adent42 said:>
    This is how it's always worked. Before we assumed your biggest art was targeted to the most capable device (@2x) and scaled that art down accordingly.

    Yep, but the scaling factor worked before, but now our choice is significantly reduced resolution across all devices (with a 2048 starting point) or noticeably reduced image quality (with a 3072 starting point).

    @adent42 said:>
    Now that the most capable devices uses 3x images, you will need to provide artwork to use on that device.

    But I still can't see how they use 3x images, 3x is 3072 x 2304, yet the iPhone6+ is only 1920 x 1080 ?

    @adent42 said:>
    If we made it an option to only provide only 2x images, then the device would have to scale the images UP for iPhone 6 plus instead of down from the best artwork.

    An iPhone 6 plus is 1920 x 1080, a Retina iPad (using 2x images) is 2048 x 1536, the images would not have to be scaled up, but down.

    @adent42 said:>
    So if you want to do it "right", start making your images bigger and check RI.

    This is will result in a reduced image quality, even starting with a 3072 pixel image, all devices with receive an image of a noticeably lower quality that we could previously achieve, graphic images (the foundation of much gaming) will suffer the most.

    This is honestly a disaster from a quality point of view.

  • SocksSocks London, UK.Member Posts: 12,822

    @colander said:
    AlchimiaStudios iPhone 6 Plus resolution is 2208x1242 not 1920x1080

    Internally yes, but the actual screen resolution is 1920x1080.

  • AlchimiaStudiosAlchimiaStudios Member Posts: 1,069

    @Colander That's the true resolution, but it is being downsampled to 1920x1080 on the screen. For all purposes it's a 1080p screen. 2208x1242 is for ease of use by developers and for auto-scaling apps. I'd imagine starting with anything above 1920x1080 will provide an image that's just fine. In fact on my own projects running on a 1080p android using ipad 2x images with some camera tricks to view it, it's quite clear and has minimal if any graphics fidelity loss. in terms of actual pixels 2048x1536 is still a much higher reoslution than 2208x1242

    Follow us: Twitter - Website

Sign In or Register to comment.