Search Unity

What Resolution should I be painting sprites in?

Discussion in '2D' started by BradBitsbard, Feb 1, 2014.

  1. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,411
    Horizontal/vertical layouts will automatically arrange their children based on a set of parameters.

    Best to go through the tutorials and experiment a bit.
     
  2. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,720
    Just for reference, here is our workflow:

    1. Draw in 8k resolution in Photoshop. Save to 8k png (source). This is the maximum size we find feasible. Double our maximum supported size, but still not so large our computers freeze up while drawing. Large filesizes, but HDD space isnt much of an issue these days.

    2. COPY the source image & shrink to 4k resolution in photoshop. (We use a script to automatically grab a folder of 8k images, shrink them to 4k, then SAVE AS to a new folder). Do not edit the Source image. That should remain pure. Only edit a COPY of the original source version.

    Our 4k version is the actual png imported into our game. It is 50% the size of the source.

    This is because our game supports 4K resolution. If we only wanted to target 1K, we would shrink from 8K to 1K.
    Never touch the source image.

    3. Then we use ASSET BUNDLES and we plan on using ASSET BUNDLE VARIANTS. Now I havent gotten far enough to use Variants yet so I cant say they are easy to use.

    Asset Bundles
    are a PITA to setup. However I am hoping everything Unity claims about them are true. So far it seems so. Lots of work for me, but it is likely worth it.

    For targeting iOS & Android, you have completely different Asset Bundles. For these I would import much smaller images.

    For PC/Mac/Linux you can use the same bundles across all 3 of thise platforms. With Variants, you can have a 4K version, a 1080p version, HD/SD, etc. You can have these as separate versions of your game (minimize download size) or as separate options (minimize memory usage so low res users arent loading 4k images).

    To reiterate: You need one AssetBundle set for iOS, one set for Android, and one set for PC/Mac/Linux. Variants are optional.

    This is something to consider, now that Resources.Load is supplanted by AssetBundles (new best practice).

    Just be warned that AssetBundles can be a PITA to manage at first. Takes a bit to learn about them & even longer to set them up, unless Unity's example projects fit well with your own project.
     
    Last edited: Sep 18, 2017
    larku likes this.
  3. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,411
    Just curious, why don't you just use Unity's import settings to scale each image to the desired size for each build?

    I've not used Asset Bundles - does using Asset Bundles complicate this?

    Just asking for 2 reasons, 1) am I missing something (if so, I want to learn) 2) It may reduce your asset creation pipe line if you can avoid the batch resizing from 8k to 4k.
     
  4. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,720
    To be honest, I wasn't ever aware this was even a thing until after I already setup my automated workflow. Although I still would most likely make sure nothing I ever import to Unity is anything other than the maximize size I'd use. More of a "Oh you can do that? Oops, too late for me..."

    Mostly it is probably convenience in myworkflow. There isn't really a need to do this in Unity. I have to output the images/layers in a photoshop script anyway (make a copy of the images, output a whole image for reference/ColliderGen & output multiple pieces of a sprite [multiple png's] for a single photoshop document.) so might as well just shrink them to the maximum size I'll ever use. It's just one more 'shrink 50%' step to photoshop's automated action.

    I also don't like the idea of importing an 8K image into Unity. Especially since I am constantly finding out Unity has this weird exception or strange quirk where in this case or that where things mess up. I trust Photoshop shrinking the image a lot more than Unity. I am constantly having to fix problems with Unity or learning peculiar aspects of Unity's features. There is also the fact Unity is constantly changing, so you never know when the next update will give me a headache because they change a feature. Especially when their Asset Bundles seem to be their new standard but also seems very "Beta".

    At least with Photoshop shrinking it to max size, I will never have any problems no matter what happens in Unity's future.

    I am not really sure yet. I haven't gotten into Asset Bundle Variants yet. I just finished my 20 hours of work implementing Asset Bundles & a load/unload system for all my assets/prefabs. So right now all I support is 4K (default size). I probably won't work with Variants until much later, when I feel it is time to support 1080p. I likely won't support mobile, if ever.

    From what I understand, Asset Bundles won't really complicate it though. I could be wrong though. Asset Bundles are a bit of a mess in many ways. I wouldn't be surprised if I misunderstood the docs or missed some part. So don't take my word for it.

    I'm pretty sure you aren't missing anything - I don't think it would matter one way or another even with AssetBundles. This is more along the lines of "Where do you do it? Photoshop or Unity?" and I choose Photoshop.

    I also might add that the team's artist makes sure the images ready to import into Unity is already scaled to the correct 4K size. I am the only one working with the Unity Editor, so if the artist didn't do it for me then that's one more thing for me to do & have to double check. I already have an enormous workload & even tiny things can stack up.
     
    Last edited: Sep 20, 2017
  5. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    52
    Interesting thread, thx to all the contributors above.

    I'm building for iOS and for my landscape background I'm importing a POT 4096x2048 png.
    When I'm adjusting the max size to 1024 then I get the message 'Cannot compress a non-square texture with sprites to PVRTC format'.
    What consequences will this have? I do see resolution changes when I change the Max size to 1024 and hit apply.
    The same goes for a character sprite into an iOS project. Do I import it in a square POT or can I leave them in a non square POT?
     
  6. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    52