@Override
	public void run()
	{	
		final Game game = new Game();
		final Platform platform = new Platform();
		
		//Frame
		frame.add(game);
		game.setVisible(true);
		frame.revalidate();
		frame.repaint();
		System.out.println("Game started");
		
		long lastTime = System.nanoTime();
		double nsPerTick = 1000000000D/60D;
		
		int frames = 0;
		
		long lastTimer = System.currentTimeMillis();
		double delta = 0;
		
		while(running)
		{
			long now = System.nanoTime();
			delta += (now - lastTime)/nsPerTick;
			lastTime = now;
			boolean shouldRender = true;
			
			while(delta >= 1)
			{
				ticks ++;
				tick();
				delta -= 1;
				shouldRender = true;
				
				//GRAVITY GRAVITY - VERY IMPGRAVITY ----ORTANT STUFF HERE, DO NOT MISS
				platform.onSolidGround();

				//Platform Movement
				platform.platformMovement();
				
				//Increase Difficulty
				game.increaseDifficulty();
			}
			
			try {
				Thread.sleep(2);
			} catch (InterruptedException e)
			{
				e.printStackTrace();
			}
			
			if (shouldRender)
			{
				frames ++;
				//render();
			}
			
			if(System.currentTimeMillis() - lastTimer >= 1000)
			{
				lastTimer += 1000;
				System.out.println("Ticks: " + ticks + ", Frames:" + frames);
				frames = 0;
				ticks = 0;
			}
		}
	}