Antes de entrar en materia...
Siento necesario que entiendan las cosas, pues liarse con términos puede resultar incómodo al aprendizaje. Teniendo esto en mente, les escribo el siguiente material:
Corona SDK, motores gráficos y más.
Qué es un motor?
Es un software que te permite la creación, modificación y administración de gráficos, sonidos y demás dentro de un videojuego.
Nota: No he mencionado a Gideros Mobile pero es muy bueno si entiendes la OOP.
Hay muchos tipos de engines (motores gráficos) para la creación de videojuegos, nos centraremos en los más conocidos.
Motores gráficos:
Stencyl:
Es estilo Drag & Drop, útil para hacer pequeños prototipos pero cuesta dinero para empezar. 2D, Drag and Drop y pagas cada mes.
Game Maker:
No recomendado para personas que están empezando en la creación de videojuegos. 2D, ¨Drag and Drop¨, los módulos de exportación ($$$) te golpean en la cara.
ClickTeam Fusion:
No recomendado, muy difícil interfaz. 2D, Drag and Drop y pagas una sola vez.
Construct 2:
Recomendado para personas con absolutamente nada de experiencia en programación. 2D, Drag and Drop, y pagas una sola vez. No hay exportación nativa oficial. Lento en móviles.
RPG Maker:
Fácil, pero no recomendado almenos que quieras crear solamente RPG´s. 2D, Drag and Drop, fácil de aprender y usar. Tendrás prototipos en menos de 5 minutos.
CryEngine:
Como su nombre indica en inglés, te hará llorar de lo difícil que es tan sólo entenderlo. 3D, Código puro, Difícil de aprender y usar. Requiere una gran curva de aprendizaje aun usando Lua.
Unreal Engine:
anterior, pero con Blue Prints. Si no entiendes el concepto ¨Blue Print¨, entonces puede no ser recomendado. 3D, Un motor muy potente que gracias a BluePrint, es posible crear un juego hasta sin mucho código.
Unity:
Recomendado para personas con alta experiencia en programación. 2D y 3D, código, Es el estándar de los videojuegos de hoy. Cobra por módulos de exportación.
Godot:
Alternativa gratuita y un poco más fácil a Unity. 2D y 3D, código, Es Unity pero grátis. El código GDScript es legible si entiendes Python.
G Develop:
Alternativa gratuita a Construct 2, no recomendado debido a inestabilidad. 2D, Drag and Drop, es Open Source y no requiere muchos conocimientos. Aún está en desarrollo.
Metas que me han funcionado:
1.Aprender a programar estilo Drag and Drop (Construct 2)
2.Entender conceptos básicos de programación (Lua, Javascript o Python son recomendados para comenzar esto)
3.Aprender a usar Corona SDK (Es recomendado debido al rendimiento ante todos los otros, en especial HTML5 de Construct 2. Que por cierto, tiene un performance horrible en teléfonos incluso alta gama)
4.Saber generar una keystore con Java Runtime Enviroment (JRE)
5.Aprender a crear una cuenta de desarrollador en Google Play para subir apps (Conlleva obtener tarjeta de crédito internacional activada)
Por que recomiendo Corona SDK?
- Porque puedes crear lo que se te antoje, sólo imaginalo y créalo en código.
- Porque tiene el mayor rendimiento. De los 3 mejores engines 2D, Game Maker, Construct, etc, es el más rápido.
- Porque no necesitas nada más que un PC con JRE instalado para exportar tus aplicaciones. Funciona con la web.
- Porque no sólo exportas Android, sino también IOS, Mac, Windows, Kindle, Android TV, Apple TV, etc.
- Porque es el más fácil para programar código, funciona con Lua.
- Porque tiene todo tipo de plugins(incluso no oficiales) y una gran comunidad que extiende a Corona.
- Porque su versión gratuita te deja lucrarte sin pagar y además vienen la mayoría de funciones que requieres.
- Porque tiene buena documentación y servicios de soporte.
- Porque apesar de tener que exportar con internet, ves todo funcionando en directo desde tu PC y sin internet.
- Porque trae descenas de ejemplos para empezar, desde físicas y sonido, hasta animaciones y efectos. (Creo que son más de 80 code samples)
Te he dado 10 razones escenciales por el momento. Puede que hayan más.
Me gusta dividir los diferentes modos de hacer un videojuego:
Existen tres formas de hacer los videojuegos. El modo fácil, el modo arduo y el difícil.
El modo fácil abarca todo lo que sea Drag & Drop, NO entender los conceptos del código (sólo escribirlo o copiarlo), No tener ningún tipo de experiencia o pagar para que el juego "se haga".
Esta primera forma implica poco o casi nulo esfuerzo y sólo requiere de dinero y tu idea.
El modo difícil, propone ser una propuesta interesante pues requiere mucho esfuerzo en escribir y entender
de manera abismal el código. Esta forma de trabajar no te permite llegar muy lejos debido a que es muy
complicado tener altos conocimientos técnicos de un lenguaje. Obvia esto si eres de ese 1% de la gente que
es muy inteligente, para nosotros, el resto de la humanidad es completamente innecesario. Sólo se puede actuar en equipo y de manera obligatoriamente dependiente y aún si es tu idea, podría cambiar en el proceso.
Aún así, tener altos conocimientos de un lenguaje te permite obtener una profesión adecuada para tu caso.
El modo arduo, propone mucho esfuerzo, dedicación y especialización en diferentes áreas de la creación de
videojuegos. Es parecido al anterior pero necesitarás hacerlo por tí mismo. Cuesta dinero, mucho tiempo y paciencia. Para este método indie, necesitarás aprender a utilizar herramientas como editores de imágenes, de texto. Habilidad para utilizarlos correctamente (de manera mínimamente profesional;con calidad).
Cosas que necesariamente debes saber si estás sacrificando tiempo por calidad es que existe el Pixel Art!
Es fácil, caricaturesco, muy llamativo y retro. Todos ese aspecto ochentero es valorado en la actualidad. Flappy Bird es claro ejemplo. Por otro lado, no es tan necesario saber lenguajes de programación enormemente
complicados como C++ pues éste sacrifica mucho tiempo.
Java es una opción más viable pero para empezar siempre recomiendo Python pues no sólo te ayudará a entender mejor Lua, sino que si te crees lo suficientemente adaptado al entorno, puedes entrar de lleno a Godot con su GDScript, pues su sintaxis es muy similar a la de Python. Como ves, tienes muchas ventajas.
Además de la programación y los gráficos, lo probable es que tu juego lleve música de algún tipo u efectos de sonido. Debes aprender a tocar el piano (esto por motivos de tiempo por supuesto), debido a que a la larga te ayudará a comprender mejor la teoría musical. Dedicate a escribir, componer y estudiar notas y acordes.
Hasta que puedas sacar a realidad lo que tienes en la cabeza. Busca, informate de los DAW´s y VSTs. Aprende (si quieres) a equalizar y ajustar sonidos a tu antojo.
Requiere mucho tiempo cada una de estas áreas, sin mencionar que hay sub-áreas como:
La del pixel-art: animación, fondos (backgrounds), tiles y json, Spritesheets.
Del sonido como: Composición, reconocimiento mínimo de escalas mayores y menores, oído musical, reconocimiento y manipulación de frecuencias con EQ (Low, Mid y High).
Pero no se queda la programación: Programación orientada a objetos, manejo de recursos de memoria, diseño de interfaces, módulos, librerías, etc.
El modo arduo puede ser peligroso para una persona que no se dedica a esforzarse por un objetivo, pues puede perder el interés y con ello tiempo. La realidad es que es tan simple como: Quieres hacer un juego realidad pero no tienes tiempo o te da flojera? pues no es para tí.
Espero que este resumen te haya servido de algo.
Hasta la próxima...
Nota Final: NO te alteres si ves mucha palabras en la introducción, pues no escribiré tanto cuando se trate de lecciones. Almenos no en código.