Preparándose para una Game Jam: Ludum Dare #29

En breves horas comienza la vigésimo novena edición de la Ludum Dare que además cumple 12 años. De nuevo voy a participar en ella y será mi séptima entrada pero no por ello estoy menos nervioso o tengo más confianza en mi mismo. Por eso he creído interesante escribir un pequeño post de ayuda tanto para organizarme yo mismo como para compartir mi experiencia en la preparación del evento. Como rápida introducción a los que no conozcáis en qué consiste una Game Jam, diré que es un evento de desarrollo rápido de juegos. En 48 o 72 horas (dependiendo de la modalidad elegida) tiene que crearse un nuevo juego. Esto que parece imposible (o al menos muy difícil) es una de las mejores formas que existen de adentrarse en el desarrollo de juegos, ya que te darás cuenta de lo que eres realmente capaz y lo más probable es que te sorprendas…

Todos los juegos deben seguir en mayor o menor medida una temática que es votada durante la semana previa al evento. En esta ocasión los temas finalistas han sido los siguientes:

Ronda final LD29

La votación finaliza a las 10 de la noche hora de por ahí, que cae a las 3 de la madrugada del viernes al sábado en nuestra zona horaria. En ese momento se anuncia el tema y comienza la competición.

Aunque existen algunas restricciones en cuanto al uso de material pre-existente, hay una regla que nos permite utilizar cualquier librería o middleware que se encuentre disponible públicamente, por lo que las herramientas que presento a continuación están todas permitidas 🙂

Antes de una Ludum Dare personalmente me gusta hacer un repaso de las herramientas que usaré para tenerlas frescas y no perder el tiempo con ellas. En esta ocasión no solo voy a repasarlas sino que dejaré constancia por escrito como referencia para todos aquellos interesados en participar pero que no estén seguros de qué herramientas usar. Cada cabecera contendrá el enlace a la herramienta correspondiente. ¡Vamos allá!

Unity

Es la herramienta de creación con la que he participado en las 6 anteriores ediciones de la Ludum Dare y esta vez no será diferente. Poco tengo que decir de Unity excepto que si no estáis seguros de por dónde empezar, uno de los mejores lugares es la propia web de aprendizaje de Unity:

Control de personajes

La inmensa mayoría de los juegos requiere controlar nuestro jugador. Aunque no es una tarea realmente compleja, en una Game Jam nos queremos centrar en el desarrollo del juego en sí y no tener que preocuparnos de asuntos “menores” como este. Por ello es muy recomendable el uso de controladores ya existentes.

Character Controller de Unity

Es un asset estándar de Unity e incluye dos controladores. Uno en primera persona y otro en tercera. Son dos controladores muy sencillos de usar ya que no es necesario descargarlos aparte al estar incluidos en Unity y además contiene un prefab para cada controlador, por lo que con solo arrastrarlos a nuestra escena estarán prácticamente listos para usar.

CharacterController2D

Si somos más de juegos en 2D, este controlador de código abierto será una de las mejores opciones. Ha sido creado por prime[31] especialmente para ser usado con las características 2D de Unity, está en continuo desarrollo y es muy estable y completo.

Aunque el proyecto incluye varios ejemplos de uso, es tan sencillo como indicarle al controlador cuánto nos queremos mover y él solo se encarga de calcular las colisiones y limitar nuestro movimiento. ¡Incluso implementa plataformas unidireccionales!

Plataformas unidireccionales

 

Tweening

El tweening consiste en interpolar un valor intermedio a partir de otros valores. Con esto se consigue suavizar la transición entre ellos y es muy útil en desplazamientos, rotaciones, efectos de cámara, etc. Además ayudan a hacer los juegos más jugosos, como nos cuentan en esta divertida charla Martin Jonasson y Petri Purho.

Ahora bien, ¿cómo interpolamos en Unity? Pues está la forma difícil, que es hacerlo uno mismo, y la fácil, que consiste en usar lo que otros ya han creado y batallado de sobra. Y además gratis. ¿Qué más se puede pedir?

teaser1

iTween

Es mi favorita a pesar de que dicen que tiene problemas de rendimiento. Personalmente nunca me los he encontrado, pero es cierto que hay comparativas que lo dejan un poco por los suelos.

En cualquier caso es una librería sencilla de usar que recomiendo para empezar. Además cuenta con una magnífica documentación y ejemplos para consultar.

LeanTween

Surgió a raíz de la mala experiencia del autor con iTween. Sufría de pequeñas interrupciones en el juego y habiendo creado anteriormente librerías similares se puso a la tarea de mejorar lo existente ¡con mucho éxito!

