jueves, 29 de agosto de 2013

Ludum Dare 27: Actualización para 10 Seconds to escape!

Después de unos días dándole vueltas a un problema que apareció al cambiar gran parte del sistema para que aceptara añadir nuevos niveles, por fin he conseguido solucionarlo, así que aquí va la actualización con 5 nuevos niveles, además del que ya tenía la primera versión.

Descarga el juego en su versión para:

La verdad es que creando este juego como un reto he aprendido mucho... quien sabe, dependiendo de los resultados de este Ludum Dare, quizás me atreva a hacer algo mas grande con este juego...

lunes, 26 de agosto de 2013

Mi primera participación en el Ludum Dare

10 Secondes to escape

Mi primer juego publicado y primera participación en el concurso Ludum Dare, y la verdad es que ha sido emocionante y no carente de estrés, por la naturaleza misma del concurso....



Os presento 10 Seconds to escape: un juego mas de puzzles que plataformas, con un simpático aspecto gráfico y una jugabilidad entretenida y directa.
El objetivo del juego (y temática del concurso), es atravesar el nivel recogiendo por el camino todas las gemas del mismo y por último llegar a la llave única de nivel.

El juego en si, se podría ver como una pequeña demo de lo que quizás podría ser si se le agregaran más niveles, pero eso ya es otra historia.

Descarga el juego en su versión para:
Windows | Mac | Linux

Próximamente escribiré el consabido Post-mortem un clásico del concurso y explicaré mi experiencia global con el mismo.

Sin mas que añadir, a jugar y si te gusta, no olvides compartir este post! :)

P.D. Si participas en el concurso, no se te olvide valorar el juego aquí

TECH: Distribuir juegos hechos con Love2D

La distribución es una de las partes importantes una vez finalizado nuestro juego, por ello y también por petición de un amigo, voy a explicar aquí como crear paquetes específicos para cada Sistema Operativo del mercado si nuestro motor de juego elegido es Löve2D

Como se ha visto en anteriores post, Löve2D puede funcionar en Windows, Mac y Linux sin necesidad de ninguna modificación, solo con distribuir el archivo .love. Pero esto tiene un inconveniente, para ejecutar los archivos .love necesitas tener instalado el motor Löve2D y por ello requerirás al usuario su previa instalación, lo cual puede terminar en que simplemente ni prueben tu juego...

La solución: crear ejecutables para los distintos Sistemas Operativos como sigue:

Windows: Para esta plataforma lo idóneo es generar el consabido .exe, para que el usuario solo tenga que hacer doble-click y ponerse a jugar; para ello los siguientes pasos:

  1. Descargamos la versión:  Zipped 32-bit de Löve 0.8.0 para Windows
  2. Creación del paquete auto-ejecutable, una vez descomprimido el .zip descargado:
    1. [En Windows] Colocando el cmd en la ubicación de la carpeta descomprimida ejecutaremos lo siguiente: copy /b love.exe+SuperGame.love SuperGame.exe donde "SuperGame.love" será nuestro juego (si no lo hemos copiado a esta carpeta, se deberá especificar la ruta completa) y "SuperGame.exe" será el archivo ejecutable generado.
    2. [En Linux/Mac] Colocando el terminal en la ubicación de la carpeta descomprimida ejecutaremos lo siguiente: cat love.exe SuperGame.love > SuperGame.exe donde "SuperGame.love" será nuestro juego (si no lo hemos copiado a esta carpeta, se deberá especificar la ruta completa) y "SuperGame.exe" será el archivo ejecutable generado.
  3. Para distribuir nuestro juego se necesitarán las otros librerías que contiene la carpeta donde hemos generado el ejecutable, por ello para distribuirlo, crearemos un archivo comprimido con la carpeta y todo su contenido. De no realizar esto, ejecutar el .exe solo dará error.
Mac: Para la creación del ejecutable de Mac, el conocido .app el proceso será algo más laborioso, pero incluso nos permitirá cambiar el icono si se desea:
  1. Descargamos la versión: Zipped Universal Build de Löve 0.8.0 para Mac
  2. Descomprimimos el archivo y renombramos "love.app" a "SuperGame.app"
  3. Copiamos nuestro "SuperGame.love" a SuperGame.app/Contents/Resources
  4. Modificamos el archivo SuperGame.app/Contents/Info.plist como sigue: 
  • Es imprescindible modificar los valores de: CFBundleIdentifier y CFBundleName
  • Opcionalmente podremos sustituir el icono contenido en SuperGame.app/Contents/Resources por el nuestro propio.
  • Para distribuir el juego será tan sencillo como comprimir el .app y compartirlo.


