How to stop Wobbling/Jittering Pixels when camera scrolls?

Hello.

I am working on a game at 280 X 140 resolution. Its using pretty simple pixel assets I’ve created myself. my issue is that whenever the camera scrolls, the stationary sprites - ground, grass, mountains in background - have a wobble, back and forth of about 1 pixel. This creates a strange jitter effect; everything is pixel perfect when the camera ISN’T moving.

Scale mode is at “Nearest (no antialiasing, good for pixel perfect games)” and smoothing is disabled for all of my sprites. All I’ve done with the camera is create an action that has the camera centered on player. I’ve searched but can’t seem to find anything pointing me in the right direction.

Any help would be greatly appreciated.

Thank you, and Happy New Year everyone.

How are you moving your player? And are you moving your player, then centring the camera (and not vice versa)?

I am moving my character with the arrow keys. Side view 2D. I’ve disabled the default controls and have the inputs as events simulating left and right press.

As for the camera, I just have an event with no conditions, with the action “Center Camera on object within limits” centering on my Player. I’ve attempted to just try “Center Camera on object” and the same thing occurs.

I’m relatively new to GDevelop so I don’t know if I am centering before moving etc.

Thank you for the response.

Ok, but are you centring the camera before or after you move the player?

I honestly do not know. If it is a specific function or option to center before or after, I’ve never heard of it. If it’s just the way the camera work then, the only thing I’ve done is put in the aforementioned action that makes the camera follow me around. The camera does starts focused on the player if that is what you are asking.

Sorry if I couldn’t be more help.

Ok, I’ll be a bit more specific - do you have the events that simulate the left and right keypress before or after you have the event that centres the camera on the player?

I have it after, but I did have it before with the same issues.

Could you provide a screenshot of your events, so we can see what’s going on?

And are you moving your player, then centring the camera (and not vice versa)?

@MrMen @dvd

I have a somewhat complex camera setup and my project’s resolution is 320x240.

I used to have whole-screen jittering until after I changed the order of camera instructions and their place in the event sheet, so definitely give a try to reordering the event sheet, it very well could resolve the problem even if you don’t fully understand why or how.

1 Like

WishForge Games has a tutorial on smooth camera movement that may help.

1 Like

Thank you all for the responses. I’ve done some digging and found out it may be a resolution and sprite issue.

I’ve uploaded a video to youtube to help give a visual to my issue. When the camera moves it appears that the sprites distort and extra pixels are created and some are elongated as it scrolls. This causes that effect that looks like a wave moves through the sprites slightly distorting them. I just don’t know how to fix it; information points towards it being something to do with resolution and my sprite size (280 x 140 resolution for my game). I’ve attempted to find ANY information on the topic, and have come up with it being mentioned, but not really a fix. (I’ve also provided a picture of how I am operating my camera if that helps out in any way. I have placed it before and after my movement commands but with no avail)

Thank you everyone for your responses, and I really appreciate all of the help while I try to make my frog man do his thing.

Best guess is 280x140 is FAAAAR too small. Thats less pixels than most NES games. With how much your game has to scale up, I’m betting it looks jittery due to the amount of subpixel interpolation is happening in the math.

Try a game resolution of 320x180 for 16:9 or 320x240 for 4:3. You also want to ensure your sprites are at least 8x8 or larger, although I really don’t recommend anything smaller than 16x16 or 32x32 (SMB1 normal mario is 13x16, with super mario being 32x16)

Also keep in mind that if you fullscreen a game preview it will be distorted due to the menu bar. This distortion won’t be there in the fully exported game as the menu bar won’t be there.

1 Like

Thank you. That helps point me in the right direction!

ALSO, is there a way to playtest your game without the bar? Or do I have to export it and try it out?

I think you have to do an export.

Try a game resolution of 320x180 for 16:9 or 320x240 for 4:3.

@Silver-Streak

320x240 works perfectly well :slight_smile:

1 Like

Update: I’ve tried the resolution 320 x 180 and while I do not get the distorting wave constantly, it still appears sometimes and the the stationary pixels still seem to vibrate when the camera scrolls. All of my sprites are 16 x 16 or larger, and I’ve exported a game to see what it would be like to unfortunate results. I’ve joined a discord so hopefully I can eventually talk to someone in real time about my issue or what I’m not understanding.

Thank you everyone for the comments and help.

just incase this helps anyone else i solved this issue by “unchecking” ,“Round pixels when rendering, useful for pixel perfect games” under the Game settings>Properties Tab.