public void initWorld() {
		if(restart) {//The player has restarted the game
			/*Reset the level counter*/
			levelNumber = 0;
			/*Load the first level*/
			loadNextLevel();
			/*Reset the paddle's position*/
			Paddle paddle = player.getPaddle();
			paddle.setXPos(paddleStartX);
			paddle.setYPos(paddleStartY);
			/*Reset the first ball's position*/
			Ball ball = balls.get(0);
			ball.setXPos(paddle.x + (paddle.width / 2));
			ball.setYPos(paddle.y - BALL_RADIUS);
			ball.resetVelocity();
			ball.setIsAtopPaddle(true);
			/*Remove all balls except the first*/
			balls.clear();
			balls.add(ball);
			/*Make sure the ball is controllable by the mouse controller*/
			player.setMouseControllerBall(ball);
			/*Set all the bricks as alive*/
			for(Brick brick : bricks) {
				brick.setIsAlive(true);
			}
			/*Reset the player's lives*/
			player.resetLives();
			/*Mark the player as not having won*/
			player.setWon(false);
			/*Reset the player's score*/
			player.resetScore();
			/*Clear the player's powerups*/
			player.clearPowerups();
			/*Set the restart flag as false*/
			restart = false;
			/*Make the powerups*/
			makePowerups();
			/*Enable relative mouse movement*/
			player.setRelativeMouse(true);
			/*Hide the mouse cursor*/
			canvas.hideCursor();
			/*Exit the function*/
			return;
		}
		
		if(moreLevels() && levelNumber != 0)//If this is a new level and not the first level
		{
			/*Load the level*/
			loadNextLevel();
			/*Reset the paddle's position*/
			Paddle paddle = player.getPaddle();
			paddle.setXPos(paddleStartX);
			paddle.setYPos(paddleStartY);
			/*Reset the first ball's position*/
			Ball ball = balls.get(0);
			ball.setXPos(paddle.x + (paddle.width / 2));
			ball.setYPos(paddle.y - BALL_RADIUS);
			ball.resetVelocity();
			ball.setIsAtopPaddle(true);
			/*Remove all balls except the first*/
			balls.clear();
			balls.add(ball);
			/*Clear the player's powerups*/
			player.clearPowerups();
			/*Make sure the ball is controllable by the mouse controller*/
			player.setMouseControllerBall(ball);
			/*Make the powerups*/
			makePowerups();
			/*Exit the function*/
			return;
		}
		
		/*Make the Brick vector*/
		bricks = new Vector<Brick>();
		/*Make the brick configuration vector*/
		brickConfigurations = new Vector<BrickConfiguration>();
		/*Make the powerup vector*/
		powerups = new Vector<Powerup>();
		/*Make the balls vector*/
		balls = new Vector<Ball>();
		/*Load the brick configurations*/
		loadBrickConfigurations();
		/*Load the level*/
		loadNextLevel();
		/*Make the paddle that is to be used by the player*/
		Paddle paddle = new Paddle(paddleStartX, paddleStartY, PADDLE_WIDTH, PADDLE_HEIGHT, PADDLE_IMAGE_NAME);
		/*Make the ball*/
		Ball ball = new Ball(paddle.x + (paddle.width / 2),
						paddle.y - BALL_RADIUS, 
						1, 1, BALL_MAX_VEL, BALL_RADIUS, BALL_IMAGE_NAME);
		/*Add the ball to the ball vector*/
		balls.add(ball);
		/*Make the player*/
		player = new Player(paddle, ball, canvas);
		/*Make the powerups*/
		makePowerups();
		/*Make the player's controllers listeners to the canvas*/
		canvas.initMouseListeners(player.getMouseMotionController(), player.getMouseController());
		canvas.addKeyListener(player.getKeyController());
		/*Enable relative mouse movement*/
		player.setRelativeMouse(true);
		/*Hide the mouse cursor*/
		canvas.hideCursor();
	}