public void start()
	{
		printlnToAll();
		printlnToAll("--- GAME STARTED");
		printlnToAll();
		
		while(end == false)
		{
			printlnToAll("Game turn " + (counter + 1) + " :");
			
			boolean gameTurnComplete = false;
			
			currentTurn = new StandardTurn(this, turnSequence.getFirstCharacter());
			
			while (gameTurnComplete == false && end == false)
			{
				try { Thread.sleep(gameSpeed); }
				catch (InterruptedException ie) { printlnToAll(ie.getMessage()); }
				
				if (paused == false)
				{
					try
					{
						currentTurn.start();
						currentTurn = new StandardTurn(this, turnSequence.getNextCharacter(currentTurn.getActiveCharac()));
					}
					catch (IndexOutOfBoundsException ioobE)
					{
						gameTurnComplete = true;
					}
					
					if (victoryConditions.areConditionsMet() == true) stop();
				}
				
			}
			
			turnSequence = new StandardTurnSequence(characters);
			turnSequence.order();
			counter++;
			
			printlnToAll("--- end of game turn " + (counter));
			printlnToAll();
		}
		
		printlnToAll(victoryConditions.report());
		printlnToAll("Game lasted " + counter + " turns.");
	}