Pang Remake y El desarrollo de software de entretenimiento.

En mis ratos libres estoy haciendo un remake del mítico juego de Capcom, simplemente como reto personal. Como lenguaje de programación he escogido Java ya que mi objetivo era realizar un estructura de clases elegante de forma rápida que se pueda utilizar para crear otros juegos.

Uno de los primeros pasos ha sido conseguir los gráficos originales, lo cual no ha sido tarea fácil ya que no he encontrado ninguna web buena con sprites de juegos antiguos. Una de las mejores que he encontrado es ésta y tan solo tienen sprites para hacer RPGs, en otra web tan solo había algunos sprites de juegos de los 80.

Finalmente mi hermano me suministró la ROM del juego original en japonés Super Pang de SuperNes y utilizando el emulador Zsnes que me permite separar por capas los gráficos del juego procedí a extraer poco a poco y con paciencia los gráfico usando Gimp.

Para conseguir la música original nada mejor que Video Game Music Archive. El resultado final son 3 fases jugables con una física de movimiento de las pelotas bastante decentilla. Aquí tenéis un par de capturas.

Los que queráis trabajar en empresas de videojuegos, una de las pruebas típicas para programadores es copiar perfectamente un juego antiguo. Intentad hacer un Pac-man, no es fácil hacer que los fantasmas se comporten igual que en el juego original por ejemplo.

Si os han entrado ganas de jugar al Pang en esta web podréis echaros unas partidillas.

¿Qué pensáis del desarrollo de software de entretenimiento? Yo creo que es una de las disciplinas del software más complicadas, ya que trabaja intensivamente con gráficos, tarjetas aceleradoras nuevas etc y debe de funcionar en el máximo número de sistemas sin problemas. Además hay que desarrollar muy rápidamente para no quedarse detrás del hardware. Son muchos los retrasos de varios años que se han producido en grandes juegos los últimos años por falta de previsión: Warcraft 3, Diablo 2 o el famoso caso de Duke Nukem Forever que lleva ya unos 10 años desarrollándose. En la página oficial de Duke Nukem ponen lo siguiente «The release date of this game is «When it’s done». Anything else, and we mean anything else is someone’s speculation. There is no date. We don’t know any date». ¿Porqué se retrasan tanto los desarrollos software? ¿Qué hace que un proyecto sea un éxito? ¿Toda la responsabilidad de un fracaso recae sobre los gestores del proyecto o también es muy importante la competencia individual de los programadores y el resto del equipo? Glups, estoy divangando, me parece que me está influenciando demasiado Joel .

Volvieno al tema del Pang, Intentaré crear una versión Applet del juego cuando tenga tiempo para ponerla aquí en la web, pero estoy teniendo problemas con la política de seguridad al cargar las imágenes de forma que solo puedo usar el juego con el appletviewer. Si alguien sabe del tema que avise.

Sam Barros y sus experimentos

Si pensábais que hoy en día no se puede hacer ciencia a la antigua usanza, estáis equivocados. Gracias a mi hermano conocí la web de Sam Barros que es el típico científico loco pero a lo moderno. Podréis encontrar pistolas laser, sistemas de criogenización, armas electromagnéticas, cohetes o incluso un CD funcionando a 150X . Al ver este último experimento entenderéis porqué las unidades de CD no funcionan a más de 60X 🙂

No os perdáis este video donde se ve el funcionamiento de una de las armas electromagnéticas. Si alguien se anima a hacer cosas de éstas que avise 😉

Una buena forma para empezar a experimentar en casa es esta otra web con experimentos más accesibles.

A new kind of science

Hace un mes Alvy de Microsiervos me recomendó este libro de Stephen Wolfram que podéis leer online. He comenzado a leer el libro en el que el autor cuenta sus conclusiones después de 20 años de investigaciones. El autor creó Mathematica para tener una potente herramienta con la que experimentar, con la que descubrir nuevos caminos en la ciencia. (Parece un científico del siglo XVII atrapado en nuestros días, creando una nueva ciencia y creando sus propias herramientas)

En el libro se responde a cuestiones sobre cómo se generan sistemas complejos a partir de sistemas sencillos. ¿Cómo a partir de una semilla puede aparecer una estructura tan complicada como un árbol? ¿Cómo se forman los copos de nieve? ¿Cómo crecen los animales? ¿Porqué los fluidos tienen movimientos tan complejos?

Yo veo sus descubrimientos como un paso más allá de las teorías del Caos. Un libro para los fans de los fractales, la vida artificial, los autómatas celulares, el caos, y la ciencia en general.

Kill Bill vol.1

Simplemente genial la nueva película de Tarantino. Mucha acción pero contada de una forma totalmente diferente y original. A mi personalmente el toque manga me ha encantado, la secuencia de gráficos de animación, las escenas de Okinawa y Tokyo, las técnicas ninjas y samurais etc.

Lo único malo es que han dividido la película en dos partes y te quedas totalmente colgado después de dos horas trepidantes. Muy recomendable.

Ilusión óptica

Un post para relajar 🙂 y no asustar a la audiencia no técnica. He encontrado via Microsiervos una ilusión óptica que me ha impactado mucho, no os la perdáis. No es la típica ilusión óptica, es algo nuevo, o eso creo. Mirad fíjamente el punto central durante unos segundos y veréis como desaparecen los puntos exteriores.

Jardinería de la usabilidad web.

En Mas que código Juanjo dedica un artículo a ampliar la visión que propusimos en el artículo de la programación como jardinería aplicándola al desarrollo web.

Yo extraigo de sus palabras que no tenemos los métodos automáticos para crear la estructura interna, ni tampoco para la presentación y usabilidad. Por lo que después de crear una página web deberá haber un equipo que se dedique a mejorar, maneter y dar más usabilidad a la web. Es decir, un grupo de Jardineros que harán que una web no se quede abandonada y en desuso. Los arquitectos en cambio además de un sistema para generar la estructura también tienen unas normas que determinan la altura de las puertas, altura de los enchufes, interruptores, ventanas etc. Está todo definido, no tiene que venir nadie a cambiar un interruptor de sitio, cambiar una puerta de lugar porque sino no entra la gente, cambiar la barandilla del balcón de altura porque la gente se cae. Todo esto suena algo absurdo pero a la gente que navega por internet le ocurre estas cosas cada día de forma metafórica.

Es muy probable que en informática haya que cambiar un enlace de lugar para que entren los usuarios en determinada sección por ejemplo, cambiar un botón que está situado de forma que inesperedadmente confunde al usuario, situar un texto importante en una zona más central, cambiar el sistema de búsqueda para que los navegantes no se pierdan etc.

El problema es que los informáticos no tenemos métodos para saber si un usuario se va a caer por un balcón de antemano. Tenemos que observar al usuario como se cae por el balcón para luego cambiar la altura de la barandilla . Steve Krug dedica un capítulo de su libro a explicarnos que lo más importante para crear una web usable es observar como la usan nuestros visitantes, a partir de lo cual podremos ir sacando fallos que había en la presentación de nuestro sitio que para nosotros no eran tan evidentes a priori.

Todo esto me hace pensar: ¿Es bueno para nosotros los informáticos que nuestra disciplina sea más una Jardineria del software que una Ingeniería del software? ¿Tenemos más trabajo gracias a ello (Al tener que hacer labores de jardineria) o por el contrario nuestro trabajo está desprestigiado al no ser una disciplina debidamente reconocida?