A lot of what is being described here just seems like scaling artifacts from using a non integer resolution screen vs the game resolution.
I have a galaxy s21 and have no jitter on the new platformer example nor hello bub.
My super rough guess would be the mobile device being tested on is not an integer scale from whatever resolution the game being tested is. The platformer example is 960x540, and therefore scales evenly into my phone’s height when landscape (1080). If the device being tested on does not have a resolution that is either a (whole number) multiple of 960 or 540 on one of the sides, it isn’t integer scaled.
So what is being seen may appear to be “jitter” but is either subpixel rendering, rounding adjusting for floating positions, or both.
Just a guestimate, especially since I can’t reproduce the reported issue.
Both of those should be fine for the platformer example if in portrait mode. If you’re seeing jittering there (when in portrait mode) you’re going to have to find some way to show an example of what you mean since I can’t reproduce it.
I do not currently have time to download other projects to review, but if you cannot find a way to show a representation of what you mean, potentially another user or contributor can take a look.
That just looks like either: Your game resolution is very small and positions are snapping to the next closest “whole” number with rounding, or it’s momentarily subpixel rendering so it looks like it’s juddering as it goes back to full pixels.
If that IS the issue, your only real solutions are:
Make your game at a higher resolution, multiply your asset sizes by that new resolution factor. This gives the screen more “room” to move in without hitting subpixels/jumping to the next rounded pixel.
e.g. If your current resolution is 320x180, set your resolution to 640x360 (2x size) and multiply all of your assets by that same factor (2x).
As a quick test, I did try this using the Tilemap platformer example:
Resolution set to 160x90 in the game properties.
Game resolution set to 1280x720 via events (window not resized)
Zoom set to 8x (8x90=720)
Framerate minimum set to 60 fps, max 120fps
Camera lerped to player location
Overall it seems pretty smooth to me, and these are the only events needed to accomplish it:
Instead of 8x/720p/etc, you would use whatever is a multiplier of your game resolution. For the devices you mentioned, I’d probably go up to 1080p as the resolution in the “Set game resolution” event. If your game resolution is 320x180, that means you need to change your camera zoom by 6x. (6x180=1080).
Note: you will need to zoom the camera for EVERY LAYER you have. And if you have any events that zoom in/out the camera, you’ll need to keep the multiplier in mind as well. (e.g, if you previously zoomed in 2x, you’re now going to have to zoom in 12x (2x6).