[Olpc-uruguay] JAMtank (sólo para divertirse)

Pablo Moleri pmoleri en gmail.com
Mie Jul 28 22:27:47 EDT 2010


2010/7/27 Flavio Danesse <fdanesse en gmail.com>

> 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.
>

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.


Utilizando el modelo telepathy/d-bus, siempre sabemos cuando alguien entra o
sale y se pueden emitir *señales* que le llegan a todos (incluso a quien las
manda).

Haría una comunicación de este estilo:
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.
2. Cada vez que alguien dispara una bala manda una señal indicando la
coordenada de origen y la dirección.
3. Cada vez que alguien es interceptado por una bala de un enemigo, manda
una señal *acusa*ndo su posición y quien le pegó.

Responsabilidades:
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.

Cosideraciones:
> Habría que limitar la cantidad de balas por segundo que se pueden disparar
para no sobrecargar la red.
> 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.
> 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.

Otras consideraciones:
> 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.

Otras consideraciones más:
> 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  :)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20100728/c5e6657c/attachment.htm 


More information about the Olpc-uruguay mailing list