Linux: Para esta plataforma, por desgracia no hay una creación de ejecutable específica, en su lugar, distribuiremos el .love junto con un leeme.txt indicando la dirección web donde descargar el motor Löve (puesto que existen diferentes versiones según la distro de Linux deseada)

-------

Y así hemos obtenido los ejecutables para las distintas plataformas de forma mas o menos sencilla y sin tener que delegar en el usuario parte de la responsabilidad.

Próximo post: Mi primera participación en el Ludum Dare y por ello, parte del porqué del presente artículo...

miércoles, 10 de abril de 2013

Las cosas importantes en un SHMUP

En anteriores artículos se han comentado ya sea implicita o explicitamente (como es el caso de los sistemas de puntuaciones) los aspectos que definen un shoot'em up como tal, pero quizás no han quedado algunas cosas lo claras que debieran.

Este nuevo artículo lo dedicaré a extender una explicación de los aspectos más importantes y a la vez críticos para definir un shoot'em up de verdad.

- Perfección teórica: Qué seria el mundo de los shmup's sin sus altas puntuaciones, sus speed-runs y sus 1-coin play's... a este último se refiere esto: un juego de este tipo debe posibilitar el hecho de que un teórico jugador pueda pasarse el juego solo con 1-moneda/vida, es decir, sin morir.
Pero ojo, esto no quiere decir que el juego deba ser fácil, quizás todo lo contrario y por ello lo de "teórica", en teoria pasarse el juego sin morir debe ser una posibilidad, pero para conseguir esto se debe sudar tinta.

- Tiempo mínimo de inactividad: Todos lo sabemos y es lo que deseamos de un juego de este tipo, cuanto más frenéticos mejor. El jugador no debería estar parado sin un hecho justificado, lo que se busca los shmup's es acción pura, no poder relajarte ni un momento... de otra forma, solo sería perder el tiempo, por ello, esta sentencia podría ser crítica a la hora del diseño del gamplay.

- Amplia potencia de fuego: Evidente pero también remarcable... nuestra pequeña nave se va a enfrentar a interminables hordas de enemigos a cada cual más temible y numerosa.
¿Que menos que ofrecerle al jugador una potencia de fuego equivalente para hacerles frente?
Esto es como digo remarcable, pues en los antiguos shmup's no siempre se cumple, pero evidente en el caso de los actuales.
El jugador debe disponer de una variedad amplia de armas, con distintos rangos de disparo, potencia, etc. con el fin de hacer frente a las hordas que están por llegar.

- Sistema de puntuaciones interactivo: esto ya se ha comentado antes, pero lo puntualizaré.
Para el tipo de jugador de este género, el superarse, en lo que a puntuaciones se refiere, es importantísimo, tanto que un aspecto importante es darle al mismo durante su partida información clara de su puntuación he incentivarlo.
Como ya hemos visto antes, una forma de incentivar al jugador, por poner ejemplos, serían las puntuaciones por chaining o combos, pues los mismos dan información en tiempo real de como esta afectando la forma de jugar del jugador en sus puntuaciones.

Estos serían los 4 aspectos más importantes a tener en cuenta para crear un verdadero shoot'em up y a la vez uno que sea lo suficientemente adictivo como para ser rejugado.
Como se puede ver, crear un buen shoot'em up no va a ser una carrera fácil, pero como se dice más arriba, los retos siempre pican a un verdadero jugón.

sábado, 6 de abril de 2013

Motores de juegos I: Love2D

Los motores de juego son un recurso básico (casi la piedra angular) y muy utilizado hoy en día en el mundo del desarrollo de videojuegos, si bien los hay que optan por crear el suyo propio, esto no es lo más habitual.

Un motor de juego nos hará la vida más facil a la hora de desarrollar un juego y sobretodo en nuestros primeros pasos en esto, por citar un ejemplo de estas facilidades: todos nos van a ofrecer el bucle de juego ya hecho y unas directivas básicas de como dibujar objetos en pantalla.
Globalmente estos motores nos proporcionan las utilidades básicas para la creación de cada juego, así como un paradigma, una organización, y normalmente unos dispositivos objetivo.
Además suelen tener disponibles una serie de extensiones como puedan ser motores de físicas u otros.

