Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Today's theory

Sign in to follow this  
Shane C


Something which I noticed was that at least for 2D games, smaller resolutions are in theory smoother. At 320x240, you can move the same speed moving 4 pixels a frame as if you moved 8 pixels a frame with 640x480. With 640x480, you would "skip" 8 pixels, while at 320x240 you would "skip" 4. This is just an example. Thoughts?
Sign in to follow this  

1 Comment

Recommended Comments

If both resolutions were full-screen on a monitor, and the monitor was the same physical size (22" or whatever), then you're still moving the same physical distance (1/4" or however much) on the monitor.


If you want smoother movement then don't move X pixels a frame, because different frames take different amounts of time. If Frame A and Frame B take different amounts of time, but both more the same distance, then you get erratic movement. (8 pixels in 1/10th of a second, and then 8 pixels during 1/20th of a second, and so on).


Instead, you could use floats for movement, only casting to integer pixels at the last second. Then, each frame you calculate how far to move based on how much time has passed.

//The amount of time that has passed since the last frame, measured in seconds. 0.5 = half a second.
float deltaTime;

//The number of pixels to move in one full second of movement.
const float PLAYER_SPEED = 200;

//The amount to move this frame.
//'playerPos' variable needs to persist from frame to frame (possibly as a member-variable of the player class).
float playerPos += (deltaTime * PLAYER_SPEED);

//Cast to pixels only when drawing.
int playerPixelPos = (int)playerPos;

This way, if the computer is going slower or faster, the player is always moving at a constant speed relative to the amount of time passed instead of relative to the number of frames drawn.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!