Estoy desarrollando una aplicación multiusuario basada en "tiles" (baldosas). He empezado hace poquito.
Por lo pronto he hecho que, en 2D, los usuarios puedan ir al lugar deseado pulsando en él, y funciona muy bien.
El server que uso es Palabre Server. Lo que hago es enviar cada actualización de la posición al server, y así todos la reciben, y tan contentos. Pero claro, para ello mando MUCHA información (cada vez que se mueven un poquito, mandan paquete de info)...
Mi duda, antes de seguir, es la siguiente: ¿Cómo sigo el desarrollo?
- Opción 1: ¿Continuo así, mandando TANTA info? La ventaja que tiene esto es que el cliente no tiene que hacer muchas operaciones, simplemente ._x e ._y = lo que sea, y ya está... Lo malo es que, a la mínima que se conecten 50 y comiencen a moverse... ¡¡¡¡!!!! No se si el Servidor (además Palabre es gratuito y no creo que sea una maravilla) diese a basto.
- Opción 2: Se me ha ocurrido que el usuario podría mandar tan sólo un paquete de información cada vez que llega a una nueva baldosa (a su centro). Me explico: un usuario pulsa, por ejemplo, 3 baldosas más a la derecha de donde está. Comienza a moverse, y cuando pasa por el centro de la primera baldosa, manda info al server. Lo bueno de esta opción es que deja respirar al server, lo malo viene para el cliente: tendría que hacer en flash alguna función que se ejecutase todo el tiempo y que comprobara quienes han mandado paquete con su nueva baldosa, y acto seguido el mismo cliente tendría que hacer una función por cada uno de los usuarios en movimiento para ir moviéndoles de 7 en 7 píxeles (porque moverlos de golpe al centro de baldosa en baldosa pero a "saltos" quedaría bastante cutre...)
- Opción 3: (Ya casi descartada...) El cliente sólo manda la posición a donde QUIERE ir. Es decir, pulsa en la baldosa 5-3, y eso es lo que manda al server y todo el mundo recibe. Con esto, el trabajo del cliente crecería muchísimo, porque no sólo tendría que hacer lo de la Opción 2, también tendría que comprobar si hay obstáculos, etcétera, etcétera, y eso si hay 50 personas moviéndose, pues puede explotar.
Para la respuesta, imaginad un Server normalito (en cuanto a Hardware e Internet) y un máximo de 100 conexiones simultáneas.
¡Gracias!
P.D.: No pido NADA de código, sólo EXPERIENCIA, lo ideal sería alguien que ya haya hecho cosas así y se haya topado con el LAG.
P.D. 2: Yo que me había prometido hacer una entrada corta y me ha quedado aquí la Biblia