Para el primer artículo, de espero, una serie de los mismos, os voy a presentar un motor de juego que recientemente me ha despertado curiosidad:

Löve2D

Löve2D es un motor de juego para juegos en 2 dimensiones como su propio nombre indica.
Este motor o framework como se autodenomina es open source y se programa en LUA.
Las plataformas para la que está disponible y sobre las que se desarrollan los juegos basados en el, son:

  1. Windows
  2. MacOS 
  3. Linux
Hay que resaltar que löve2D incluye una implementación en LUA de Box2D, motor de físicas seleccionado para mi actual juego en desarrollo, con lo que gracias a el podremos crear juegos con físicas realistas.

Así mismo cuenta con buena variedad de IDE's y plugins para que su desarrollo sea más sencillo.
A título personal, actualmente esto jugando con él con SublimeText 2 y los plugins disponibles de löve2D

Para empezar con löve2D lo más fácil (dando por sentado que conocemos LUA) es empezar por su wiki, que aunque al principio se antoja algo escueta, conforme se va recorriendo se va uno dando cuenta que cubre todos los aspectos esenciales de este framework y además incluye tutoriales y video-tutoriales.

Si llegados a este punto la información se nos quedara corta o nos atascáramos en algún punto, también podemos contar con su activa comunidad ya sea mediante sus foros como por su canal de IRC: #love@irc.oftc.net

Por último y para los que realmente les haya picado la curiosidad y quieran empezar a trastear con este motor, aquí os dejo un boilerplate/plantilla (de creación propia) con todo listo para empezar nuestro primer juego en löve2D:


Espero que os haya gustado el artículo y si se puede mejorar, comentad libremente ;)

jueves, 28 de marzo de 2013

Resultados de la búsqueda II

Hace unos artículos os contaba como conseguí a dos valiosos participantes del equipo: un compositor para la música y los efectos de sonido, y un level designer que se debería ocupar de exactamente eso y me quedó explicar mi aventura para conseguir un diseñador 2D.

Esto como ya dije, no fue para nada tan sencillo, si bien los anteriores los encontré en NewGrounds, los diseñadores del tipo que yo buscaba,es decir: diseño 2D estilo pixel, no abundaban por esos lares.
Por ello tome la decisión de buscar de forma muy manual y valorando el portfolio de cada candidato que pudiese encontrar en Deviantart.

Este estilo de búsqueda de candidatos puede que fuera un poco arcaico, pero lo que yo buscaba era a la vez algo muy concreto. Que decir sobre el filtrado por categorías de la web, sin duda muy bien implementado, lo cual me ayudó mucho a sesgar los resultados.

Sorpresivamente buscar filtrando por pixel art fue un fracaso, así que lo siguiente era buscar por shoot'em up y shmup dio menos resultados, pero mucho mas concretos, era el momento de espamear a los artistas.

Todo espameo da sus frutos, esto es así, verdad de la buena... y los dio, varios artistas se interesaron en participar, otros no lo veían tan claro, pero si vi algo que tenía en común fue la cautela y el gusto por el dinero, y es que el gremio de los dibujantes/artistas del pixel así como diseñadores, tienen muy bien aprendida la lección de que en este mundo nada es grátis.
Con esto, a todos les ofrecí las mismas condiciones, no voy a negar que la muchos las rechazaron, pero de los pocos que no había uno que tenía un estilo quizás desviado del pixel art que buscaba en un principio, pero dominaba el diseño de naves espaciales como nadie y evidentemente este terminó por ser el elegido.

Así es como finalizó mi búsqueda del diseñador ideal, si bien ya me indicó que no disfrutaba de mucho tiempo libre para dedicarlo a mis diseños a mi no me molestó pues la intención a parte de crear un juego era aprender y aprender requiere tiempo.

Con este artículo quiero que se vea que sí, es realmente arduo y difícil encontrar colaboradores y más que estén a la altura, pero si realmente pones tu empeño en ello, los frutos no tardan en llegar y más en un mundo tan globalizado como el actual, donde miles pueden ser lo que buscas e incluso como me pasó a mi: ninguno era español.

Sistemas de puntuaciones

