Jagged movement due to low resolution

Hi all, I’m trying to make a basic platformer with a tile based system. Each tile is a 16x16 texture. Because of this I am using a very low resolution then scaling it up using a render target.
An unfortunate side effect of the low resolution is that my characters movement can look very jagged, especially when they are in the air moving slowly. Here is a video clip of it:

This only happens when I force the character to be drawn to the nearest pixel. If I don’t do that then the player looks very blurred.
One solution I have been thinking of is to scale all the textures up by 4 in photoshop and have the game run at 4 x the current resolution. However this means the player can move between pixels.
I watched some gameplay from mario bros and it looks very smooth despite the low resolution how did they achieve this?
Is my solution a good idea? Is there anything else I can do?
Help would be greatly appreciated.

I’m guessing you keep player’s position as vector / floats and convert it to int (point) when drawing. Did you try using math.floor before you convert from float to int? It looks like percision errors in your video (float getting rounded up and down rapidly).

You can have an Orphographic camera with a lower resolution than the backbuffer, without going through a rendertarget and the GPU will sample/blend the texture for each pixel.
With that said, you can also use larger textures and still render them as 16x16 ‘units’ in your virtual camera resolution.

That’s strange. I think you somehow let the pixels/resolution into the movement logic there. Normally, change of the rendering shouldn’t affect the physics. You have to think of your tile/camera/movement units independently of the backbuffer/texture resolution.