Pixel game's resolution and scale

Godot Version



Hello, I’m developing a pixel art game and I’m having some problems.
My sprites are drawn based on a size of 960x540 and my project settings are:

Exactly as described in the document.

But I found some problems. If I play the game on a 1920x1080 screen, every 2 pixels are treated as 1, so when I try to rotate some sprites, the sprites get distorted. (This also happens when skewing).

I know this is technically correct, but it’s not what I want. I want the sprites to rotate more smoothly. (I know rotating/skewing should be disabled in pixel games, but sometimes I really need them).

I think for quite a while and get a conclusion:

I want my sprites to be 2x the size so they look like retro pixel style, but when moving, I want them to move 1x fast so the game is smooth.

I’ve created a lot of nodes, so changing all of them to 2x their size is a tedious task. Also, if I find out that this solution has some pitfalls that I haven’t yet discovered, then changing them back in the future would be a horrible task.

Finally I find there is an option in the project setting, so currently the project setting is:

Rotation and skewing are much smoother with this setting.

In fact, I don’t even need 540p resolution, 1080p is what I want. Also, if I need real 1px stuff (fish line), I can set the width of line2D to 0.5.

So, this solution seems to have a lot of benefits for my pixel game, but it’s not listed in the official docs, so I’m worried that there are some pitfalls that I’m not aware of.

Can someone give me some hint? I’d appreciate it.

There is a new pixel setting in Godot 4.3 that may help with this. Officially coming soon. You can actually go try it now.

There have been many discussions on this subject I would search for “pixel perfect” games.

Also there is this approach