Alguien sabe como hago para pasar por un socket otra cosa que no sea una cadena de texto ??<br><br><br><br><div class="gmail_quote">El 29 de julio de 2010 22:13, Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com">fdanesse@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Bueno, la cosa está compleja.<br><br>A ver, como primera medida voy a dejar de lado por completo a sugar que lejos de ayudar complica y bastante y voy a desarrollar todo para correr sobre gnome.<br>
<br>La idea es que el usuario ejecute el juego y elija entre <span style="color: rgb(153, 0, 0);">crear un juego en red</span> o <span style="color: rgb(153, 0, 0);">conectarse a un juego ya existente en la red</span>.<br>
<br>Cuando crea el juego en la red, debe levantar el juego y un servidor UDP.<br>Quien se conecte, debe conectarse al servidor del primero y levantar su juego.<br><br>Acá ya hay un problema porque cada usuario tendría 2 bucles corriendo a la vez con lo cual hay que hacer threading, entonces:<br>
<br>¿deben correr en hilos separados el juego y el socket?<br><br>Estoy utilizando <span style="color: rgb(153, 0, 0);"><span style="color: rgb(0, 0, 0);">la clase</span> SocketServer.BaseRequestHandler</span> sobreescribiendo el método <span style="color: rgb(153, 0, 0);">handle()</span> para escuchar y procesar las solicitudes mediante <span style="color: rgb(153, 0, 0);">serve_forever()</span><br>
<br><br><br><br><div class="gmail_quote">El 29 de julio de 2010 10:36, Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></span> escribió:<div><div></div><div class="h5">
<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Ok, un montón de cosas a considerar sin dudas. Voy a seguir tu guia a ver como sale, gracias !!!<br><br><br><br><div class="gmail_quote">El 28 de julio de 2010 23:27, Pablo Moleri <span dir="ltr"><<a href="mailto:pmoleri@gmail.com" target="_blank">pmoleri@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div><div class="gmail_quote"><div>2010/7/27 Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></span><br>
</div><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>
<br></div></div><div>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></div></blockquote></div><br>
</blockquote></div></div></div><br>
</blockquote></div><br>