Hemos enviado la contraseña a su correo electrónico.

¡Bienvenidos de nuevo a la Guarida del Desarrollador! Estamos encantados de que os asoméis por esta húmeda y oscura estancia ya sea por simple curiosidad sobre esa magia negra llamada videojuegus desarrollus (toma ya), o porque os hayáis animado a aprender y a desarrollarlos vosotros mismos, o bien ya estáis dentro del mundillo y venís a intercambiar conocimiento e ideas.

Este artículo se puede considerar una segunda –o complementaria– parte del artículo
Creación de videojuegos: ¿Qué herramientas necesito?, así que os animo a echarle un vistazo a ese artículo antes de aventuraros con este. Si tenéis cualquier duda, por favor: ¡Preguntad!

¿Estáis listos? ¡Vamos allá!

Motores de videojuegos:

Los motores de videojuegos son, a grandes rasgos, un conjunto de herramientas y soluciones a problemas comunes integrados bajo el mismo entorno o aplicación para facilitar lo máximo posible el desarrollo de videojuegos. Es un tema extenso y complejo del que me gustaría escribir un artículo en otro momento para resolver algunas de las dudas más comunes. En el artículo anterior se enumeraron algunos de los más populares, así que aquí me voy a centrar en otros que no fueron nombrados y cuyo factor común es que son 100% gratuitos y de código abierto. ¿Y por qué este empeño? Me gustaría desgranar todos los motivos uno por uno, cosa que dejaré para ese otro artículo sobre motores de videojuegos, pero aquí podéis ver uno de ellos. Pero basta de irse por las ramas:

Godot

Godot era en un principio un motor privado de Okam Studio hasta que decidieron ofrecerlo de forma gratuita e independizarlo de la empresa para favorecer su desarrollo. Las comparaciones son odiosas, pero si hay algún motor gratuito que se merezca compararse con Unity, sin duda es Godot: Presenta un editor gráfico del mismo estilo, con todo tipo de elementos que añadir a las escenas –incluso otras escenas– tanto en 2D como en 3D. El scripting se realiza en GDScript, un lenguaje similar a Python pero más enfocado al desarrollo de videojuegos, con lo que solventa problemas que otros lenguajes de propósito general presentan cuando se usan en videojuegos. Además, el motor está programado en C++ para rendir lo mejor posible, y el usuario también puede emplearlo –aunque desaconsejan hacerlo a menos que sea absolutamente necesario, por ejemplo, para optimizar un algoritmo muy importante y exigente–. Del mismo modo que otros motores grandes como Unity, tanta potencia y posibilidades se pagan con una sobrecarga computacional que, si bien en dispositivos potentes y/o de sobremesa no supone ningún problema, ciertos dispositivos móviles más modestos pueden ralentizarse o incluso no funcionar. Aun así, su renderizador 2D es bastante rápido y avanzado, quedando pendiente mejorar el renderizador 3D –algo que quizá no veamos hasta 2016 según su roadmap–. Aun así tiene mucho potencial y es un motor completísimo y lleno de herramientas integradas, más todas las mejoras que irán añadiendo.

GODOT

Por supuesto, el motor es multiplataforma en ambos sentidos: Se puede utilizar en Mac OS X, Linux y Windows, y los juegos pueden exportarse a Mac OS X, Linux, Windows, iOS, Android, PS Vita y PS3 –Windows Phone y HTML5 próximamente–. En la web de Okam Studio figuran otras plataformas como Wii o Nintendo 3DS, aunque recientemente pregunté a uno de los desarrolladores y me confirmó que, por desgracia, abandonaron esas compatibilidades hace tiempo. Hace relativamente poco que se liberó la primera versión de Godot y el desarrollo es lento, aunque constante y muy prometedor. De nuevo, el punto débil por ahora es la escasa documentación, aunque en la página oficial se pueden descargar una serie de demos técnicas de todo tipo que hacen las veces de ejemplo para aprender sobre aspectos más concretos. Os animo a todos a descargar esas demos junto a Godot y trastear un poco con ellos para que veáis el enorme potencial que tiene, sobre todo la delicia de demo Platformer en 2D. Estoy deseando ver cómo evoluciona y crece este motor, y sobre todo que se vuelva popular y se genere una buena comunidad a su alrededor para que tengamos por fin un motor gratuito capaz de plantar cara a los grandes del sector.

Cocos2D-X

