Bueno gente, el prototipo de JAMtank ya es funcional. Luego de casi 2 años de idas y venidas con la red de las xo + python + pygame, puedo decir que domino bastante bien lo necesario para hacer un juego en red. Ahora si puedo darles la razón a quienes decían que programar algo en red era sencillo.<br>
<br>¡ Qué trabajo lleva hacer un juego ! y ¡ qué complicación hacerlo en red !<br><br>Pero bueno, humilde pero funciona muy bien en la xo, JAMtank es un juego multiplayer de batalla entre tanquesitos.<br>Me queda arreglar muy poca cosa en el código, simples detalles, pero necesito ayuda en la parte gráfica y de sonido.<br>
<br><b>Necesito:</b><br><ul><li>El ícono principal de la actividad.</li><li>El fondo del mapa donde se mueven los tanques.</li><li>Los tanques, si no les gustan los mios.</li><li>La bala, si nos les gusta la mia.</li><li>
Una secuencia de imágenes para dibujar una explosión sobre el tanque cuando le pegan.</li><li>Sonidos de explosiones, disparos e impactos.</li><li>La música del juego (aunque tengo una no muy linda).</li><li>La música del menú (aunque tengo una no muy linda).</li>
<li>Sonidos para el motor de los tanques, (incluyendo aceleraciones y desaceleraciones del mismo)</li><li>Una animación o imágen de presentación para la pantalla del menú (la mía no me gusta mucho)</li></ul><br><b>Dejo imágenes de los objetos del juego que tengo en el prototipo:</b><br>
<img title="imagen.png" alt="imagen.png" src="cid:ii_12bc13bc2e566a08"><br><br><br><b>Menú principal:</b><br><img title="Captura de pantalla_1.png" alt="Captura de pantalla_1.png" src="cid:ii_12bc13d0bbf85f18"><br><br><b>Para que vean lo que quiero arreglar, les paso imágen "en juego":</b><br>
<img title="Captura de pantalla_2.png" alt="Captura de pantalla_2.png" src="cid:ii_12bc14c824f595f4"><br><br><br><b>Agradezco a:</b><br>Andrés Ambrois por el ejemplo sobre asyncore y asynchat que me envió.<br>Y muy especialmente a Fabián Peña que me ayudó muchisimo guiándome para resolver los problemas de los sockets.<br>
<br><b>PD:</b><br>El juego está construido en pygame y se utiliza gtk para el menú principal.<br>Encontré una forma mucho más eficiente de hacer un juego con pygame e integrarlo a sugar en la xo sin mezclar gtk y pygame (pudiendo utilizarlos a ambos para diferentes cosas), y sin utilizar los adaptadores que existen para sugar.<br>
<br>Toda la comunicación en la red se basa en las clases <span style="color: rgb(0, 0, 153);">SocketServer</span> <span style="color: rgb(0, 0, 153);">StreamRequestHandler</span> y <span style="color: rgb(0, 0, 153);">ThreadingTCPServer</span> muy poco y mal documentadas, por lo cual creo que será muy buen aporte la guia que publicaré sobre ellas mostrando como las utiliza JAMtank.<br>
También utilicé <span style="color: rgb(0, 0, 153);">telepathy</span> para construir un scaner de red que detecta las ips donde se está jugando JAMtank, permitiendo una fácil conexión al juego sin utilizar la vista vecindario de sugar. <br>
<br>Espero que los diseñadores de la lista se pongan las pilas y me manden cosas que le den otra pinta al jueguito y los músicos generen el ambiente necesario.<br>