Concepts

13 02 2009

Cuando estas rodeado de gente talentosa, no podes evitar querer ser(un poquito) como ellos. Eso me pasa con Ale Moreno(aka Red Fox) y Fede Nessi, dos grandes artistas que trabajan conmigo en threemelons quienes desde hace unos días me vienen dando una mano para que pueda hacer por mi propia cuenta concepts de ciencia ficción.

Todas las noches al llegar a casa practico un rato con el photoshop antes de irme a dormir, y al día siguiente les pregunto como puedo mejorar lo que hice. Siempre se hacen un rato para ayudarme y darme consejo.

Asi que este primer concept se los dedico a ellos, mis mentores. Un abrazo a ambos.

robot3



Resucitando el sonido de la AMIGA en flash 9

10 02 2009

Googleando encontré una biblioteca en actionscript 3 (para flash player 9!) que permite leer y reproducir ficheros de musica con extensión .MOD de amiga.

Para los que son muy jóvenes y no saben lo que es un archivo .mod les cuento que hace mucho mucho tiempo, cuando no existían lo mp3 y las prestaciones de las computadores eran tan restringidas que solo disponían, como mucho, de 1 mega de memoria, una computadora llamada Comodore Amiga implemento un formato de archivos de musica muy parecido al MIDI, pero que guardaba los instrumentos en el mismo archivo. El resultado eran pistas de audio de una muy buena calidad que ocupaban muy poco espacio. Estas las hacia ideal para ser incluidas en videojuegos y demos.

El tiempo paso, y llegamos al dia de hoy donde despilfarramos poder de procesamiento, memoria y ancho de banda incluyendo MP3 en los swf`s con los que poblamos nuestros sitios web.

Siempre se le critico a flash el hecho de no permitir un formato de archivos de musica/sonido como midi o mod. A los oídos sordos de Adobe(aunque lo de los midis lo vienen pidiendo de los tiempos de Macromedia) salieron unos jóvenes entusiastas que encontraron una forma de reproducir ese maravilloso formato en flash, y compartieron su talento con el mundo distribuyendo esta funcionalidad en forma de biblioteca, la cual podemos bajar de googlecode, en la siguiente URL:

http://code.google.com/p/popforge/

Desgraciadamente, la biblioteca no trae un buen ejemplo, por lo que debemos utilizar el de otro joven entusiasta, el cual lo expone en la siguiente URL:

http://jadegame.com/dev.html

Pero como nada es gratis en esta vida, y al querer implementar la reproduccion de un fichero mod en mi juego de naves me encuentro con que la performance se vio severamente afectada.

Esperemos que con flash 10 este inconveniente se supere para que los videojuegos vuelvan a tener el encanto de antaño.

Mi juego de naves con musica pueden verlo en el siguiente link:

LINK!

Uno que otro nostálgico lo s abra apreciar.

Saludos!



Nuevo(y mejorado) juego de navesitas

7 02 2009

En el post anterior, puse un avance de lo que sera mi nuevo juego de naves. El tema es que el flash embevido era muy chiquito y no le hacia justicia al prototipo.

6a00c225287c518e1d00ccff89898f6731-320pi

 

Les recomiendo que sigan el link al final del post para ver la nueva version de dicho pototipo.

Algunas de las mejoras/agregados son:

  • Ahora la navecita se posiciona en un lugar mas conveniente, en lugar de en el 0, 0 de la pantalla.
  • Ahora la navecita dispara “HommingMissiles”, pero solo cuando hay enemigos en pantalla(para que disparar un misil teledirigido si no hay blancos a la vista?)
  • Ahora el juego recibe foco apropiadamente, con lo que se soluciona el problema en el cual habia que hacer clic para en la pelicula para que esta tome foco y poder mover la nave.
  • Cosas locas que no recuerdo.

Enjoy!

LINK!

Salutes!



Prototipo de juego de naves

5 02 2009

Estaba investigando tecnicas de definicion de mapas con arrays y logre este prototipo. Funcionalidades:

* Zoom
* Los enemigos aparecen al borde de la pantalla visible.

[editado el 6 de febrero a las 2:50 am]

* Ahora tiene estrellitas en lugar de esas fotos feas de fondo!.(saben con que tuve problemas? Con el color de las estrellas!)

Bugs conocidos

Después del game intro, hay que hacer click en la pantalla para que la película tome el foco y funcione el teclado. Se usan las flechas para mover y CTRL para disparar.

Enjoy!



Colas enlazadas mas rápidas que arrays?

4 02 2009

Estaba leyendo esta nota donde dice que las colas indexadas son mas rápidas que los arrays. En este post, hay varias respuestas afirmando la valides de esta afirmacion.

El problema es que las pruebas que hice por mi cuenta arrojan exactamente lo opuesto:

Actionscript:
  1. package {
  2.     import flash.display.Sprite;
  3.     import flash.utils.getTimer;
  4.  
  5.     public class DeleteThisProject extends Sprite
  6.     {
  7.         public function DeleteThisProject()
  8.         {
  9.             var myArray:Array = new Array();
  10.             var tempSP:Sprite;
  11.            
  12.             var i:int = 0;
  13.             trace("Populating Arrays");
  14.             for(i = 0; i <= 10000; i++)
  15.             {
  16.                 tempSP = new Sprite();
  17.                 tempSP.y = 100;
  18.                 myArray.push(tempSP);
  19.             }
  20.             var lastCola:Cola = null;
  21.             var tempCola:Cola;
  22.             for(i = 0; i <= 10000; i++)
  23.             {
  24.                 tempSP = new Sprite();
  25.                 tempCola = new Cola(tempSP);
  26.                 tempCola.next = lastCola;
  27.                 lastCola = tempCola;
  28.             }
  29.             trace("Finished populating arrays");
  30.             trace("Begin Array iteration");
  31.             var timeStamp:int = getTimer();
  32.             for(i = 0; i <myArray.length; i++)
  33.             {
  34.                 tempSP = Sprite(myArray[i])
  35.                 tempSP.graphics.beginFill(0xFF0000);
  36.                 tempSP.graphics.drawCircle(0, 0, 50);
  37.                 addChild(tempSP);
  38.             }
  39.             trace("End Array iteration: " + (getTimer() - timeStamp) + "ms");
  40.            
  41.             trace("Begin Cola iteration");
  42.             timeStamp = getTimer();
  43.             tempCola = lastCola;
  44.             i = 0;
  45.             while(tempCola)
  46.             {
  47.                 tempSP = tempCola.sprite;
  48.                 tempSP.graphics.beginFill(0x00FF00);
  49.                 tempSP.graphics.drawCircle(0, 0, 50);
  50.                 addChild(tempSP);
  51.                 tempCola = tempCola.next;
  52.             }
  53.             trace("End Cola iteration: " + (getTimer() - timeStamp) + "ms " );
  54.         }
  55.     }
  56. }

La clase Cola dice así:

Actionscript:
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.    
  5.     public class Cola
  6.     {
  7.         public var next:Cola;
  8.         public var sprite:Sprite;
  9.         public function Cola(pSprite:Sprite)
  10.         {
  11.             sprite = pSprite;
  12.         }
  13.     }
  14. }

Los valores que obtuve son los siguientes:

Populating Arrays
Finished populating arrays
Begin Array iteration
End Array iteration: 737ms
Begin Cola iteration
End Cola iteration: 7124ms

De que esta hablando esta gente?