private boolean getGameInformation(NetworkStream toServer) {
		try {
			toServer.getChannel().write(new RequestEntityPacket(toServer, 0).getDataBuffer());
			TCP_Packet shouldBeSyncMapPacket = null;

			long start = System.currentTimeMillis();

			while (System.currentTimeMillis() - start < MAX_WAIT) {
				toServer.update();
				shouldBeSyncMapPacket = toServer.available.poll();
				if (shouldBeSyncMapPacket != null)
					break;
			}

			if (shouldBeSyncMapPacket == null) {
				log.error("Failed to retrieve syncPacket");
				return false;
			}
			if (!shouldBeSyncMapPacket.PacketType.equals(TCP_PacketType.SYNC_MAP)) {
				log.error("Received {} instead of SyncPacket", shouldBeSyncMapPacket.PacketType.name());
				return false;
			}

			sP = (SynchronizeMapPacket) shouldBeSyncMapPacket;

			log.debug("Received first synchronization packet");

			TCP_Packet shouldBeUpdateMapPacket = null;

			while (System.currentTimeMillis() - start < MAX_WAIT) {
				toServer.update();
				shouldBeUpdateMapPacket = toServer.available.poll();
				if (shouldBeUpdateMapPacket != null)
					break;
			}

			if (shouldBeUpdateMapPacket == null)
				return false;
			if (!shouldBeUpdateMapPacket.PacketType.equals(TCP_PacketType.UPDATE_MAP))
				return false;

			log.debug("OK till here");

			uP = (UpdateMapPacket) shouldBeUpdateMapPacket;

			log.debug("Received first map update");

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return true;
	}