- Home /
How big industry companies of 2d mobile games prepare their assets for multiple resolutions/platforms?
I'm having a hard time to understand how to prepare my assets to look sharp on multi-resolution without making lots of copies of the same texture in different sizes.
I'm making a match 3 game where the assets I bought from the asset store are 400x400 (NPOT) and I want to make sure it'll look sharp on all resolutions.
I understand the variables of the formula are Orthographic Size, PPU and the Size of the texture. considering that it means that on S10 where the vertical height of the screen is 1440 and assume I want 10 pieces of my game board to occupy 80% of the screen height 0.8 1440 = 1152 divided by 10 = 115.2px so each board piece size equals 115.2x115.2 px to look crisp. So if my Orthographic size is 5 units (10 vertical units in total) and 80% of 10 is 8 units then I have to fit 8/10 115.2 PPU in order to be good. But then on 1080p I'll have 0.8 * 1080 = 864 / 10 = 86.4px so now I'll get a downscale.
So I have the option of dynamically changing my camera size and/or PPU which feels a little weird because it will also zoom in and out other parts of my game.
If the right way is to make multiple texture sizes then I'm blowing up my package size and it means that I'll have to use asset bundle with lots of variations and download the correct one the first time user is installing the app.
I wonder how big game companies handle this. Is using multiple atlas's is the right way to go? If so, how do I make sure the right atlas is being used by the matching device.
What is the art style like?
If its a vector based game or a pixel art game it wont matter as with vectors they scale "losslessly" infinitely and with pixel art all the information is the same you just scale with nearest neighbour.
It is neither vector or pixel art. We use regular .png files.
Answer by dbchest · Aug 18, 2019 at 10:35 PM
start here: Designing UI for Multiple Resolutions
additional reference here: Canvas Scaler
The official documentation does a pretty good job of introducing you to the concept here and walking you through a practical example. When designing an interface to be ported to multiple resolutions you should first design your interface with a target platform in mind. use the target platform's resolution as your canvas scaler's reference resolution and make sure that your screen match mode is set to 0.5. this will get you the result you are looking for.
Thanks, I read it but it didn't quite answer my question. I'm okay with how my UI scales what's bugging me is the actual in-game textures.
https://blogs.unity3d.com/2018/11/19/choosing-the-resolution-of-your-2d-art-assets/
I think he mean to post this. But how does his answer not answer your question?
Hey thanks, I also read this one. As you can see I'm using the same formula in my example. His answer is for UI elements which I'm not even using at this point hence I don't even have a canvas scaler or canvas for that matter. In the post you linked there are three methods to solve the issue but none of them talks about making multiple texture size which is also an option. And out of curiousity, I'm trying to figure out how big companies handles this. There are a lot of options and I'm sure they have figured out the correct path of doing this. $$anonymous$$y first intuition was to make several asset bundle variants and download the correct one to the user phone on demand, then, I came across an article which says that it is a bad idea to keep the user waiting for the game to install cause many of them don't like waiting. Hope that makes sense.