tween_bench

LeanTween se ha posicionado como la librería de tweening con mejor rendimiento. Aunque la documentación se limita a la descripción de la API, el asset incluye ejemplos de uso que facilitan la curva de aprendizaje.

Control de entrada

Cualquiera que haya intentado hacer un juego multiplataforma que utilice gamepad se habrá dado cabezazos contra la pared por la falta de consenso que existe.  Como muestra, observad cómo mapea Unity el mismo mando de XBox 360 en Windows y OSX:

Controlador en OSX

Controlador en OSX

Controlador en Windows

Controlador en Windows

Ahora bien, es un solo controlador en dos sistemas operativos diferentes. Ahora pensad en:  Windows, OSX, Linux, OUYA, Android, iOS, Blackberry, controladores de PS3, PS4, Clones… Un infierno.

Por suerte podemos encontrar muchas soluciones que intentan abordar desde varias perspectivas este problema, pero solo voy a hablar de una que es la que conozco y además es gratuita, abierta y fácilmente ampliable con nuevos perfiles de controladores: InControl

InControl

“¡Eh, decías que es gratuita, pero cuesta 12€!”

Bueno, si, podéis encontrar exactamente lo mismo en el repositorio de GitHub del autor, pero creo que ha hecho un trabajo tan excelente e infravalorado que merece que se le compre. Solo pensad cuántas horas os ahorrará y traducidlo a €…:)

InControl funciona mediante perfiles de controladores de forma que es extremadamente sencillo añadir nuevos perfiles. Yo mismo he contribuido con 9 perfiles distintos y solo me ha llevado unas horas. Inversión que luego se ve recuperada con creces en el momento de desarrollar, pues podemos simplemente consultar cosas como

bool doFire = InputManager.ActiveDevice.Action1

para saber si el botón principal del controlador está pulsado independientemente del sistema operativo y dispositivo.

Mapeado estándar de InControl

Mapeado estándar de InControl

En estos momentos la lista de gamepads soportados es la siguiente (¡y crece día a día!):

  • Xbox 360 controller on Windows, Mac, Linux and OUYA.
  • Playstation 3 controller on Windows, Mac and OUYA.
  • Playstation 4 controller on Windows, Mac and Linux.
  • Apple MFi controller on iOS 7 and above.
  • OUYA controller on OUYA, Windows and Linux.
  • Logitech F310 on Windows and Mac.
  • Logitech F710 on Windows and Mac.
  • Logitech Dual Action on Windows and Mac.
  • Moga Pro on Windows, Mac, Linux and OUYA.
  • Mad Catz FPS Pro on Mac.
  • Speedlink Strike on Windows and Mac.
  • SteelSeries Free on Windows, Mac, Linux and OUYA.
  • GameStick support.
  • NVIDIA Shield support on Android.
  • Keyboard and Mouse support.
  • A variety of Xbox 360 clones are supported.
  • XInput support on Windows (with rumble!)

Un regalito desde la Assets Store 🙂

AutoTileGen

De nuestro compatriota y paisano malagueño Javier Cepa (@JaviCepa) nos llega una nueva herramienta para trabajar de forma muy cómoda con tiles. La comodidad radica no solo en la herramienta de generación de los tiles (AutoTileGen) sino en el plugin para Unity que nos selecciona el tile adecuado en función de su posición en pantalla respecto a los que lo rodean.  Estos vídeos lo explican mejor que yo:

Por cierto que mientras dure la Ludum Dare 29, Javier nos ofrece un descuento del 50% en el precio normal de AutoTileGen. Podéis conseguirlo en este enlace:  AutoTileGen Promoción Ludum Dare 29

Gráficos

Aunque tengo menos habilidades artísticas que un mochuelo, las reglas de la compo me obligan a crear mis propios gráficos. Para ello suelo utilizar algunos de estos programas:

Gimp

Más o menos todos hemos oído hablar de GIMP, software libre para creación y edición de imágenes. Es útil para la hacer texturas y elementos del GUI, pero personalmente no lo utilizo mucho.

Pickle

PIckle es una pequeña maravilla para crear gráficos pixelados. Su interfaz es muy sencilla y permite exportar las animaciones tanto como spritesheets como gif animado. Aunque es de pago creo que merece mucho la pena. También tiene una oferta especial durante la Ludum Dare 29 en este enlace.

Captura de Pickle Editor

Captura de Pickle Editor

InkScape

Otro editor, pero esta vez de gráficos vectoriales, lo que nos permite crear nuestros gráficos y exportarlos a cualquier resolución sin preocuparnos de la calidad, pues será igual independientemente del tamaño de la imagen final.

