Pixel War Blog

Código liberado – Version 0.4

Posted in Desarrollo, Informes, Source by Fran on noviembre 18, 2009

Acabo de liberar el codigo usando el servicio de Google Code. La idea es aprender a usar un repositorio SVN, cosa que no tengo muy clara, asi que mejor tomenselo con pinzas.

Los fuentes los pueden ver desde aca: http://code.google.com/p/pixelwar/source/browse/

Para el que no sabe usar SVN, tambien comprimi los fuentes y los pueden descargar desde aca: http://code.google.com/p/pixelwar/downloads/list

Como siempre: el que esta interesado, lo puedo agregar como miembro del proyecto y colaborar así con este maravilloso juego :P

PD: El finde hacemos una beta de a 6 ;)

0.3.9.9.9.9.9.9.9.9

Posted in Desarrollo, Imagenes by Fran on noviembre 16, 2009

Estuve como 2 días para implementar las colisiones de las balas. La puta madre como renegué. Al final no eran más que un par de boludeces, como que creaba los Sprites con los ejes invertidos (el x por el y, y viceversa) y cositas así que me terminaron llevando a esto:

(cualquier parecido con Matrix es pura coincidencia)

debugtirocruzado

Con la detección de colisiones metida adentro, y una gran serie de cambios/mejoras hechas, ya podría decir que la versión 0.4 esta hecha. Aca una listita de los items completados (desde la version 0.3):

[X] Clase Objeto
[X] Colisión de disparos contra sprites bloqueantes
[X] Separación básica del código fuente en modulos
[X] mapa de 2 niveles (para los objetos)
[X] Indicador de vida
[X] Modificar la carga del juego
[X] Mover brazos al disparar (jugadores no principales)
[X] Selección de equipo en el prompt
[X] Clase GUI dividirla en dos clases: la que usa spg y la que dibuja el juego
[X] Mantener foco en el chat
[X] Dividir en 2 clases el protocolo (paq. enviados y paq. recibidos)
[X] No enviar caracteres no ASCII (en el chat)
[X] Balas y nombres de colores (de acuerdo al equipo)
[X] No cargar sprites con nombres inexistentes
[X] Modo fantasma al morir

En el servidor faltan 2 items por completar, y también ya estaría listo. Ademas Nico (deku) esta haciendo un editor de mapas, al que próximamente lo voy a poner a disposición de la gentuza para que arme sus propias mapas y los comparta con el club de fans de Pixel War (si es que existe uno…).

Batallas

Posted in Video by Fran on noviembre 2, 2009

2 vs. 2

1 vs. 3

Version 0.3

Posted in Desarrollo, Video by Fran on octubre 22, 2009

Sin palabras.

Algunos avances

Posted in Desarrollo by Fran on octubre 5, 2009

Hoy retome un cacho el Pixel War y hice algunos pequeños cambios:

Delay al disparar las balas: lo que me ahorra el dolor de cabeza de debugiar los paquetes de los disparos que  se enviaban “pegados” desde el servidor.

Desplazamiento suave del mapa: hice que el mapa se desplace en 4 tiempos, de manera que la fila o columna nueva de sqms que hay que dibujar no aparezca de repente (lo que quedaba feo y era perjudicial para la salud).

Ahora solamente me queda por programar el comportamiento de las balas dentro del servidor (que te quite vida si te pega, etc…) y saco la versión 0.3 y hacemos, ahora si, una buena beta con sangre y disparos por todas partes ;-)

¿Habra vida más allá del pixel?

Posted in Video by Fran on octubre 3, 2009

¿Como se genero la vida en pixeland? ¿Dios? ¿Buda? ¿El bing bang? ¿Un programador demasiado ocioso?

¿Cuales fueron sus primeras manifestaciones? ¿Adan Y Eva? ¿CHON? ¿Algas? ¿Proteínas? ¿Los dinosaurios? ¿El dengue? ¿La porcina?

¿Qué misterios se develan debajo de esos cuadrados negros? ¿RGB? ¿DPI? ¿PPP? ¿P2P(?)?

Nota mental nº 10 (en binario)

Posted in Desarrollo, Ideas by Fran on septiembre 16, 2009

Hay que dejar de usar TCP y ir una capa más abajo, a UDP, porque la otra es lenta.

proyectos++

Posted in Otras by Fran on agosto 19, 2009

banana_suicida (WinCE)No es que me haya colgado como la bananita de la imagen, sino que anduve metido en un par de proyectos de índoles contrarias.

Por un lado me hice un clon de un juego que tengo en el celular (un Nokia 1110) y que nadie nunca me pudo batir el record :D . Se trata simplemente de una pelotita que va bajando escalones y ganando puntos. El juego quedo en su versión 0.0.0.0.0.0.0.0.1 y creo que así esta bien porque no me dio más ganas de seguirlo. Lo pueden bajar desde acá.

Por el otro lado, tuve que programar un algoritmo genético para una materia de la facultad. Lo que hace principalmente el algoritmo es buscar máximos en una función, basándose en la teorías evolutivas de Darwin. Nada complicado de programar, pero muy emocionante. También les dejo el fuente aunque lo único que van a ver es un montón de numeritos y no van a entender nada :P .

En breve seguiremos con más Pixel War :D

Balas #1

Posted in Desarrollo, Video by Fran on agosto 10, 2009

Va queriendo

Posted in Desarrollo by Fran on agosto 1, 2009

Bueno. Vamos a actualizarnos un poco que hace rato que no dejo noticias (mil disculpas a los millones de fans). Este mes fue un mes bastante ocioso pero eso no nos impido programar un rato, ¡No señor!. Por empezar, muchos de los cambios nombrados en la entrada anterior fueron implementados.

Un gran avance que logre fue la optimización de los FPS (cuadros por segundo). ¿Que pasaba? Resulta que para que la pantalla se actualice, uno tiene que hacer unas llamadas a ciertas funciones que se encargan de todo eso automaticente (gracias a dios y la virgen maría!), pero, pero, pero, el programador se tiene que encargar de los intervalos con que se llama a estas funciones. Para lograr esto, la manera más simple es hacer un bucle que mantenga actualizada la pantalla constantemente.

¿Cual era el problema? El problema era que si a ese bucle no le ponía ningún tipo de delay especial que libere cada x segundos la cpu (cosa que pygame trae), la aplicación nos va a empezar a usar el 100% del procesador, y eso es algo que a mi no me copa. La cosa estaba solucionada desde un principio, usaba un retardo que trae un objeto de pygame (time.wait) que congela la aplicacion por X milisegundos y le devuelve el procesador a cualquier otro proceso, así, de esta manera, el juego comía entre 20% 0 %30 de procesamiento y no todo el procesador entero.

¿Pero que pasaba? Esta función time.wait no era la optima para tener unos buenos FPS, digamos, no tenia manera de controlarlos! era como que tiraba buenos FPS pero de manera bruta nomas, acumulativa, entonces, re-leyendo un poco la documentación, vi que con clock.tick(x) ¡todo andaba a la perfección! Es más, podía setiar el máximo de FPS que quería (la x) y que la libreria se encargue del resto (de usar la suficiente CPU para alcanzar esos x fps).

Moraleja de la historia: nunca se pongan a programar un juego online.

Seguir

Get every new post delivered to your Inbox.