class VariableStepGameLoop extends GameLoop {

  @Override
  protected void processGameLoop() {<FILL_FUNCTION_BODY>}

  protected void update(Long elapsedTime) {
    controller.moveBullet(0.5f * elapsedTime / 1000);
  }

}

    var lastFrameTime = System.currentTimeMillis();
    while (isGameRunning()) {
      processInput();
      var currentFrameTime = System.currentTimeMillis();
      var elapsedTime = currentFrameTime - lastFrameTime;
      update(elapsedTime);
      lastFrameTime = currentFrameTime;
      render();
    }
  
<methods>public boolean isGameRunning() ,public void run() ,public void stop() <variables>protected final non-sealed com.iluwatar.gameloop.GameController controller,protected final Logger logger,protected volatile com.iluwatar.gameloop.GameStatus status