private void processPlayers() {
        for (HostedConnection each : getClients()) {
            Boolean init = each.getAttribute(AttributeKey.INIT);
            if(init==null) {
                continue;
            }
            if (!init) {
                //
                Player p = pf.producePlayer();
                each.setAttribute(AttributeKey.PLAYER, p);
                each.setAttribute(AttributeKey.ANIMATION, Animation.IDLE);
                //
                getPhysicsSpace().add(p.getControl());
                each.send(new InitPlayer(p.getId(), mapPath));
                AddPlayer ap = new AddPlayer(p.getId());
                for(HostedConnection others : getClients()) {
                    Player o = others.getAttribute(AttributeKey.PLAYER);
                    each.send(new AddPlayer(o.getId()));
                    others.send(ap);
                }
                each.setAttribute(AttributeKey.INIT, true);
		// terrain stuff
		DistanceLodCalculator lodcalc = new DistanceLodCalculator(33, 2.7f);
		TerrainLodControl control = new TerrainGridLodControl(terrain, p.getCamera());
		control.setLodCalculator(lodcalc); // patch size, and a multiplier
		terrain.addControl(control);
		// --
            }
            boolean connected = each.getAttribute(AttributeKey.CONNECTED);
            if (!connected) {
                continue;
            }
            //
            Player p = each.getAttribute(AttributeKey.PLAYER);
            float pitch = each.getAttribute(AttributeKey.PITCH);
            float yaw = each.getAttribute(AttributeKey.YAW);
            int keysPressed = each.getAttribute(AttributeKey.KEYSPRESSED);
            p.setPitch(pitch);
            p.setYaw(yaw);
            p.setKeysPressed(keysPressed);
            //
            p.update();
        }
    }