Hace un mes lancé mi primer videojuego, Euclid’s Inferno. Me alegro haber podido partir de una idea y convertirla en algo que puedes jugar en Steam en menos de un año.
He leído consejos advirtiendo que no tomes mucho tiempo desarrollando tu primer juego, porque, bueno, es tu primer juego, no va a ser bueno. De cualquier manera, el juego está allí afuera y estoy muy feliz con el producto final. Tiene sus defectos, pero me divertí desarrollándolo y jugándolo.
¿Cuántas copias he vendido? En un mes, cuatro. No tenía expectativas de que se convirtiera en un éxito, ni siquiera en uno moderado. De hecho, perdí dinero haciéndolo debido a la tarifa de cien dólares de Steam. Hacer dinero no fue el objetivo principal. Pero si al juego le va bien en un futuro, ¡no me voy a quejar!

Me di cuenta de que soy bueno desarrollando nuevas mecánicas. Me divertí bastante pensando en nuevos conceptos como armas y enemigos. Desarrollé prototipos para ver si una idea era viable y divertida antes de convertirla en un elemento del juego.
También me di cuenta de que soy malo haciendo niveles. Es el área que más se me dificultó. Tenía que hacer un nivel interesante, retando al jugador de nuevas maneras pero sin hacer que el juego se sintiera injusto. No estoy muy seguro si lo logré en este aspecto.

Desarrollar este juego me hizo un mejor programador de Lua, y un mejor programador en general. Ahora mismo, el juego contiene alrededor de 11,800 líneas de código, así que una gran parte del desarrollo fue organizar el código, manteniéndolo bien estructurado y listo para futuras nuevas adiciones.
Programé utilidades para manejar entidades, temporizadores, colisiones entre objetos matemáticos, internacionalización, y componentes para la interfaz de usuario. Serán muy útiles para proyectos futuros. Sufro de un severo caso de NIH (No Inventado Aquí por sus siglas en inglés). Siento que usar librerías y frameworks me roban el placer de aprender y entender temas complejos y de desarrollar mis propias soluciones. Tiendo a evitarlas si es posible.
Programé por accidente un editor de niveles ya que necesitaba una forma rápida de desarrollarlos para probar mi juego. Escribir números en un archivo de texto no iba a ser divertido. Al final lancé el juego con él, espero que motive a los jugadores a crear su propio contenido.
A veces tuve que preocuparme sobre el rendimiento, especialmente cuando dibujaba cientos de objectos en la pantalla. Incluso una maravilla de la ingeniería como LuaJIT tiene sus límites.

Dado el estilo artístico del juego, mis dibujos de vectores ayudaron a fijar su estética. La mayoría de comentarios que recibí de los jugadores fueron buenos, impresionados por su aspecto llamativo y minimalista. Tuve que desarrollar shaders GLSL para mejorar su viveza, ya que estaba usando una paleta de colores limitada.
Sin duda el mayor aprendizaje fue cuando hice la música del juego. Compuse veintisiete canciones únicas. Aprendí mucho sobre escalas y modos musicales, composición, acordes, y mucho más. No soy un músico profesional, pero esto me hizo un poco menos temeroso de crear mi propia música, Disfruto escucharla, incluso cuando no estoy jugado el juego. Mi mente sigue ideando nuevas ideas y patrones, así que creo que esta es una excusa para hacer más niveles y expandir este juego. Quién sabe, ¿tal vez en una futura actualización?