Se trata de un port en C++ del popular Cocos2D-iPhone –que a su vez nació como un port del Cocos2D original en Python–. A pesar de llevar ese “2D” en el título, actualmente también admite 3D. Su principal ventaja sobre Cocos2D-iPhone es su carácter multiplataforma: iOS, Android, Windows Phone, Mac OS X, Windows para PC y Linux. Ha sido utilizado por empresas del calibre de Square-Enix, Capcom, Bandai Namco y muchas menos conocidas (¿Os suena Geometry Dash? Está hecho en Cocos2D-X), sobre todo en el ámbito de smartphones y tablet para el mercado chino gracias a que se ofrece gratuitamente y su rendimiento es asombroso incluso en los dispositivos más modestos. Aparte del motor base, ofrecen algunas herrmanientas opcionales, como Cocos IDE (un Eclipse modificado) o Cocos Studio (un editor visual drag & drop al estilo Unity –salvando las distancias– para crear escenas en 2D o 3D). También mantienen otras versiones del motor en LUA y JavaScript; la segunda permite desplegar el juego en HTML5 además del resto de plataformas. Por si fuera poco, también puedes acceder a todo el código del motor en cualquiera de sus versiones, de forma que puedes realizar cualquier modificación o añadir cierta funcionalidad, incluso contribuir al proyecto en GitHub.

Cocos_Studio

Sin embargo, no todo lo que reluce es oro: C++ es un lenguaje de programación no recomendado para principiantes, y menos teniendo en cuenta que Cocos2D-X intenta emular características de Objective-C –el lenguaje en el que está programado Cocos2D-iPhone– que resultan en un código C++ poco frecuente e incluso considerado de malas prácticas. Si en lugar de C++ preferís utilizar la versión en LUA o JavaScript, el problema es que la documentación es muy escasa.

Aun así, es un motor gratuito, de código libre, multiplataforma y con un desarrollo muy rápido y activo, por lo que no puedo dejar de recomendarlo.

Phaser

En este caso estamos ante un pequeño y ligero motor de videojuegos 2D para HTML5, y por lo tanto se programa en JavaScript. Se ofrece de forma gratuita y su web oficial viene acompañada de una buena cantidad de documentación, tutoriales y ejemplos de gran calidad que lo convierten en un candidato ideal para aprender a desarrollar videojuegos. Entre sus virtudes, destacar la sencillez de uso de la API, que llega a simplificar procedimientos más o menos complicados en una o un par de líneas de código. Además, en la web oficial se puede acceder a Phaser Sandbox, un editor online con todo lo necesario para empezar a desarrollar tu videojuego directamente sin tener que descargar, instalar o configurar nada. Por su sencillez, lo recomiendo tanto para prototipar como para desarrollar juegos completos.

Phaser


Gráficos 2D / Pixel Art:

Affinity Photo

La nueva (y casi única) competencia que le ha salido al gigante Adobe Photoshop. Muy elogiado por muchos por innovar donde Adobe se había estancado al no tener competencia, por ser mucho más ligero y, sobre todo, por su licencia: Un precio al alcance de todos y se compra una vez. Nada de suscripciones, licencias desorbitadas o pagar por actualizaciones. El único pero: que sólo está para Mac OS X.

Affinity Designer

La misma historia de antes, pero esta vez sobre gráficos vectoriales, o lo que sería la competencia de Adobe Illustrator. El artista de mi equipo está especialmente encantado con éste.

Pyxel Edit

Sobre pixel art poco más puedo decir respecto al anterior artículo, por no mencionar que no soy ningún experto en el tema. Sin embargo, Pyxel Edit tiene varias funciones e ideas de lo más interesantes que no he visto en ningún otro programa especializado para pixel art. Por ejemplo, puedes dibujar un escenario a base de tiles y luego editar esos tiles, viendo como el escenario se actualiza en tiempo real. Esta función es ideal para crear tiles, ya que normalmente tienen que quedar bien juntos y dar una sensación de continuidad –como los que forman el suelo–. Su licencia es bastante asequible, aunque se puede descargar una versión antigua totalmente gratis por si queréis probarlo antes de decidir si comprarlo.

Pyxel_Edit


Texturas / sprites:

Texture Packer

Considerado por muchos como el mejor programa de empaquetado de texturas o sprites del mercado. Empaquetar varias texturas o sprites en una gran textura –conocida como sprite sheet, texture atlas o tile map según su uso y sus características– es una conocida técnica para optimizar el rendimiento de un juego, ahorrando muchos pasos extra a la GPU. Su licencia es asequible considerando que es de lo mejor que existe en este campo. Cocos Studio, una de las herramientas que os comentaba en el apartado de Cocos2D-X, tiene esta misma función y es gratis, pero carece de tantas opciones como ofrece Texture Packer.

Sprite DLight

Es un programa que permite crear normal maps de sprites y texturas casi de forma automática. Esto sirve, por ejemplo, para añadir a juegos 2D un efecto de iluminación dinámica bastante resultón. Su licencia puede resultar algo cara teniendo en cuenta que realiza una tarea muy concreta y que existen varios programas que hacen lo mismo, incluso algunos plugin para editores como Photoshop o Gimp, pero ninguno es tan automático ni ofrece tan buenos resultados por ahora como Sprite DLight.


