• 2D
  • How to choose pixel size for art?

Is there a particular convention when it comes to picking what pixel size your artwork should be before you start drawing? I still have trouble wrapping my head around it occasionally. I'm asking because there seems to be a standard size of 32 x 32 or 64 x 64 and that seems awfully small.

At the same time though, is this because there really is no point in making your art bigger as it's wasted pixels the players won't see on the monitor anyway? Do they link together better maths wise? I'm trying to understand the why of the way everything is setup by default so I'm not just blindly clicking settings without really knowing what I'm doing.

Usuallly working in pixel art you set screen resolution to 320 x 180 or 640 x 360

Is there a particular mathematical reason for this?

@Lethn said: Is there a particular mathematical reason for this?

Old computers used low resolutions. The math is just based on the size of the sprites. (You don't want the sprites to be tiny on a huge field.)

I usually make 256px or larger sprites, even when I mean to scale them down to smaller sizes. Scaling is cheap, even on-the-fly in your game. In some cases, it's better to use even-numbered sizes or powers of two for your art, but that's probably over-optimizing unless you're making textures for 3D work.

Thanks, that's something I can start looking up in more detail now.

the larger the character/scene, the more detail you will need to add.

most people use 1920 x 1080, so if you want your PC game fullscreen without black bars, you should use a canvas that scales to the screen resolution.

Thank you Zelta that's a brilliant amount of information actually and just what I was looking for, I knew there would be proper maths lying about the place on this topic, glad I asked about this generally.

10 days later

640 x 360 is the highest you can go whilst still scaling perfectly for all the most common resolutions. 720p, 1080p, 1440p and 4k.

Mathematically, they are all divisible by 640x360.

1 original pixel will scale up to 2, 3, 4 or 6 pixels exactly. This is good because if 1 pixel scales to a non integer value, eg 2.5 then the scaling algorithm has to decide how many pixels to display and your sprite will not render pixel perfect. (This is also why you want to snap pixels to the nearest integer x,y coords)

I would recommend choosing the resolution for the window first, and then figuring out a good size to fit. You probably want to use at least 720p or ideally 1080p, so the UI and text can be clear. If you use an old resolution, then you will be very limited with the font. Also, with a higher resolution (I would design for 1080p, but make it scalable to any native resolution) then you can have smoother animation because the sprites would be lower resolution with duplicated pixels. For example, if you want the tile size to be 32x32. You can instead make it 128x128, but each sprite pixel is 4 real screen pixels. It will look exactly the same, but now you can move the object 4 times as smoothly. However, you may run into issues if you want a pixel perfect look. In that case, you'd want to use integer scaling, or code your own scaler (like in a shader) so the sprites don't be blurry.