Motores de Juegos para el Indie
El indie común, dada su naturaleza de pobre, siempre busca formas de ahorrar dinero. Y no me refiero sólo al desarrollo de sus proyectos, propiamente hablando, sino de su propio estilo de vida. Como dice Jeff Tunnell de GarageGames, “Right size your life.“, o lo que es lo mismo, redefine tu vida de modo que gastes lo menos posible y puedes aguantar más tiempo con tus ahorros, o invertir más dinero en tu negocio (contratando grafistas, músicos, comprando equipo nuevo, etc.). Aunque eso es también importante, es algo muy personal y especÃfico de cada personal y lugar, por lo que en este artÃculo nos centraremos en la parte más común: ahorrar en el desarrollo del juego.
Existen muchas formas de ahorrar dinero, seguro que os vienen a la cabeza algunas de ellas, pero la más importante sin duda es ahorrar tiempo. Para el indie la frase “el tiempo es dinero” es una verdad absoluta, y debe hacer lo que pueda por ahorrar el máximo tiempo posible durante el desarrollo. Sacar un juego a la venta unos meses antes no sólo minimiza los gastos sino que hace que los beneficios lleguen antes y podamos tener un balance económico positivo.
¿Cuál es la forma en la que un indie puede ahorrar más tiempo en una sola decisión? Siguiendo una de mis máximas, utilizando un engine de terceros. Por engine me refiero a un motor de juegos, a una librerÃa ya creada que nos facilite la creación del juego y nos ahorre unos meses de desarrollo que habrÃamos gastado haciendo una propia. Nunca hubo engines gratuÃtos o baratos tan buenos, accesibles y en tanta cantidad como ahora, y esto hay que aprovecharlo. A continuación haremos un repaso a algunas opciones disponibles que en mi opinión son muy interesantes.
PTK
| Sitio web | www.phelios.com/ptk/ |
|---|---|
| Precio | $215 |
| Código fuente | No disponible |
PTK es el motor que utiliza su propio creador, Phelios Inc, en sus juegos, que son ya muchos. Ha sido además utilizado por más de cincuenta tÃtulos de otros desarrolladores hasta la fecha. De hecho, es la librerÃa que utiliza mi primer juego comercial, The Cursed Wheel. Su principal baza es la facilidad de uso y que es multiplataforma.
Funciona perfectamente en Windows y Mac OS X, y tiene versiones privadas (para miembros registrados) para Linux y (más limitada) PocketPC. Además, los usuarios registrados tienen acceso una serie de herramientas auxiliares creadas por Phelios de lo más útil: editores de fuentes, splines (curvas), sprites (por ejemplo, frames de una animación), mapas hechos de tiles, etc.
Soporta tanto OpenGL como DirectX 7, carga de recursos empaquetados, varios formatos de sonido, utilidades varias a nivel de sistema operativo y muchas cosas más. Dispone además de una versión demo gratuita cuya única diferencia con la versión de pago es que tiene un pequeño logo en la esquina superior izquierda, aparte de que no se puede distribuir nada comercial hecho con él, claro.
En cuanto al soporte técnico, dispone de un foro donde el creador suele responder a todas las preguntas rápidamente, asà como solucionar bugs con los que te encuentres e implementar nuevas features al engine que pida la gente.
Si lo que quieres es hacer un juego 2D en C/C++ para Windows y Mac sin complicarte mucho la vida, PTK es para ti.
BlitzMax
| Sitio web | www.blitzbasic.com |
|---|---|
| Precio | $80 |
| Código fuente | No disponible |
BlitzMax es la nueva generación de lenguajes Blitz hecha por Mark Sibly. Comenzó con ellos en Amiga y muchos años después lanzó una versión para sistemas Windows llamada BlitzBasic que se hizo bastante popular. Sin embargo fue su heredero, Blitz3D, el que le proporcionó fortuna, fama y mujeres (ficción publicitaria). Después de numerosos atrasos llegó por fin el heredero de este, BlitzMax.
Esta nueva versión está mejorada en todos los aspectos posibles. El lenguaje, aunque sigue teniendo una sintaxis tipo Basic, es mucho más potente, con cosas como orientación a objetos, que su antecesor no tenÃa. Además, otra caracterÃsticas importante de este producto es que el mismo código compila y funciona perfectamente en las tres versiones disponibles de BlitzMax: Windows, Mac OS y Linux. También pueden añadÃrsele módulos externos en BlitzMax o C, con lo que la comunidad, muy activa por cierto, ya ha creado multitud de módulos extra para el motor: compresión ZIP, scripting vÃa Lua, un módulo que sustituye el renderer original basado en OpenGL por otro que utiliza DirectX 7, etc.
Las caracterÃsticas clave de BlitzMax son su extrema facilidad de uso, su activa comunidad y, al igual que PTK, su funcionamiento multiplataforma. Su principal pega es que se tiene que programar utilizando su lenguaje propio, similar a Basic, que a muchos programadores puede disgustar.
PopCap Games Framework
| Sitio web | developer.popcap.com |
|---|---|
| Precio | Gratuito |
| Código fuente | Sà |
Esta es la librerÃa que utilizan todos los juegos de PopCap y que esta misma compañÃa hizo pública hace unos meses. Tiene numerosas ventajas:
- Es gratuito y de código abierto
- Es 100% estable. Los juegos de PopCap han sido probados en literalmente millones de ordenadores, y este framework se ha ido perfeccionando y refinando en cada uno de sus juegos. Además de DirectX 7 para aceleración por hardware, en caso de no estar disponible (en tarjetas gráficas muy antiguas), tiene opción de renderizar por software.
- Algunos programadores de la compañÃa se pasan a menudo por los foros oficiales a resolver dudas. Además hay otros usuarios experimentados que ayudan en estas cuestiones.
- El diseño de la librerÃa es de lo más sexy (para los que el diseño de software nos pone). No es de extrañar que el namespace que engloba todas las clases y funciones de la librerÃa se llame precisamente Sexy.
En mi opinión, la única pega relevante es que únicamente funciona en sistemas Windows. Aunque si vas enfocar tus esfuerzos hacia los denominados “portales” de distribución, que son mayoritariamente para Windows (como hace PopCap), esto no debe ser un problema para ti. De todos modos, hace un tiempo Red Marble Games, que ya ha portado algunos juegos de PopCap a Mac, dijo que estaba trabajando en portar el framework a dicho sistema. Por lo que se, últimamente está ocupado con otras cosas y no puede dedicarle todo el tiempo que precisa la tarea, asà que no se cuando podemos esperar una versión para Mac de la librerÃa.
Si no te importa destripar código ajeno ni programar para Windows y te gusta el software bien diseñado, el PopCap Games Framework es una buena opción. Es lo que yo estoy utilizando para mi juego actual.
Torque2D
| Sitio web | www.garagegames.com |
|---|---|
| Precio | $100 |
| Código fuente | Sà |
Torque2D es el último producto de los chicos de GarageGames, después de los motores orientados al 3D, Torque Game Engine y Torque Shader Engine. Desde mi punto de vista, el gran problema de este engine es que aunque tiene ventajas muy suculentas, también tiene algunas desventajas crÃticas respecto a los otros.
Comencemos con las ventajas para haceros la boca agua:
- Multiplataforma: funciona en Windows, Mac OS y Linux
- Sistema de fÃsicas y colisiones tremendamente bueno, rápido y con capacidades de debuggeo muy útiles (mostrar polÃgonos de colisión, ejes, physic body, etc.)
- Scripting usando su lenguaje propio, TorqueScript, muy potente y útil, pues está estrechamente ligado al motor. De hecho pueden hacerse juegos enteramente en TorqueScript.
- Una comunidad muy activa, de calidad y sobre todo muy, muy grande.
- Sistema de GUI muy útil que incluye un editor en tiempo real la mar de útil.
- Lo mismo que dicho sobre la GUI se puede aplicar a sus sistemas de partÃculas y de mapas de tiles
Se acabó lo bueno, caballeros. Pasemos ahora a dar las malas notÃcias, que no son pocas:
- Está actualmente en una etapa que ellos llaman Early Adopter, y viene a decir algo asà como “todavÃa no es estable, pero lo ponemos a la venta para el que quiera probarlo ya, lo haga”, por lo que ni de lejos es tan estable ni compatible con diverso hardware como PTK o el PopCap Framework. Tiene actualmente algunos bugs, le falta algo de documentación y creo que sólo tiene renderer OpenGL, con lo que puede dar problemas de drivers en ordenadores poco actualizados. Sorprendentemente, y en contra de lo que se pudiera pensar, hay un juego casual publicado comercialmente en muchos sitios, incluso en Yahoo! y RealArcade: Gold Fever
- En la licencia indie ($100) requiere que muestres unos segundos una pantalla estilo “powered by Torque2D“
- Hacer un juego utilizando TorqueScript puede ser fácil, pero si quieres tocar el código C++ es bastante más complejo que el de PopCap (los demás que hemos visto no publicaban su código).
Como comentario final creo que, pese al ejemplo de Gold Fever, Torque2D todavÃa necesita madurar un poco más para ser una solución a tener en cuenta para un producto comercial. Sin embargo, cuando esto ocurra estoy seguro de que será uno de los engines más potentes disponibles para el indie.
Unity
| Sitio web | www.otee.dk |
|---|---|
| Precio | $249 Unity Indie $999 Unity Pro |
| Código fuente | No |
Antes de nada quiero decir que he probado extensivamente todos los motores que hasta ahora he mencionado, ya que me parece algo básico a la hora de hacer una review, pero con Unity voy a hacer una excepción, por la sencilla razón de que todo lo que leÃdo sobre él me parece genial y puesto que es bastante desconocido quiero hacer lo posible para que la gente lo conozca y quizá encuentre aquello que andaba buscando o que se ajuste más a sus necesidades.
Unity es un motor para juegos 3D de lo más útil. Contiene multitud de herramientas y caracterÃsticas que lo hacen único, y una opción a tener en cuenta. Comenzaré con sus desventajas, pues puede que directamente hagan descartar este engine a mucha gente.
- Aunque el motor sea capaz de crear ejecutables tanto para Mac como para Windows, el editor, que es una pieza clave para hacer juegos con Unity, sólo funciona en Mac. O dicho de otra forma, si no tienes un ordenador Apple olvÃdate de este engine.
- La licencia Indie cuesta $249 y la Pro, $999. Además esto es durante un tiempo limitado, el precio real es $399 y $1,999 respectivamente. La diferencia entre las dos versiones es que la Pro tiene cuatro caracterÃsticas adicionales, una de ellas muy importante:
- Acceso directo a OpenGL, para mà la menos relevante, pues el motor ya proporciona todo lo que puedas necesitar.
- Empaquetado de recursos en formato propietario para asegurarte de que nadie accede a ellos. Tampoco demasiado importante desde mi punto de vista.
- Efectos de render-to-texture, como glow. Medianamente importante.
- Sin duda la caracterÃstica clave que hace que más gente se pase a la versión Pro: capacidad de crear ejecutables para PC/Windows. Es decir, la versión Indie sólo funciona en Mac, tanto el editor como los ejecutables finales, mientras que la versión Pro permite también crear para Windows.
Si podéis vivir con esto o disponéis de dinero para la versión Pro ya tenéis mucho ganado. De hecho, el problema de comprar o no la Pro no creo que sea tal. Siempre puedes sacar primero tu juego para Mac, y con los beneficios pagar la diferencia entre las dos licencias luego para actualizarte a la Pro y lanzar tu juego para Windows. A los usuarios de Mac les encanta tener productos multiplataforma antes, ya que siempre suele darse el caso contrario. Pasemos a ver las ventajas, que no son pocas:
- Posibilidad de publicar tu juego como: aplicación para Mac OS X, plug-in web para Mac OS X, Widget para Dashboard de Mac OS X +10.3, aplicación para Windows y pronto también como plug-in web para Windows.
- Un juego en Unity consta de dos partes: escenas (creadas con un editor visual) y scripts asociados a objetos de la escena (creados con uno de los múltiples lenguajes que soporta).
- Lenguajes de script soportados: JavaScript, C# y Boo (un lenguaje similar a Python).
- Modelado de entidades del juego basado en componentes, que pueden ser añadidos y borrados en tiempo de ejecución.
- Soporte de plug-ins vÃa C/C++ para añadir funcionalidad extra al motor y al editor.
- Soporte de muchos formatos de ficheros para modelos, texturas o audio: 3DS, Maya, Lightwave, Cinema 4D, Motion Builder, Cheetah3D, Photoshop, etc.
- Completo sistema de shaders, incluÃda una librerÃa con los más comunes listos para ser usados.
- Incluye el Ageia physX™ Physics Engine: ragdolls, cajas, coches, etc. Simula fricción, deslizamiento, elasticidad y joints mediante visagras, bolas o suspensiones. Colisiones entre mallas asà como entre malla y primitiva.
- Completo editor de escenas: parámetros de entidades editables visualmente, GUI configurable, añadir entidades y scripts arrastrándolos directamente con el ratón en la escena, posibilidad de jugar a la escena “tal cual” para probar pequeños cambios, al estilo del editor del CryENGINE (usado en el juego Far Cry); y mucho más.
Por desgracia, al no tener Mac no he podido comprobar si este motor es tan bueno como lo pintan, y por lo que cuenta la gente en su foro parece ser cierto, es una pena que no sea muy conocido. Aún asÃ, creo que todo aquel que tenga un Mac deberÃa hacer uso de la versión de prueba durante 15 dÃas que tienen disponible. Por cierto, para los que se pregunten sobre la viabilidad comercial de Unity, probad GooBall, el primer juego comercial hecho con él. Para los que no dispongan de un Mac hay un video disponible del juego, vale la pena verlo.
Hasta aquà llega nuestro repaso sobre algunas de las opciones más accesibles para el indie en cuanto a motores de juegos se refiere. Me gustarÃa haber añadido otras opciones como Torque Game Engine o 3D Game Studio pero mi falta de experiencia en dichos sistemas me hace dudar de la utilidad que podrÃa tener una review por mi parte. Por otro lado, si alguien ha probado este u otros y tiene una clara opinión sobre el mismo puede hacerlo en los comentarios de este artÃculo.
September 15th, 2005 a las 2:35 pm
No he tenido tiempo de probar Unity, aunque sà me descargué GooBall. Es el juego más potito que he visto correr en mi Mac, tiene unos cuantos shaders interesantes, y funciona bastante rápido a pesar de tener una Nvidia FX5200.
Las demos de fÃsicas, muy lentas.. en la lÃnea de las demos de Newton(no sé que API usa Unity de todas formas).
September 15th, 2005 a las 3:39 pm
Como ya he dicho, Unity usa el Ageia physXâ„¢ Physics Engine, anteriormente conocido como Novodex Physics, que es de lo mejorcito que hay. De hecho es el motor que utiliza el Unreal Engine 3.
En cuanto a “las demos de fÃsicas”, ¿a cuáles te refieres? ¿Tiene Unity demos especÃficas de fÃsicas? ¿O te refieres a las del Ageia?
En cualquier caso, lo de lento es muy relativo, depende para qué vayas a usarlo. Las demos suelen ser siempre stress tests para probar “máximos”. Poner 1000 cajas en un montón y pegarle un bolazo, o tirar 20 ragdolls por unas escaleras. Eso no lo verás en un juego. En cambio tienes ahà el GooBall, que tiene unas fÃsicas chulas pero claro, “pocas”. Es decir, el personaje (que es una masa que se contrae, engancha, desliza, etc.) contra el escenario y poco más.
September 16th, 2005 a las 5:26 pm
SÃ, Unity tiene una demo de fÃsicas. Sale un cochecito, y puedes disparar a 15 o 20 cubos en pantalla, además de a un dragón formado por una cadena de unos 10 elipsoides.
No son tantos objetos, y se arrastra en mi G4 1.5Ghz. El Gooball es completamente jugable en todos los niveles de detalle, salvo el máximo, que se empieza a ralentizar.
August 8th, 2006 a las 6:15 pm
Solo querÃa corregir un detalle: el código fuente para BlitzMax sà está disponible. Al comprar la licencia, obtienes el código fuente del lenguage, sus librerÃas, compilador, etc.
January 25th, 2007 a las 7:38 pm
deseo jugarun rato con estos videojuegos