Si hay algo importante en los shoot'em ups, sin duda es su sistema de puntuaciones y rankings en los que ir viendo nuestra mejora.

Desde los primeros exponentes del género, las puntuaciones han sido un pilar básico, siempre que terminabas una partida ya fuese acabando la fase o muriendo, podías acceder directamente la puntuación conseguida, esto se hacía aun más evidente si jugabas en una máquina recreativa.

En aquellos primeros tiempos, los sistemas de puntuación se basaban en cálculos sencillos, apenas reduciéndose a la asignación de un valor por muerte a cada tipo de enemigo. Pero conforme ha ido avanzando el género y los tiempos, sus sistemas de puntuación han ido avanzando y volviéndose más y más complejos, basándose en por ejemplo combos de ataques, armas, intervalos de tiempo entre muertes, y un largo eccetera.

A continuación y como segunda parte de mi investigación sobre el género detallaré los sistemas de puntuación actuales más comunes:

Chaining o encadenado: tipo de sistema de puntuación usado por excelencia en los juegos de la desarrolladora Cave. Su sistema se basa en el encadenado de acciones en un orden específico y/o una inmediata sucesión sin dejar apenas intervalos de tiempo entre estas acciones, ya sea derrotar enemigos o recoger items durante la partida. Cuantas más acciones se encadenen, más crecerá el bonus de puntuación y por tanto las puntuaciones obtenidas serán mayores.

- Medalig o su basta traducción: medallero; este sistema es reconocido por su implementación de los juegos de la desarrolladora Raizing. Este sistema de puntuaciones usa la idea de recolección de items a modo de medallas que si bien al principio aportan poca puntuación, cuantas más se recogen más aumenta su valor, lo que hace que nuestra puntuación aumente exponencialmente.

Proximity Bonus o bonus de proximidad: como su propio nombre indica, este sistema bonifica con puntuación extra el hecho de acabar con los enemigos desde lo más cerca posible de los mismos. Si bien la lógica en este tipo de juegos nos recomienda mantener las distancias, con este sistema se nos impulsa a lo contrario y esto tiene un riesgo y un valor añadido, pues se premiará también la memoria del usuario, ya que si sabe cuanto cuesta acabar con cada tipo de enemigo, más riesgo de proximidad podrá tomar y por tanto mayores puntuaciones obtendrá.

Kill Bonus o bonus de muertes: quizás el mas sencillo y más acorde con el género, sin complicaciones, mata! mata todo lo que se mueva, nútrete del caos en pantalla, acumula enemigos y acaba con ellos uno tras otro, oleada tras oleada. Conseguir combos de muertes y limpiar la pantalla te hará conseguir bonificaciones de puntuaciones cada vez más altas.

Resource Management o gestión de recursos: un sistema relativamente reciente en comparación con el resto y algo más complejo. La idea principal como su propio nombre indica es saber gestionar las armas y/o items de los que disponemos, pues cada uno de ellos otorga diferentes bonificaciones con su uso y tienen un tiempo de uso determinado, por ello debemos gestionar su uso durante cada partida para explotar su bonus al máximo.

- Milking/Leeching sin una traducción clara y tampoco siendo por esencia un sistema de puntuación, su base es exprimir la puntuación que se puede obtener de cada enemigo. Esto és, si un enemigo se regera por partes o cada cierto tiempo, la idea sería dejar que lo hiciera y así sumar una y otra vez más y mas puntos. Esto requiere de la paciencia del jugador, y además muchas desarrolladoras aplican un tiempo máximo de vida de los enemigos víctimas potenciales de estás prácticas.

- End Bonus o bono por finalización: estas bonificaciones de puntuación se aplica al acabar cada nivel o incluso el juego. Se basa en varios criterios, como la cantidad de vidas restantes o la cantidad y calidad de armas especiales no usadas. Esto proporciona al usuario un afán de superar los niveles con el menor número de recursos usados ajustándose a estos criterios de bonificación para conseguir puntuaciones más altas.

Como se puede ver, existe una amplia variedad de sistemas de puntuación en los shoot'em ups actuales, a cada cual más rebuscado, pero los cuales aportan mayor diversión a cada partida y siempre un reto, como es típico en este tipo de juegos.
Conocer y saber explotar cada uno de ellos nos llevará a la consecución de mayores puntuaciones, un reto, sin duda.