Matias H. Castillo Blog

Mi juego soñado - Cap. 1: ¿Cómo será este proyecto?


He estado pensando últimamente en cómo me gustaría llevar a cabo este proyecto ya que aún no tengo del todo claro cómo abordarlo. Siempre que pienso en mis referencias o inspiraciones al momento de querer trabajar en un videojuego mi mente se va al mismo lado: Metal Gear Solid, Mega Man Legends, Final Fantasy Tactics, Ace Combat 3 y RayStorm. Y si bien todos esos juegos comparten cosas en común en cuanto a la estética visual, distan bastante en todo lo demás.

Sin duda que la estética de esa época (1994 - 1998) pensando en consolas como la Sony Playstation, Sega Dreamcast o Nintendo 641, es lo que más me produce inspiración. También ocurre que cuando era chico, mis primeros intentos de hacer un juego 3D fue usando Entidad 3D y Reality Factory, ambos motores basados en el motor gráfico Genesis 3D, el cual posee muchas similitudes con motores gráficos de esa época. Esto me recuerda esos trucos y técnicas que se utilizaban en esa época para emular efectos visuales y hacer que mis proyectos se vieran como los juegos que a mi me gustaban.2

A pesar de que encuentro que los motores modernos como Unity y Godot son maravillosos a la hora de querer hacer un juego en la actualidad, siento que no es tan fácil tratar de emular los gráficos de antes del 2000 con estas herramientas. Unity está enfocado en producir gráficos de alta calidad (con su tecnología HDRP o High Definition Render Pipeline en sus siglas en inglés) necesarios en la industria automotriz e inmobiliaria y Godot quiere posicionarse como el motor de los desarrolladores independientes, apuntando quizás a ser una alternativa viable a Unreal Engine a largo plazo. Así que sí lo esperado es imitar gráficos más retro como las primeras consolas 3D, hay que hacer muchas configuraciones, programar shaders especializados o buscar plugins online que permitan en la práctica “afear”, por usar un término no tan técnico, los gráficos de dichos motores más avanzados.3

Un motor gráfico que aparece y desaparece de mi radar con regularidad es Panda3D. Este motor gráfico originalmente creado por Disney tiene un look and feel muy similar a lo que estoy buscando para mi proyecto. Resulta ser un motor gráfico que, al igual que los anteriormente nombrados, posee la capacidad de lograr una calidad gráfica altísima, pero que al tener esa opción desactivada desde el principio da la sensación de que es posible trabajar con gráficos más retro. Es curioso que cuando seguí el tutorial que se encuentra en su página oficial, que consiste en una escena mostrando a un pandita caminando en el bosque mientras una cámara gira a su alrededor, los gráficos están configurados con lo mínimo necesario para mostrar dicha escena, y eso sumado a la naturaleza low-poly de los modelos 3D, la falta de iluminación y sombras en tiempo real y lo pixelados que se ven las texturas le da ese look retro que justo estoy buscando. Otra característica muy interesante es que utiliza Python como lenguaje de programación.4 Todo esto lo hace una herramienta bastante interesante con la que trabajar. De todas formas me gustaría revisar otras opciones de motores gráficos que puedan haber por ahí y de los cuales aun no me he enterado.

También llegué a pensar en la idea de utilizar alguno de esos motores gráficos antiguos y trabajar directamente en software de la época, pero no se si valga la pena volver a usar Reality Factory o algún motor como Unreal Engine 1 o Id Tech 3 (el motor gráfico de Quake 3), que claramente vienen listos para que se vean y funcionen tal cual lo hacían años atrás. Siento que en la práctica se complicaría demasiado el desarrollo al utilizar esos motores antiguos, ya sea por los problemas de compatibilidad con equipos modernos, o porque uno ya está acostumbrado a trabajar con motores gráficos más actuales (los que aceleran bastante el workflow de desarrollo). Aprender sobre esos motores antiguos es interesante como tema de estudio, porque así se puede entender cómo los desarrolladores encontraban maneras creativas de resolver los problemas, pero es demasiado complejo y poco viable para desarrollar videojuegos hoy en día.

Por ahora quedo hasta aquí en este capítulo de la búsqueda de formas en las que traer a la vida los videojuegos que me gustaría publicar alguna vez. Queda pendiente cómo voy a proceder con la elección del motor gráfico que utilizaré, ya que aún me queda investigar un poco sobre el tema. Quizás sea un buen tópico para la próxima entrada de este blog el cual espero ir publicando con cierta periodicidad y compartir mi camino a desarrollar videojuegos que, en el mejor de los casos, puedan inspirar a otros tanto como a mi me inspiraron los que yo alguna vez jugué cuando chico.


  1. Luego de investigar un poco sobre las consolas de esa época descubrí que antes que la Dreamcast de Sega existió otra, la Sega Saturn, de la cual desconozco completamente su catálogo, pero que fue contemporánea a la PlayStation de Sony. No la incluyo en este caso ya que de todos los juegos que existieron para esa consola, no existe alguno que produzca en mí esa sensación de estilo y gráficos que quiero lograr emular.

  2. Uno de esos efectos fue, por ejemplo, cuando aprendí a colocar una imágen de un círculo negro con bordes difuminados bajo el protagonista, simulando así una sombra en el suelo.

  3. Evité nombrar a Unreal Engine desde el principio porque este al ser un motor gráfico apuntado a juegos AAA, tiene aún más cosas modernas que complican más el poder imitar gráficos 3D retro a mi parecer. Es un motor gráfico mucho más avanzado y es utilizado por los principales estudios de desarrollo de videojuegos en el mundo, así que creo que se aleja diametralmente a lo que busco conseguir.

  4. El motor está escrito en C++, lo que lo hace bastante interesante desde un punto de vista de manejo de recursos y temas de bajo nivel al momento de hacer un videojuego y querer optimizar un proyecto a largo plazo. Luego el motor se maneja con una interfaz programada en Python, que lo hace más simple y rápido para codificar, hacer cambios y testeo al momento de desarrollo.

#mi juego soñado #spanish