Fuentes:

Littera

Se trata de un generador de fuentes bitmap online y gratuito. Las fuentes bitmap son versiones rasterizadas de una configuración particular –tamaño, tipo, color, línea exterior, etc.– de las fuentes más comunes, que son vectoriales. Es otra técnica muy común para optimizar el rendimiento de un juego, ya que las fuentes vectoriales implican muchas más operaciones para la GPU. Hace años era prácticamente imprescindible, aunque hace un tiempo que se está dejando de emplear esta técnica –sobre todo en plataformas más potentes– en favor de tener más flexibilidad con el formato y tamaño de la fuente. Aun así, Littera es una aplicación que nunca está de más tener a mano por si alguna vez decidieseis utilizar fuentes bitmap.

Littera

Glyph Designer 2

Es una aplicación de escritorio de funcionalidad similar a Littera, pero en plan premium: Tiene muchas más opciones, da mejores resultados y la interfaz es mucho mejor, pero sólo puedes usarlo previa suscripción. Puede salirte barata si te planificas bien y haces todas las fuentes bitmap que necesites de golpe, pero se echa en falta una licencia normal (aunque vistos los precios de las suscripciones, quién sabe lo que valdría).


Partículas 2D:

Particle2dx

Es un editor de partículas gratuito y online, capaz de exportar en formatos compatibles con Cocos2D-X y Corona SDK. Aunque tiene un par de bugs, es sencillo de utilizar y para ser gratuito poco más se le puede pedir.

Particle2dx

Particle Designer 2

De los mismos desarrolladores que Glyph Designer 2, también con su toque premium en ambos sentidos: El bueno, la calidad de la aplicación, sus opciones, la interfaz y un número de formatos compatibles mucho mayor que Particle2dx; el no tan bueno, el quizá excesivo precio de su licencia.


Animación 2D:

Los siguientes programas no los he probado en profundidad, pero me los apunté por ser gratuitos o tener una versión lite, por si acababa necesitando una herramienta de este tipo. Cosas de indies, supongo. Se trata de editores de animación esqueletal en 2D:

  • Synfig Studio
  • Spriter
  • Cocos Studio, el editor gráfico que había mencionado en la sección de Cocos2D-X, también tiene un editor de animación esqueletal integrado.


Herramientas 3D:

En este campo me declaro profano. Atrás quedaron los días en los que recreaba una parte de mi localidad en 3D con Valve Hammer Editor –o todavía más antiguamente llamado Worldcraft– para jugarla en Half-Life con los amigos. Hoy en día prácticamente no sé casi nada de 3D y confío en el artista del equipo para ello. Aun así, de nuevo, ese Síndrome de Diógenes indie me ha hecho recopilar unos pocos enlaces. Ya sabéis, “Por si acaso”:

  • Blender – Suite completísima para cualquier necesidad de 3D, incluyendo por supuesto modelado y texturizado. Software libre y gratuito.
  • DAZ 3D – Varias herramientas gratuitas de 3D, excepto modelado y texturizado.
  • Sculpturis – Herramienta gratuita de escultura digital de los desarrolladores de Zbrush.
  • VUE Pioneer – Editor especializado en terrenos, vegetación, etc.

blender-plain

Blender ya se mencionó en el anterior artículo, junto a Maya y 3DS Max, pero quiero hacer hincapié en este tema: Los dos últimos son de una empresa llamada Autodesk, así que se podría decir que con su propia competencia –cof, cof, monopolio, cof, cof–. Ambos programas valen un pastón que te cagas mucho dinero –hablamos de miles de euros, o de cientos en la versión “indie” de Maya, Maya LT– y en términos profesionales no hay muchos más programas que puedan hacer lo mismo con precios más asequibles. Excepto Blender, que es un proyecto de software libre y gratuito capaz de plantarles cara a los gigantes. Conozco a gente que se acostumbró a usar mucho 3DS Max o Maya y me decían que no podían pagarse una licencia, pero que tampoco podían pasarse a Blender porque la forma de trabajar es distinta y ya se habían acostumbrado a los otros. Por eso quería hacer hincapié: Si vais a iniciaros en el 3D, Blender. Así luego no tendríais que desacostumbraros de uno para aprender otro. Todo esto suponiendo claro que tengáis recursos escasos y/o trabajéis con presupuestos indie, en lugar de trabajar en una gran empresa que ya tiene las licencias de Maya o 3DS Max pagadas. Y aun así diría Blender, porque uno nunca sabe el futuro que le depara.


