@Magniffect
Glad that you asked questions and your questions are really great.
I am not sure if you already know multi screen resolution concept but I am assuming you donât know and Iâll answer one by one.
First of all, on very basic note, multi screen resolution has nothing to do with HD graphics or Low quality graphics. You can assume that youâve just one set of graphics and scaling it properly is what makes your game capable of adapting for multiple screens⌠HD, SD, etc graphics are just for enhancing your game graphics so that you donât load HD graphics on low end devices OR low quality graphics on high end devices.
1) Itâs very easy to make graphics for icons/buttons/small part of screen but designing(plus writing scaling factor) for something that crosses the screen from either height wise or width wise is always main concern.
There are SEVERAL APPROACHES(whether your game is portrait/landscape/vertical/horizontal/what kind of vertical/horizontal/board game/etc.). And idea is to learn concept and not each approach. Depending upon our game, we handle graphics and code for multi screen resolution. What @SonarSystems explained for their graphics, it is very general way to explain this concept. Where we design main parts of our graphics in the common area which comes inside all aspect ratios.
https://www.youtube.com/watch?v=67KGqN3-Y&list=PLRtjMdoYXLf4C3yOPOLaQ0XF5RxnDTZ4A
Now, in my case! first of all, Iâve game in PORTRAIT mode and I am making a board game and for me, width matters a lot. It means, I am designing for the shortest width possible in aspect ratio which is 16:9 (1.777). And in my graphic(letâs say patterned rectangle), Iâll put my main things inside this shortest width and then extra part of this graphic can lie out side the screen, I donât care. In wide width, more part of the patterened rectangle can be seen in narrowest screen which is 1.777 screen, my main part will always be accommodates. Well, you would say, Iâve board game, so why I am just caring about width!! BECAUSE I donât have anything in my game which I should worry about height wise. Regarding picking POLICY (SHOW_ALL), I may change it. But again, it depends.
With the code above, my main motive was to show that in different design resolutions, I picked different graphic plus aspect ratio maintained!
2) What resolution corresponds to each folder!! Means? Didnât understand your question properly. But in general, those are my own definition of high quality or low quality⌠As each of the 3 folders have highest quality of their category, so I think I am safe to assume whatever it is. I donât have to worry much about edge cases that I am unaware of right now.
Also, as you can read in my code above⌠px <=1280 are SD (almost all ld and md and some hd will come inside it) 1280< and <=1920 is HD for me, where all hd and some xhd will come and >1920 all xhd and some xxhd should come. And some xxxhd devices will be there but I am safe enough since my SHD graphics are according to higher side of my SDH category⌠Again, I donât have to worry about exact things. Theyâre my way of categorizing. Just that I donât wanted to keep 4 folders for the very low end devices and neither I wanted to load very high definition graphics for lower kind of medium end devices.
3) I donât have to compare available screen size, I could have hard coded it as 1280 but but!!!
For me, itâs good practice to keep design resolution same as physics device you have because you can test it easily. I could have kept my design res as 640x360(1.777) instead of 1280x720(1.777) but reason was why should I add complexity! when I have device of 1280x800 Itâs good for me. Now, when Iâve written my scaling code, whatever Iâll make graphics according to 1280x720, I can always test on my 1920x1080 very easily for its correctness.
NOTE: Since, 1280x720 is too huge to design graphic. My actual corresponding size in graphic software is too small (157.5, 280) Now, when I export my graphics for SD, HD, SDH, I simply scale my graphics by some factor. And this factor, I donât calculate, I just tell it that my window size is 1280, 1920(1.5x), and 2560(2x). and it calculates for me nicely. 1280, 1920, 2560 are just dividing lines for pixels that device would be having. Ex. Y can be anything in 2560xY, I just know that Y would be too high for sure to make it easily eligible to pick SHD, and similarly for 1280 and 1920⌠Note, I donât have to be so much exact bcoz there are too many cases and I donât feel like adding complexity.
You can pick folders width wise also if you want! No issues in that.
BUT!! SCALING whether according to width or height MATTERS a lot. In my case, Iâve done it according to HEIGHT(WHY??) ITâS IMPORTANT TO SEE CAREFULLY⌠I told that, âgiven my gameâ itâs much convenient for me to design for 1.777(which is extreme case of height(max) or width(min)).
Which means⌠suppose if I am putting logo in the middle of screeni in my graphic like below,
then what possible combinations can be in my playerâs device!! 2 thing to look atâŚ
A) KEEP SAME HEIGHT, increase widthâŚ(decreasing aspect ratio)
Does it look odd to you? It wonât⌠because my code said that all are 1280px so donât scale any of the icon or font/image!!
Note: Iâve not decreased width bcoz I just told that I have extreme case of width(
min)
B) keep same width , change height (still decreasing aspect ratio)
Does, it look odd to you? I wonât⌠because my code scaled things down as I told that height is smaller than 1280 which is my design resolution.
Note: Iâve not increase height bcoz I just told that I have extreme case of height(
max)
Also, I donât have to calculate whether the other screens are 3:2 or 4:3 or blabla, they can be anything, and hence the design on right side of my main design are random increment in width/height.
C) Now, you can decrease width/height at same time. Code will adjust automatically just like schoolâs physics chapter! Work for y and x and combination will resolve by itself.
By keeping extreme case, Iâve simply decreased my pain of calculations, otherwise, I would have lost what to do when⌠I didnât complicate.
4) Sorry, I didnât understand this question.
5) Taking into account navigation bar doesnât matter because what I tell that you never had that part of screen or what if I say that a new device is manufactured where navigation bar is not there but screen height is smaller by equivalent to height of navigation bar in some device!
Anyways, Iâll be removing navigation bar in my game through code. Iâve put up a topic asking how to remove it.(I know it can be removed)
Donât try to apply my approach directly to your game even if it is portrait or board game! Because, you must also know how are you designing graphics according to the scaling code youâve written!
All dependsâŚAFAIK, Iâve written correctly for the scenario, I talked about here.
AGAIN⌠there are several approaches. You can do whatever, according to what is your game mode-portrait or landscape, game type, how are you designing graphics, and most importantly how do you game to look like etc.
You donât have to learn all approaches, not even one. Just see the concept. And you yourself can apply to all and anything that can come in future.
Can I change, my RESOLUTION POLICY⌠Yes, I might! But do I need to change my scale factor logic? No, because that is how I am designing all my graphicsâŚso, if Iâll change then Iâll have to make logic calculations again to ensure things.