martes, 19 de diciembre de 2006

El ritmo

Una de las cosas que he comprobado a la hora de ir montando el juego (experimento, más bien) es la importancia del ritmo: la necesidad de marcar la velocidad a la que pasan los eventos.

En los videjouegos clásicos el ritmo suele ser rápido para evitar que las partidas se alarguen en exceso, aunque cada juego tiene su propio ritmo; en el Tetris, por ejemplo, va muy ligado a la dificultad creciente del juego: al principio las piezas caen lentamente, dejando tiempo para colocarlas adecuadamente, pero en poco tiempo el ritmo se acelera hasta volverse frenético. En los niveles más avanzados apenas vemos las piezas caer.



El ritmo es, por tanto, uno de los factores con el que se manipula el grado de dificultad: al ir avanzando niveles se puede ir reduciendo el intérvalo para colocar la ficha, aumentando el ritmo y la dificultad, ya que el jugador dispone de menos tiempo para buscar la mejor jugada y se puede equivocar más fácilmente.

Hay que compaginar la velocidad del juego a la velocidad de percepción del jugador; si por ejemplo, cuando desaparecen las fichas del tablero al juntar dos estrellas no inserto una pausa y la siguiente pieza aparece inmediatamente, la experiencia se resiente, porque no vemos (no recibimos) una gratificación por el éxito de la acción. Igual pasa cuando cambiamos de nivel, el usuario espera que le demos un respiro.

El ritmo se debe acompañar de sensaciones que lo potencien: musica y efectos visuales. La música, sobre todo, debe funcionar como un metrónomo de lo que pasa en el juego, puede ser relajante o excitante, pero siempre en sintonía con lo que está pasando.

Dentro de Adobe Flash tenemos dos maneras principales para marcar y controlar el ritmo: la velocidad de fotogramas y los intérvalos.

  • Con la velocidad de fotogramas (FPS) especificamos la velocidad de redibujo de el juego, por lo que de cara a las animaciones debemos tener en cuenta este factor; por ejemplo, yo utilizo eventos onEnterFrame para crear animaciones al vuelo en Actionscript, si la velocidad de la película es 12 FPS, este evento se producirá doce veces por segundo.

  • Los intérvalos (setInterval) se encargan de ejecutar una función cada cierto tiempo. Yo los utilizo para espaciar eventos y ajustar a la velocidad de percepción del jugador: aparición de una nueva ficha, colocación, redondeamiento, bonus, etc.


El objetivo es conseguir un ritmo de juego lo suficientemente rápido para capturar totalmente la atención del jugador pero sin agobiarlo con una dificultad excesiva.

viernes, 8 de diciembre de 2006

Proyecto 0.3



Concepto del juego (80%)

Montada (a nivel de código) una estructura de niveles con variables independientes (colores, dificultad, fondo, etc).

Realización (60%)

Corregido el "flood fill", ahora funciona correctamente.

Añadido el control con el ratón, ahora el cursor se puede manejar indistintamente con las flechas o con el ratón. Eso facilita el control con una PSP (aunque, por ahora, funciona muy lento para ser jugable).

Modificado el aspecto visual, ahora las uniones entre las piezas se ven más claras porque se redondean las esquinas; para ello he dividido cada pieza en cuatro clips (uno por esquina) con diferentes estados en función de las casillas circundantes.

Fondo con imagen (para la ocasión he puesto un motivo navideño :)

Modificada la animación que mostraba el tiempo restante para colocar la pieza; en vez de un zoom de la siguiente pieza hay una pequeña animación en las líneas interiores del cursor.

Música: muy preliminar, pero tenía curiosidad por ver como quedaba; descarga una lista de reproducción desde ccMixter y pone las urls de los mp3 en una matriz para reproducirlos.

Advertencia: los colores y la mayor parte de la presentación del juego es provisional y cambiará cuando toda la mecánica del juego esté bien definida.

domingo, 3 de diciembre de 2006

Arkanoid

Flyer del juegoAunque he escogido Arkanoid como ejemplo más conocido, el concepto original del genero "rompeladrillos" se remonta al Breakout de Atari, a principios de los 70, que a su vez era una evolución del primer videojuego de la historia, el Pong. Manejamos una "pala" (una barra deslizante) en la zona inferior de la pantalla, se desliza sobre el eje horizontal, y tenemos el objetivo de romper unos "ladrillos" utilizando la pala para hacer rebotar una bola, siempre impidiendo que se escape por la parte inferior (lo que nos haría perder una vida).

Taito cogió el concepto original y lo refinó para lanzar en 1986 Arkanoid, un gran éxito que tuvo una secuela al año siguiente, Arkanoid 2, the Revenge of Doh. Respecto al Breakout se añadían las siguientes novedades:
  • Estructura de niveles, con patrones diferenciados y dificultad creciente.
  • Enemigos, pequeños "aliens" que revolotean por la pantalla modificando la trayectoria de la bola.
  • Bonus, al eliminar algunos ladrillos caían bonificaciones que proporcionaban alguna ventajas, como longitud extra de la pala, enlentecer la bola, "pegar" la bola a la pala, bolas múltiples o un laser, el más deseado, con el que podíamos disparar.
  • Una historia (poco creible) sobre una invasión extraterrestre y una nave legendaria, la Vaus.
  • Un enemigo final, en el nivel 33.

DialArkanoid seguía utilizando un método de control indispensable en estos juegos, un dial, un botón giratorio que nos permitía un control exacto de la pala y que se podía simular con otros controles analógicos (como un ratón) pero no con una joystick o pad digital.

Además de las dos secuelas de la propia Taito, la influencia de Arkanoid es tan grande que no hay plataforma de juegos que no cuente con una o varias versiones de este rompeladrillos.

Las claves:
  • Concepto de juego muy sencillo, impedir que la bola salga de la pantalla dirigiéndola para romper los ladrillos.
  • Requerimientos sencillos, Breakout funcionaba sin transistores.
  • Dificultad creciente (aunque es difícil de entrada para los jugadores poco experimentados).
  • Juego arcade, se requieren habilidad y reflejos.
  • Estructura de niveles con patrones de ladrillos diferenciados para evitar la monotonía.
  • Muy dependiente del sistema de control (dial).
Para saber más: