Blog

Juan Mellado, 10 Enero, 2006 - 15:28

Ya tengo en mente un nuevo proyecto/juego en JavaScript. De momento, y a falta de un nombre mejor, lo voy a llamar "Colors". Quiero hacer un remake de un juego al que jugué hace bastante tiempo y que creo que se adapta bastante bien a los requerimientos que me he auto-impuesto para este tipo de programa: lógica de juego simple, controles sencillos con ratón o teclado, y fácil de implementar en un periodo razonablemente corto de tiempo.

El tablero de juego se compondrá de una cuadrícula de colores generada aleatoriamente y el objetivo consistirá en hacerlos desaparecer todos. Para hacerlos desaparecer habrá que pinchar en uno de los cuadros, de forma que automáticamente desaparecerá tanto el cuadro pinchado como todos los que se encuentren conectados a él y que tengan el mismo color. Los cuadros situados sobre los que desaparezcan caerán hacia el fondo de la cuadrícula simulando un efecto de gravedad y generando un nuevo tablero.

Recuerdo que lo jugué en la página de Chupa-Chups hace unos años. Era un juego promocional, y ya no se encuentra disponible. Al ser una idea muy simple supongo que habrá sido copiada y será fácil encontrar juegos con la misma dinámica de juego. Pero no me preocupa mucho, no estoy buscando la originalidad y el producto exclusivo, sólo algo sencillo de hacer.

A priori lo más complicado será la parte de averiguar cuales son los cuadrados colindantes a uno dado. Tendré que buscar algún algoritmo, posiblemente recursivo, como los que se utilizan para hacer el relleno (fill) de superficies.

Juan Mellado, 9 Enero, 2006 - 21:51

Esta semana la crítica de la DOTW (Demo Of The Week) va a ser muy, pero que muy, rápida: no me ha gustado.

En general el género de conducción no me gusta mucho, exceptuando maravillas como Need For Speed: Most Wanted, así que mi opinión quizás no sea muy objetiva, ¿pero que opinión lo es?.

No me he entretenido nada probando ToCA Race Driver 3. Así que he desinstalado la demo enseguida.

Lo que me llama la atención es que vayan por la tercera entrega del juego. Al parecer la simulación es bastante buena y pueden modificarse muchos parámetros para conseguir una simulación muy realista. Pero que le vamos a hacer, a mi todo eso siempre me ha parecido muy aburrido.

Por cierto, la temporada de demos de invierno (Navidad/Reyes) acabó, así que ahora habrá que acostumbrarse a lanzamientos más distanciados en el tiempo coincidiendo con alguna "Expo" importante. Quizás va siendo hora de dejar las superproducciones a un lado y revisar algunos juegos "casual" de los que llevan bastante tiempo de moda y de los que tan bien se habla.

Juan Mellado, 6 Enero, 2006 - 14:20

Acabo de subir la versión 1.0 del Mahjong, el remake del juego original que estaba haciendo en JavaScript. Y la verdad es que me gusta como me ha quedado. No aporta nada nuevo e innovador al género, pero me ha servido para seguir practicando con HTML, CSS y JavaScript.

Los gráficos no son gran cosa, pero no están mal para haberlos hecho yo solito. Lo que más me ha costado es dar al tablero sensación de tridimensionalidad, sobre todo porque no utilizo sombras ni proyección en perspectiva. Así que he dibujado las fichas de forma que parezcan que están unas encima de otras desplazándolas un poco en función de la altura en la que se encuentran.

Dentro de unos días trataré de escribir un poco acerca de como está estructurado el código fuente incidiendo en algunos detalles como la generación aleatoria del tablero y la comprobación de cuando una ficha puede seleccionarse o no.

Juan Mellado, 4 Enero, 2006 - 20:43

Le he estado dedicando un rato a continuar con el remake del clásico Mahjong que estoy haciendo en JavaScript. Y, para variar, mi principal problema surge cuando intento que funcione correctamente en los dos navegadores que utilizo habitualmente: Firefox e Internet Explorer.

Resulta que Internet Explorer considera que el ancho de un elemento HTML incluye su border y su padding, mientras que Firefox, siguiendo el estándar, no lo incluye. Esto hace que la siguiente función devuelva un valor distinto dependiendo del navegador que se utilice:

function getElementWidth(element) {
  return(element.style.width);
}

Afortunadamente este comportamiento ya lo han "sufrido" muchos otros antes que yo. Internet está lleno de páginas comentando este problema y su solución. Por ejemplo en la siguiente página, de la propia Microsoft, se explica la diferencia de criterio y como conseguir que el navegador cumpla el estándar:

Mejoras de CSS en Internet Explorer 6 Public Preview

La solución es sencilla, basta con incluir el !DOCTYPE adecuado al principio de la página HTML. Algo que yo no estoy haciendo para estos juegecillos en JavaScript.

Una imagen (reducida de tamaño) de como está quedando:

Preview Mahjong
Juan Mellado, 2 Enero, 2006 - 21:03

Me he bajado la demo de Crónicas de Narnia, aunque estaba un poco receloso de lo que podía encontrarme. Es un juego correcto, bien realizado, aunque quizás para un público un tanto infantil.

La demo contiene dos fases en las que hay que combinar el uso de varios personajes para avanzar en el escenario. Resulta curioso ver cómo hay que organizarse para que poder utilizar las habilidades de cada protagonista. Por ejemplo, hay que subir al arquero a los hombros del espadachín para que esté a la altura justa de disparo, o hay que utilizar la niña pequeña para pasar por los sitios más estrechos. No resulta dificíl avanzar, sólo hay que probar y persistir. Los enemigos lo ponen bastante fácil, aunque no dejan de salir en todo momento.

Los gráficos están bien, elegantes, bien conjugados con el entorno. Esta vez no voy a juzgar mucho. Me ha dejado bastante indiferente todo en general.

Por cierto, lo de la demo esta es curioso, un .zip que se descomprime en una carpeta y a correr. Sin proceso de instalación ni nada. Otra demo que me he bajado, de la que hablaré la semana que viene, me ha obligado a pasar por un interrogatorio y hasta ha tenido la desfachatez de obligarme a reiniciar el ordenador. Hacía mucho, mucho, mucho, tiempo que ningún programa me lo pedía.

Otro detalle que me ha gustado de la demo es el tiempo de carga de las fases. Muy rápido. Aunque claro, los escenarios son muy pequeños.