Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 30 May 2012
Offline Last Active Jun 01 2012 12:44 AM

Topics I've Started

Need help regarding how to draw smoothly in Java.

30 May 2012 - 05:39 PM

Hey guys, i've been making a little super mario clone in Java but I need help,

you see, if you download it and play it, you will notice it is quite stutter-y, and that really shouldn't be the case since it's such a small program.

So i assume it's 2 things, either my game loop is faulty (i'll provide the code below) or it's simply that Java just sucks at this, so I'm gonna go with the first one cause i love Java.

Anyways, here's my game loop.


* Contains the main flow of the game.


private void run() {

timer.schedule(new TimerTask() {

private final BufferStrategy bf = frame.getBufferStrategy();

private long startTime = System.currentTimeMillis();

private long currTime = startTime;


public void run() {

elapsedTime = System.currentTimeMillis() - currTime;

currTime += elapsedTime;

try {

//get graphics

g = bf.getDrawGraphics();

//get input


//update the game


//draw the game

drawGame(g, elapsedTime);

} finally {



// Shows the contents of the backbuffer on the screen.




//start this loop every 17 milliseconds, which is roughly 58 frames per second

}, 10, 17);


the variable timer, is of class Timer in Java.util.Timer, not the swing Timer, which i heard is unreliable, but this one is too clearly.

at the moment, I'm not really doing much with elapsedTime, but it's there just in case, i figured i didn't need it since that loop will
run every 17 milliseconds, and my update and rendering methods only take 2-5 milliseconds to finish.

Do you guys know of very effective game loops that provide very smooth rendering?

I can provide more code if necessary, Thanks in advance!