Este editor es software libre y trabaja con formatos vectoriales como .SVG y exporta en varios , entre ellos PNG.

Gráficos creados con InkScape

Gluttonies, de Alberto Beiz

Música y sonido

Los grandes olvidados de las Game Jams y sin embargo dos de los aspectos más importantes de un juego si queremos trasmitir emociones y movimiento. Si no somos muy duchos en el arte de la música y sonido, podemos ayudarnos de estos programas para salir del paso.

Bosca Ceoil

Bosca Ceoil es una herramienta de creación de música desarrollada por Terry Cavanagh, autor de juegos tan míticos como VVVVVV o Super Hexagon.

bc-640x400

Busca Ceoil nos ayuda a realizar pequeñas composiciones musicales utilizando instrumentos que recuerdan a los clásicos como ondas cuadradas, triangulares o la conocida como “onda Konami”:

Aunque el programa en sí es sencillo, hay algunos trucos como duplicar pistas que es mejor aprenderlos de la mano del propio autor. Para ello tenemos este completo tutorial de Bosca Ceoil.

Autotracker

Si por el contrario, como yo mismo, no sois capaces de crear ni el más mínimo fragmento musical, os vendrá de perlas este generador automático de melodías. Aunque las canciones tienen la calidad esperada de una herramienta automática, quedan bastante resultonas:

 

BFXR

Bfxr es el equivalente a Autotracker, pero en sonidos y efectos. Esta herramienta nos provee de una interfaz muy sencilla en la que generar sonidos típicos de juegos tipo 8 bits.

Si no nos damos maña con tantos settings, los botones de pre-establecidos nos salvarán:

Bfxr screenshot

Bfxr screenshot

Aunque BFXR es una herramienta web, está disponible también para descargar tanto para Windows como para Mac.

Timelapses

Una de las costumbres más interesantes consiste en realizar un timelapse de la creación de nuestro juego:

Chronolapse

Herramienta para Windows para la creación de timelapses. Es muy completa ya que no solo se encarga de realizar las capturas sino que también se encarga del ensamblado. Dispone de muchas características adicionales como programar el horario de captura, añadir títulos, PIP y sustituir audio.

Captura de Chronolapse

Captura de Chronolapse

OSX

Si desarrolláis en OSX, es difícil encontrar herramientas gratuitas de captura de pantalla para generar los timelapses. Y si usáis dos monitores entonces peor. Por este motivo creé este sencillo script para capturar dos pantallas en OSX usando comandos ya existentes en el sistema. El script está ajustado a la resolución de mis monitores, por lo que si queréis usarlo tendréis que cambiar los valores. Si necesitáis ayuda para ello solo tenéis que pedírmela.

Varios

Normalmente durante la Ludum Dare muchos desarrolladores de software aprovechan para ofrecer descuentos en sus herramientas o incluso ofrecerlas gratuitamente. Durante el post he mencionado un par de ellas pero si queréis ver la “oferta” completa solo tenéis que visitar las Ludum Deals for LD29

Y por último, estas herramientas que he presentado aquí son las que yo uso. Dado que utilizo Unity todas giran alrededor de él, por lo que si tenéis curiosidad por conocer más programas y utilidades que se usan durante una game jam, podéis verlas en la página de herramientas de la Ludum Dare.

Despedida y cierre

Ha sido un post largo que espero haber hecho ameno y sobre todo informativo. Si tenéis cualquier duda o comentarios sobre estas herramientas no dudéis en poneros en contacto a través de los comentarios del post o de mi propia cuenta de twitter.

5 thoughts on “Preparándose para una Game Jam: Ludum Dare #29

  1. matnesis

    Excelente artículo. Estaré probando InControl en mis próximos experimentos.

    De paso te recomiendo revisar Hotween para tweening. Es excelente, poderosa e increíblemente sencilla de usar.

    Reply
  2. BestKatherina

    I see you don’t monetize your website, don’t waste your traffic, you can earn additional
    bucks every month because you’ve got hi quality content.

    If you want to know how to make extra money, search for:
    Ercannou’s essential adsense alternative

    Reply
  3. ChassidyBold

    I have checked your site and i have found some duplicate content, that’s
    why you don’t rank high in google’s search results, but there is a tool that can help you to create 100% unique articles,
    search for; SSundee advices unlimited content for your blog

    Reply
  4. youngWilbur

    I have noticed you don’t monetize your site, but you can earn additional cash every day.
    It’s very easy even for noobs, if you are interested simply search in gooogle:
    pandatsor’s tools

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *