GMS 2 blurry animations/movements

maranpis

Member
Hello Guys i make a video in youtube: (watch it fullscreen please)

As you can see when the player moves there is a lot of blurriness ¿how can i deal with that?

info:
-i'm using Spine animations.

-the game is setting at 60 fps.

- interpolate colors is off.

- this is my camera and viewport size:

1 viewport.JPG

- And this is my room size:

viewport 2.JPG

- this are one of my animations.

animations.JPG

And this is a piece of the code I use for movement

Code:
/MOVE RIGHT AND LEFT AND JUMP

        if keyboard_check(vk_right)
        {  
        hospeed=20;  
        mask_index=rough_player;
        sprite_index=s_Running
        image_speed=1;
        image_xscale=1;
       

        }
        else if keyboard_check(vk_left)
        {
        hospeed=-20    ;
        sprite_index=s_Running
        image_xscale=-1;
        image_speed=1;
       
        mask_index=rough_player;
        }
        else
        {
       
        hospeed=0;
        sprite_index=s_Idle;
        image_speed=1;
        mask_index=rough_player;
        }
I have read all the topics about this, without a clear answer for me (totally noob) :(


does anybody knows what is happening?

thanks for your help.
 

RangerX

Member
There's no blurryness on my side. You're probably noticing "ghosting" which is an issue of your monitor and not GameMaker.
The refresh rate of the pixels of the screen that are so enough that you see a trail behind something that moves.
 

Yal

🐧 *penguin noises*
GMC Elder
- this is my camera and viewport size:
This is the problem, the viewport is smaller than the view in the room. Thus, the stuff shown on screen has to be downscaled to fit, and this is what causes the blur.
 

RangerX

Member
This is the problem, the viewport is smaller than the view in the room. Thus, the stuff shown on screen has to be downscaled to fit, and this is what causes the blur.
While downscaling is bad, she said the interpolation is not "on" therefore the downscaling here would cause a graphical loss for sure but no "blurring".
 

maranpis

Member
While downscaling is bad, she said the interpolation is not "on" therefore the downscaling here would cause a graphical loss for sure but no "blurring".
this is the second test:


with the new settings:

room settings 1.JPG

viewport settings 2.JPG

windows graphic 3.JPG

windows graphic 4.JPG

windows graphic 5.JPG

still the same problem :(
 

TheouAegis

Member
Don't record video. Recording video shows you nothing. Take single-frame screen captures (aka screenshots). If there is blurring in the screen capture, there is blurring in your game. If there isn't, you just have bad eyesight or a bad monitor, most likely.

Set the room_speed to somewhere between 1 and 5 (5 is usually slow enough for me). If you see blurring, you have blurring in your game. If there isn't, you just have bad eyesight or a bad monitor, period.

(Or your video card settings are causing it, which is still none of your concern.)
 

zendraw

Member
maybe try flooring the position of the character at the end. ive also had this issue and still have it but i think its just a game maker thing.
 

Bingdom

Googledom
Code:
draw_sprite_ext(sprite_index,image_index,floor(x),floor(y),image_xscale,image_yscale,image_angle,image_blend,image_alpha);
 

TheouAegis

Member
I struggled with blurriness in one of me games for the longest time. And while yes, drawing the pixels at rounded values can help, it's a bit more complicated than that.

The blurriness happened in other programs I used, including ones that it should NOT have occurred in -- Nintendo emulators. That's how I figured out in most cases it's just bad monitors and bad eyesight. Let me guess: You're using an LED or LCD monitor rather than a CRT. If you're using a CRT and you get blurriness, it is your game that is causing it. If you're using LED or LCD monitors, it's most likely the monitor that's causing the blurriness. There is almost nothing you can do about that - it's how the monitors were designed.

If it does turn out it's your game after all, then there are a couple factors that need to be considered. Rounding down (yes, down) pixels when drawing works when no view is used or when the view_object is set. However, if the view is controlled manually with the line view_xview=x-view_wview/2, then the object the view is being moved relative to will not be blurry while everything else around it will be. In other words, when the view is following an object using view_object, moving objects that can move at fractional speeds should be drawn at rounded coordinates; but if the view is following an object using view_xview=x-view_wview/2, then everything else except the object that the view is being updated to needs to be drawn off at rounded coordinates relative to the view; good luck with that -- you have no control over where tiles are drawn. But then again, that's hwo the real world works anyway.
 

maranpis

Member
I struggled with blurriness in one of me games for the longest time. And while yes, drawing the pixels at rounded values can help, it's a bit more complicated than that.

The blurriness happened in other programs I used, including ones that it should NOT have occurred in -- Nintendo emulators. That's how I figured out in most cases it's just bad monitors and bad eyesight. Let me guess: You're using an LED or LCD monitor rather than a CRT. If you're using a CRT and you get blurriness, it is your game that is causing it. If you're using LED or LCD monitors, it's most likely the monitor that's causing the blurriness. There is almost nothing you can do about that - it's how the monitors were designed.

If it does turn out it's your game after all, then there are a couple factors that need to be considered. Rounding down (yes, down) pixels when drawing works when no view is used or when the view_object is set. However, if the view is controlled manually with the line view_xview=x-view_wview/2, then the object the view is being moved relative to will not be blurry while everything else around it will be. In other words, when the view is following an object using view_object, moving objects that can move at fractional speeds should be drawn at rounded coordinates; but if the view is following an object using view_xview=x-view_wview/2, then everything else except the object that the view is being updated to needs to be drawn off at rounded coordinates relative to the view; good luck with that -- you have no control over where tiles are drawn. But then again, that's hwo the real world works anyway.
Yes, but for example i don't remember to experience blurriness in games like risk of rain or hotline miami(made by gamemaker) with the same screen. o_O
 

maranpis

Member
just draw_sprite() is enough. if you dont scale it or rotate it or manipulate its blend or alpha.
Hello blacklemon how does it work? Do i need to create a draw event and then write draw_sprite() and repeat this with all the objects sprites?

Could you give me a code example? I'm kind of lost.
 

zendraw

Member
yes you add a new event called Draw and in it simply type
draw_sprite(sprite_index, image_index, floor(x), floor(y));

now im not sure if this wuld fix anything but if your view position is also floored, it will definetly remove any pixel distortion.

to be sure you shuld set your view pos manually in the end step event
view_xview=floor(x-(view_wview*.5));
view_yview=floor(y-(view_hview*.5));

like i said this will remove any pixel distortion that culd be caused by positioning. otherwise its most likely aegis suggested.
 

TheouAegis

Member
Yes, but for example i don't remember to experience blurriness in games like risk of rain or hotline miami(made by gamemaker) with the same screen. o_O
Do they have absolutely positively no blurring? Or only no blurring on the player? Because both of those games have the view follow the player, which means the player will never blur, while anything around it could blur.
 

maranpis

Member
Do they have absolutely positively no blurring? Or only no blurring on the player? Because both of those games have the view follow the player, which means the player will never blur, while anything around it could blur.
I will look better next time thanks :D
 

maranpis

Member
yes you add a new event called Draw and in it simply type
draw_sprite(sprite_index, image_index, floor(x), floor(y));

now im not sure if this wuld fix anything but if your view position is also floored, it will definetly remove any pixel distortion.

to be sure you shuld set your view pos manually in the end step event
view_xview=floor(x-(view_wview*.5));
view_yview=floor(y-(view_hview*.5));

like i said this will remove any pixel distortion that culd be caused by positioning. otherwise its most likely aegis suggested.
I'll ltry this today thanks blacklemon
 

Yal

🐧 *penguin noises*
GMC Elder
Hotline Miami and Risk of Rain both have so retro aesthetics they probably scale up their graphics, and that could reduce the impression of blur since the 'pixels' are now rectangles of, say, 4 or 9 pixels instead.
 
S

Snake Nox

Guest
I have some severe ghosting issues as well. Its easy to see in the video I put up.
I tried on both my monitor and my big TV but the issues were clear on both formats. I don't have this issue with any other game.


Here is my video of it.

 
Last edited by a moderator:
Top