Música:

El artículo entero está bastante enfocado al entorno indie, pero especialmente este punto. Compositores del mundo de los videojuegos: no os echéis a mi cuello por lo que voy a contar aquí. Pero lo cierto es que la música suele ser uno de los puntos débiles entre los desarrolladores indie. Lo ideal sería poder contar con gente cualificada en cada equipo, pero desgraciadamente no es algo muy común. La siguiente opción sería contratar a un compositor/músico freelance cuando se requiera. Pero ya sabéis cómo va esto de los indies: Si se puede ahorrar, se ahorra. Podéis intentar hacer algo con secuenciadores y sintetizadores varios –en el artículo anterior había bastantes ejemplos, aunque aprovecho para enlazar MuseScore, gratuito y muy completo–, pero en mi caso os recomiendo darle una oportunidad a generadores aleatorios. Esta lista elaborada por Christina Antoinette enfocándola a la participación en la famosísima game jam Lundum Dare es un buen punto de partida. En concreto, quiero destacar cgMusic:

cgMusic

Se trata de un programa gratuito para generar melodías de forma aleatoria, aunque las composiciones resultantes podrían pasar por composiciones hechas por personas. De hecho, es bastante impresionante: Eliges unas pocas configuraciones (aunque admito que no sé muy bien qué estoy modificando cuando toco la configuración) y le das al botón play. Instantáneamente se generará una melodía. Si no te gusta, pulsas el botón reset y de nuevo al play, y de pronto tienes otra melodía totalmente nueva. Sorprenden la coherencia y armonía que tienen para haberse generado de forma aleatoria. Las melodías generadas pueden exportarse en formato MIDI, así que no os preocupéis si los instrumentos suenan un poco horribles: Luego podéis editarlos en otro programa. El único problema en mi caso es que sólo está para Windows. Las buenas noticias para los linuxeros y maqueros que queráis probarlo es que funciona perfectamente con WINE (en Mac OS X os recomiendo WineBottler). También podéis configurar una máquina virtual de Windows con Virtual Box.


Organización de proyectos:

Por último, aunque no menos importante, tenemos esa parte que se suele olvidar: Organización y gestión de proyectos. Recientemente terminé Ingeniería Informática, donde se hace mucho hincapié en este campo, y aun así no os recomiendo complicaros tanto la vida intentando ser muy puristas y formalizarlo todo con diagramas UML o documentos de diseño infumables –al menos en el caso de proyectos y equipos pequeños–. Sin embargo, tampoco es buena idea dejarlo todo a la improvisación y la memoria. Para ello, os recomiendo un par de herramientas gratuitas:

Trello

La mejor herramienta de las que conozco para organizarse, ya sea para uno mismo o para trabajar en equipo –de hecho en GeekyJuegos me invitaron al Trello del Dev’s Lair para organizar este mismo artículo–. Es online, así que se accede desde un navegador web, aunque también tiene apps para smartphones y tablets. Con Trello organizas tus tareas en tarjetas que colocas en columnas en un tablero. No es que haya reglas establecidas sobre cómo usarlo –puedes seguir métodos como Kanban si no se te ocurre un modo–, por lo que cada uno puede decidir cómo organizarse. En mi caso, utilizo un tablero por proyecto, y en cada uno tengo columnas del tipo “Por implementar”, “En desarrollo”, “Hecho” y “Por arreglar”, y cada tarjeta es una tarea en concreto, como “Programar acción de salto” que iré moviendo de columna según corresponda. Las tarjetas tienen un montón de opciones (descripción detallada, lista de objetivos, fecha límite, miembros asignados, archivos adjuntos, etc.) así como una sección de comentarios para que los miembros del equipo puedan discutir cualquier tema relacionado en la misma tarjeta. Tenéis todas estas características gratis, y alguna chorrada función extra (casi todas estéticas) si pagas una licencia premium. Muy recomendado.

Trello

yEd

A veces necesitaréis diseñar diagramas de algún tipo de forma digital, y existen infinidad de aplicaciones para este fin (sobre todo online). Sin embargo, me costó bastante encontrar una que fuese suficientemente completa y que no fuese de pago. yEd es multiplataforma, gratuito, muy fácil de usar y con unos resultados de lo más profesionales.


¡Y ya está bien por hoy! Espero que hayáis encontrado alguna herramienta que os sea de utilidad y os ayuden o animen a desarrollar videojuegos. ¿Qué os ha parecido? ¿Queréis compartir algún consejo o experiencia sobre alguna de estas herramientas? ¿Tenéis otras sugerencias que no se hayan nombrado en ninguno de los dos artículos? ¿Simplemente os apetece contar algo? ¡Pues a dejar comentarios se ha dicho!