code: @Override
  	public synchronized void stop() {
  		this.logger.d("Stopping...");
  		this.getGame().onStop();
  		this.running = false;
  		if (this.hasFrame) this.frame.dispose();
  		try {
  			this.thread.join(3000);
  		} catch (InterruptedException e) {
  			this.logger.e("Error exiting!", e);
  			System.exit(-1);
  		}
  		this.logger.d("Stopped.");
  		System.exit(0);
  	}
docs: This method must be called to stop the engine (and therefore the game).