Se viene un nuevo record: New Super Mario Bros. Wii

Posted by | Posted in ,

No es noticia, pero no quería dejar de mencionar este juego (JUEGAZO!!) que se viene para Wii este Noviembre, y aprovechar para recordar la versión original de este mismo.



Se trata del "New Super Mario Bros. Wii", secuela del "New Super Mario Bros" para DS, y heredero del original "Super Mario Bros" para NES, creado por el creativo (palabra tan devaluada en el mercado actual :-P) Shigeru Mishamoto (sobre quien escribiré más adelante).


Una de las caracteríticas principales de esta nueva versión, es la capacidad de poder jugar cooperativamente, es decir, que podrán jugar hasta 4 personas al mismo tiempo, algo muy deseado por quienes jugamos horas y horas la version para NES (o "Family" para los amigos), en la cuál, cada jugador (hasta 2) debía esperar su turno para jugar. Tiempo después he conocido las dificultades técnicas que tenia la vieja consola para poder lograrlo...


Para dar magnitud al original "Super Mario Bros", cabe destacar que hasta hace poco menos de dos años, fue el juego mas vendido de la historia, con 40.23 millones de copias vendidas, superado recientemente por Wii Sports, con 47.62 millones de copias vendidas (y contando).
Además, si bien no fué el primer plataformero (ni siquiera el primero con scroll horizontal), claramente fué el responsable de popularizar el genero en las consolas de 8 bits, y a traves de los juegos inspirados en este, contribuir a ser el genero con mas titulos en las consolas hogareñas.

Otras carácterísticas de esta nueva version exclusiva para WII que dió a conocer Nintendo y que además pueden ser deducidas del trailer son las siguientes:

  • Mario podra tener un traje de pingüino, el cual le dará la capacidad de congelar enemigos.
  • Además habrá otro traje rojo, acompañado de un casco con helices, el cual nos permitirá volar.
  • En ciertas plataformas, deberemos mantener el equilibrio moviendo nuestro Wiimote, para no caernos de estas.
  • Podremos montar a Yoshi.
  • Dispondremos de Mario, Luigi y por lo menos dos Toads como personajes seleccionables.
  • Si nos quedamos trabados en alguna pantalla, se dispondrá de un modo Demo, con el cuál podremos ver como continuar el nivel (parece que es una nueva caracterítica que los Game Designers de Nintendo quieren incluir en sus próximos titulos).
  • Un jugador podra ser llevado por otro jugador en andas, y de este modo ayudar a pasar pasajes dificiles de un nivel a su compañero.
  • Según recientes estudios científicos, el juego será un 34.5% mas divertido que la versión original. ;-)


Trailer:

Asimov - La Bola de Billar

Posted by | Posted in ,

Este post es para recomendar un cuento corto de Isaac Asimov que he releido hace unos pocos días.
Se trata de "La Bola de Billar", un cuento que toca la temática de si es posible o no la tan ansiada (sobre todo por parte de fanáticos de DeLoreans DMC-12 voladores) antigravedad.
Para aquellos que no frecuenten tener libros de divulgación y/o ciencia ficción en sus blibliotecas, no se asusten!, Asimov es un escritor de una lectura sencilla y entretenida.




Link al libro (en castellano):
http://200.111.157.35/biblio/Asimov,%20Isaac%20-%20La%20bola%20de%20billar.doc

History of Programming Languages

Posted by | Posted in , ,

Poster de O´Relly que muestra los 50 primeros años de historia (1954 - 2004) de los lenguajes de programación.
Basado en la recopilación original realizada por Éric Lévénez, la cuál aun es accesible en http://www.levenez.com/lang/.

¡A imprimir!



The Programmer Hierarchy

Posted by | Posted in ,

Muestra que programadores se creen mejores que otros.
Son muy graciosas las aclaraciones sobre los ‘pseudo’ programadores HTML y los programadores Ruby…

Prácticas anti-intuitivas

Posted by | Posted in ,

