GMS 2 Object flicker/stuttering when scrolling (low resolution)

BrandNoob

Member
So I've recently started work on a 2D platformer which I originally planned to be made up of short level, single screen levels. It's really low-res: the viewport and camera are 300 x 169, and the player sprite is is 9 x 9. I figured this wouldn't matter too much with it being single screen.

However, I've recently decided that I'd like to make the rooms a bit bigger and implement scrolling. I added a camera object using the same code I've used for other, higher-res projects, which predictably wasn't compatible with the small scale that relies on non-integer values for movement etc. It caused object instances to shift around during scrolling, sometimes being drawn over solid objects. A jerky, flickering mess basically.

I had a search through these forums and elsewhere and tried a couple of suggestions:

First I tried resizing the application surface and decreasing the view dimensions - no effect.

Then I tried adding the following bit of code in the affected objects draw event:

draw_sprite(sprite_index,image_index,floor(x),floor(y))

Although this didn't have any effect when the camera object was used, when I removed the camera object and used the built-in camera settings in the room editor, it worked... kind of. Although the objects weren't shifting around any more, the scrolling still seemed a bit choppy, and of course it isn't possible to have a smooth camera that decreases in speed the closer it is to the player object.

I have tried changing the code on the camera object to be a simple as possible (removing the 'smooth' movement), but that doesn't stop the flickering.

I'm guessing that the only way to sort this for someone of my limited GM ability is to greatly increase the size of all the sprites, room, viewport etc. I'm not too far into the project, so this is still do-able, but is still a fair bit of work... If anyone could suggest a solution that would save me from having to do this, it would be very much appreciated!
 
Top