<div class="gmail_quote">2010/7/27 Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com">fdanesse@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
No se exactamente que modelo seguir para implementar la red. Se como hacerlo por socket y como utilizar thelepathy de sugar, pero necesito un marco conceptual para seguir la implementación.<br></blockquote><div><br>Las premisas son que es un juego muy dinámico y pueden haber varios jugadores conectados, con estos supuestos me parece que es escencial que la comunicación sea lo más liviana posible para que permita un intercambio de mensajes fluidos. Otra cosa que es conveniente es que no haya un "host", sinó que la comunicación sea entre todos, para que no haya problemas si se pierde la comunicación con el host.<br>
<br><br>Utilizando el modelo telepathy/d-bus, siempre sabemos cuando alguien entra o sale y se pueden emitir <i>señales</i> que le llegan a todos (incluso a quien las manda).<br><br>Haría una comunicación de este estilo:<br>
1. Una vez cada 1/2 segundo todos mandan una señal que indica su color de tanque, su posición (x,y), su dirección, su velocidad.<br>2. Cada vez que alguien dispara una bala manda una señal indicando la coordenada de origen y la dirección.<br>
3. Cada vez que alguien es interceptado por una bala de un enemigo, manda una señal <i>acusa</i>ndo su posición y quien le pegó.<br><br>Responsabilidades:<br>i. Cada computadora está encargada de dibujar todos los tanques en su
pantalla y simular su movimiento utilizando las coordenadas, la
dirección y la velocidad informadas.<br><br>Cosideraciones:<br>> Habría que limitar la cantidad de balas por segundo que se pueden
disparar para no sobrecargar la red.<br>> Se simula el movimiento de cada tanque hasta que llegue un nuevo dato que indica su nueva posición, su nueva dirección y su nueva velocidad.<br>> Tanto los tanques como las balas pueden no estarse dibujando en la posición adecuada, ya que desde que se emite el dato hasta que la otra computadora lo procesa puede haber un pequeño lapso de tiempo.<br>
<br>Otras consideraciones:<br>> Para disminuir las impresiciones del juego en red y simplificar la implementación, puede hacerse que incluso la computadora que realiza el disparo dibuje la bala recien cuando le llega la señal, ya que las señales llegan incluso a quien las manda. En otras palabras, cuando un tanque dispara, manda un mensaje indicando el disparo (pero no dibuja la bala) y cuando le llega a si mismo el mensaje del disparo, lo dibuja en la pantalla.<br>
<br>Otras consideraciones más:<br>> Con este modelo, alguien podría hackear su versión para que las balas no lo afecten, haciendo su tanque invensible. Por más que sea un defecto, me parece un desafío interesante para un niño :)<br>
<br></div></div>