Como si no fuera poco que por naturaleza el código fuente de una aplicación esta escrito en lenguajes que necesariamente estan en un nivel intermedio entre el lenguaje natural y el lenguaje de las máquinas (lo cuál hace que existan seres denominados “programadores”), existen prácticas, algunas pocos conocidas y otras utilizadas a menudo en ciertas areas de la programación, que hacen aún mas dificil su comprensión.
Cuando digo ‘prácticas anti-intuitivas’, no me refiero a una mala identación o modulación del código, sino a la utilización particular de ciertos operadores y/o palabras reservadas de algunos lenguajes de programación.
(update) Tampoco me refiero a malos usos de estos operadores y/o estructuras, todo lo contrario: muchas de las implementaciones que mencionaré son validas y necesarias en, por ejemplo, la programación de video-juegos.
A continuación, recopilo algunas de estas prácticas, la cuál en su mayoria son funcionales en lenguajes de sintaxis similar a C (C++, Java, C#, AS, Javascript, etc).

Operador condicional ?
Este operador nos permite sustituir el uso del bloque if-else por un código mucho mas simple y eficiente… pero a costa de claridad en nuestro codigo. La mejor forma de entenderlo para quienes nunca utilizaron este operador es con un ejemplo:

if (a>b) {
c = 10;
}
else {
c = 5;
}

Este código utilizando el operador condicional se escribe:

c = (a>b) ? 10 : 5;

Dejo al lector el analisis de la linea anterior (:-P).

Iterando colecciones
Para la siguiente practica deberemos abstraernos del lenguaje usado. Supondremos una propiedad lenght en una colección que nos devuelve la cantidad de elementos presentes en esta, y supondremos que la variable i ya fué declarada y responde a algún tipo entero.
La siguiente forma de recorrer una colección la encontre en el código de un juego de un compañero, y debo reconocer que (tal vez por la sorpresa) tarde un rato en entender su maldita razon de ser!.
En vez de utilizar el bloque for de la siguiente manera:

for (i = 0; i <>
colection[i] = 0;
}

El muy limado escribió:

i = colection.lenght;
while (i) {
i–-;
colection[i] = 0;
}

Intercambio de valores entre dos variables
Los siguientes métodos de intercambio de valores fueron extraidos del blog “Programación Bizarra”.
En vez de escribir el siguiente código:

aux = x;
x = y;
y = aux;

Podemos utilizar aritmetica básica:

x = x + y;
y = x - y;
x = x - y;

Ó una forma mucho mas resumida utilizando el operador binario XOR (^=):

a ^= b ^= a ^= b;

Planilandia: Un Romance en muchas dimensiones

Posted by | Posted in

Flatland: A Romance of Many Dimensions es un libro de Edwin A. Abbot del año 1984, el cual en realidad firmó bajo el pseudónimo de A. Square (Un Cuadrado).

Este libro (el cual leí hace varios años atras) cuenta la extravagante aventura de un Cuadrado en su mundo bidimensional y sus experiencias en mundos de una dimensión y tres dimensiones, por lo que la novela en todo momento exige mucha imaginación por parte del lector para poder entender lo que el protagonista ve y siente al encontrarse en lugares de mayores o menores dimensiones.

Tambien es muy interesante la descripción de las clases sociales de Planilandia. En esta sociedad, la clase social de una persona esta determinada por los lados que la componen. Así, la clase obrera son simples triangulos, mientras que los sacerdotes y sabios tienen tantos lados que se asemejan a esferas.

Pero recordemos que nuestro protagonista está en un mundo de solo 2 dimensiones, por lo que las personas, entre ellas se ven como lineas (en realidad todo su campo de visión se limita a una linea), pero logran reconocerse por la manera en que la luz afecta los diferentes tramos de sus simples cuerpos.

Algunos consideran que el autor era misógino, ya que describe que en Planilandia las mujeres son los organismos mas simples que existen (simples segmentos), sin cultura ni educación (sin embargo, en el libro se hace mensión de una gran rebelión por parte de las mujeres). Otros creen que de cierta manera, Abbot trató de reflejar la realidad social de su epóca y de críticar y ridiculizar a las estructuras monárquicas y religiosas de Inglaterra.

Como sea, me pareció un libro más que interesante y original.

Muchos años despues de escrito este libro, Stephen Hawking, en su best-seller “A Brief History of Time” demostró de la imposibilidad de la existencia de mundos de dimensiones inferiores de una manera muy graciosa… pero eso lo compartiré en un próximo post.

Les dejo a continuación las primeras líneas de una introducción de este libro, escrito por Banesh Hoffmann:

“He aquí una aventura conmovedora de matemáticas puras, una fantasía de spacios extraños poblados por figuras geométricas; figuras geométricas que piensan y ablan y tienen todas las emociones humanas. No es ningún relato intrascendente de ciencia-ficción. Su objetivo es instruir, y está escrito con maestría sutil. Empieza a leerla caerás bajo su hechizo. Si eres joven de corazón y aún se agita dentro de ti la
capacidad de asombro, leerás sin pausa hasta llegar, lamentándolo, al final. No sospecharás sin embargo cuándo se escribió el relato y qué clase de hombre lo escribió.”





Máscaras con gradientes de alpha en AS3

Posted by | Posted in ,

Para quienes nunca hayan tenido la necesidad de aplicar una mascara utilizando un Shape y/o Movieclip el cual esta “relleno” con un gradiente con variaciones en alpha, supondran que la solución es trivial, es decir: ó colocan en “tiempo de autor” desde flash nuestro gradiente en un layer que es máscara de otro layer, donde esta nuestro Movieclip a ser enmascarado, ó simplemente escriben la siguiente línea de código:

draw_mc.mask = mask_mc;


donde mask_mc es la mascara con el gradiente, y draw mc el objeto al cuál se aplicara… pero no!

Aplicar mascaras con gradientes noes posible en tiempo de autor haciendo uso de la IDE de Flash, sino que solo es posible mediante el sigueinte código:

draw_mc.cacheAsBitmap = true;
mask_mc.cacheAsBitmap = true;

draw_mc.mask = mask_mc;


Ya que este blog no pretende ser la documentación en línea de nigun lenguaje (:-P), a continuáción está el link a la documentación oficial de la propiedad cacheAsBitmap de la clase DisplayObject en AS3:

http://livedocs.adobe.com/flex/201/langref/flash/display/DisplayObject.html#cacheAsBitmap

The Infiltrator: El Proyecto

Posted by | Posted in ,


Abro este post, en primer lugar, para agradecer a todos los que me apoyaron en el proyecto The Infiltrator, con el cual participe recientemente del concurso CODEAR - Proyecto 2008, organizado por ADVA, y fué un poco una “presentación en sociedad”.


La idea original, fue la de (como me gusta decir), volver a las fuentes, un arcade, un juego sencillo, sin demasiada historia, pero proponiendo una mecanica que no sea dificil de asimilar, pero que presente algun nuevo reto al usuario.

La elección de un juego de acción, tambien me permitió tener una excusa para tener enemies, que presentaran algun tipo de inteligencia artificial, usen algún algoritmo de busqueda de recorridos mínimos, y tratar de que sus movimientos sean naturales. En el caso de ITR estos enemigos fueron los centinelas XEV.

La tecnología utilizada fué el framework XNA en C# de Microsoft, sobre el cual desarrolle una pequeña biblioteca denominada GeorMeX, la cual me facilitó (aun más, por el hecho de utilizar XNA), lidiar con graficos 2d y 3d, input, sonido, y es donde desarrolle un simple, pero efectivo sistema de particulas, efectos de postproceso (quería lograr por todo los medios el efecto Bloom!), etc.Tambien me sirvió de excusa para mirar con atención juegos 3D de PC, desarrollados a principios de los 2000, en busca de trucos, para lograr ambientes y efectos atractivos, sin “matar” al juego. Creo que dentro de todo logre que funcione bastante bien en muchas máquinas (los filtros postprocess pueden ser desactivados desde las pantallas de opciones ).

El desarrollo duró un total de 5 meses.Durante el primer mes, realice el diseño del juego, recopile información, jugue mucho al MGS 1, y rehice mil veces el modelo 3d de la nave…

Durante los siguientes 3 meses, desarrolle el juego en sí, junto con lo que restaba de gráfica. Fué la parte mas divertida para mí, pero, al estar escribiendo este post, me doy cuenta que es la mas aburrida de contar… Todo esto en el 2007. Luego abandone el proyecto durante 10 meses, simplemente por falta de tiempo.

Finalmente, en Octubre de este año retome el proyecto… pero esta vez junto con Carlos Caldarone. No ahondaré en su curriculum, pero lo único que dire es que es un gran profesional de la industria, y las pantallas realizadas para Infiltrator, junto con el retoque del arte general del juego, hicieron que el juego se vea “Enorme”.

En cuanto a la programación, agregue algo que me pidieron todos aquellos que habian probado el juego: un minimapa.Y como “la cereza del postre” Hugo Sosa realizó el trailer (Siiii! Tiene un trailer!) del juego, donde capturo perfectamente lo que el juego quiere transmitir.


Agradecimientos:

A Carlos y Hugo, por ayudarme a terminar el juego.
A Anibal (con quien casi lo hacemos en C++ y OpenGL! pero habra revancha!) y Diego, por apoyar los comienzos del proyecto.
A Martín, por sus consejos (sobre todo por darme buenas razones para incluir un minimapa).

Dreamcast: ReviveDC Project

Posted by | Posted in


ReviveDC Project DVD Covers es un proyecto encarado por un fan de la consola Dreamcast denominado Sixtyten, con el fin de realizar tapas de cajas de DVD para su coleccion de CDs y “Backups” de sus juegos de Dreamcast.Este proyecto es todo un simbolo de las ganas que muchos quieren que esta consola no muera definitivamente. Para todos aquellos que tengan sus juegos en rotas cajas de CD (en el mejor de los casos, si es que no estan dispersos sueltos alrededor de la consola como enmi caso) los invito a bajarse estos covers, los cuales tienen una gran calidad profesional.