La época en que un solo programador se sentaba y escribía el Tetris o Pacman desde cero ya es historia. Hay muchas plataformas distintas: móviles, PCs, consolas… cada una con sus propias características. Aunque la época del programador solitario ha regresado, ha sido gracias a los motores de juegos.
Siempre digo que es esencial dominar la base, todo programador de juegos debería saber un mínimo de cómo funcionan OpenGL y DirectX. A veces basta con el clásico Hello world de los gráficos: mostrar un triángulo. Pero a menos que seas un genio que puede reinventar la rueda, lo óptimo es que utilices un motor de juegos, porque hacerlo desde cero no es solo reinventar la rueda, sino también reinventar el agua tibia. Un motor de juegos (presten atención) es una herramienta que integra sistemas de renderizado, sonido, detección de colisiones, conectividad, junto con herramientas de creación de niveles, manejo de recursos, etc. No confundir con un motor de renderizado, que solo ofrece capacidades gráficas, como Ogre3D.
Entonces ¿qué motor de juegos utilizar? Una pregunta que depende del programador y sus habilidades y preferencias, y sobre todo: del presupuesto. Una herramienta tan compleja es cara de producir y mantener, los motores nunca están terminados, porque con el desarrollo de las tarjetas de video cada día quedan a nuestro alcance nuevos métodos para dibujar cosas en la pantalla. Históricamente el software libre ha carecido de un motor de juegos completo eficiente y productivo. No basta tener un sistema de renderizado magnífico si tienes que invertir meses en agregarle detección de colisiones y un diseñador de niveles.
Así que empezaremos por los motores comerciales, en concreto, Unity3D. Este producto viene pisando fuerte desde hace un año más o menos, cuando logró hacerse con un par de buenos proyectos nacidos en Kickstarter. Al principio no me gustaba, pero luego de tomarlo un poco en serio, tengo que admitir que es un motor fácil de aprender y que cuenta con una inmensa base de usuarios y por tanto, documentación a patadas. Cualquier cosa que puedas imaginar, ya alguien lo habrá hecho antes y lo habrá colgado en youtube. Si no logras aprender Unity3D, cuelga los guantes. O mejor, cuélgate tú, porque evidentemente eres un inútil y una carga para la sociedad. ¿La licencia? Puedes tener la versión estándar gratis, que viene con muchas funcionalidades interesantes capadas y te permite comercializar productos que no sobrepasen los $100000 USD en ventas. O puedes tener la versión Pro de un usuario, por solo $1500, o para grupos por $2000. Una birutilla, vaya.
Si eres de los que solo usan lo mejor, entonces tu opción es Unreal Engine: el padre de los motores, lo mejor de lo mejor. Lo mismo que Unity: usado en miles de productos, probado hasta la saciedad, con una amplia base de usuarios y el mejor motor del mundo. Gracias a su nuevo modelo de Engine as Service puedes tener este tanque de guerra por solo $19 USD al mes. Incluye código fuente. Y es el mejor motor, pero creo que eso ya lo dije antes.
Si lo que te va es la vieja Europa, pues ahí tienes el CryEngine, de Crytek. Unos tíos muy exagerados que hacen juegos que no corren en la mayoría de las tarjetas gráficas a menos que bajes la calidad al mínimo. Hay que reconocer que se ve de maravilla y puedes tenerlo (again, Engine as Service) por solo $9 USD al mes. No tiene una base de productos y usuarios tan amplia, pero va ganando espacio poco a poco.
Si no tienes un centavo, te quedan las opciones libres, que son muy pocas. Para empezar: Torque3D. Este es un antiguo motor comercial que disfrutó de mucha popularidad por su bajo precio. Sin embargo, perdió fuelle y tuvo que abrir su código fuente. Poca documentación, arquitectura compleja y tecnológicamente atrasado, sin embargo tiene un impresionante editor de escenarios y en general una suite de herramientas muy completa. Es lamentable que sea tan difícil de aprender.
Si estás pasando por una fase de aprendizaje, quizás quieras echarle un vistazo a Ogre3D. Es solo un motor de renderizado, así que el resto lo tendrás que agregar tú. La documentación es relativamente abundante, pero en muchas ocasiones tendrás que adaptarla a tus necesidades. Mi consejo: evítalo, ya hay mejores opciones libres.
Por último, para no extenderme mucho, hay una solución nueva que está progresando poco a poco: Urho3D. Es un motor de juegos que ya lo tiene casi todo, incluso un editor de escenarios. Como aún está en su infancia, la documentación es poca, pero es muy fácil de aprender.
Hasta aquí la lista de recomendaciones. Hay muchas más, pero he tratado de abarcar las más populares y fáciles de conseguir. Para el resto, ahí tienen a Google (los que lo tengan).




hace cosa de año y medio di una conferecita en el palacio central de computacion sobre el tema. motores/usos/abusos/e(ho)rrores de uso etc
fue grabada pero no he conseguido el video, estoy en eso hace rato
podria mandarle la presentacion a pedazos a un email
Tirala a mi correo, roger@ehtsc.tur.cu, admite hasta 2mb por correo.
Pudieras mandarme al correo, por supuesto si los tienes, los enlaces para la descarga de los motores gráficos que son gratis, y si tienes algo todavia del curso que pasaste también. Me gusta la creación de juegos y so fanático de la animación 3D así que me gustaría ver hasta donde puedo llegar. Gracias