Oh, okay. I just thought it would as it's a more developed graphics engine. Isn't there anything that lets me just draw to a virtual canvas type thing at a set resolution that just scaled to what ever screen size and density it runs on? So I don't have to keep scaling images and coordinates all the time? Screen percentages are okay but don't work well with converting games from PC which is all pixel based in 2D to having to deal with scaling.
It's a bit more complicated. Due to the different aspect ratios, defining a viewport size of 640x480, for example, will not be ideal on some screens; you will have black bars on the sides if you want to avoid distortions. It's convenient for you, but not very attractive for the user and if you look at the current top games, you will see that they do not use this method (the screen is entirely filled whatever the resolution, density or aspect ratio of your device is). If your background image, for example, has a size of 1280x800 (ratio 1.6), you have to select one of the following options to display it on a 1024x768 screen (ratio 1.333):
- you don't reduce its size and you set its origin to (1024-1280)/2=-128 , (768-800)/2=-16.
- you adapt it to the screen, thus the new height is 768 and the new width is 1228 (you will lose 102 pixels on the left and right sides, so your image should not include important drawings in these areas).
- you use different images for different aspect ratios, for a more artistic panning.
- you use a nine-patch drawable so your image can be nicely stretched.
This problem is identical on a PC. Different resolutions different aspect ratios... I don't think that using only the pixel unit is a good think whatever platform you use. You have always to scale your work to fit the screen. With libGDX, you can use your own unit (tiles, meters, etc.) but, in the end, this unit has to be scaled properly.