La combinación de tres tecnologías ray tracing para la luz, voxels para las partículas; y la generación procedural para crear los mapas del juego va a llevar a los videojuegos va a crear una revolución nunca vista en el mundo de los videojuegos y los llevará a ser casi indistinguibles de la realidad cuando además les añadamos realidad virtual.
Estas tecnologías ya venían de hace tiempo pero ahora han sido habilitadas para usarse en tiempo real, imagen fluida y ultra-alta resolución. Todo esto surge ahora y no surgió hace veinte años porque hoy tenemos el hardware, especialmente las tarjetas de video capaces de calcular todo esto, y porque hoy tenemos una colección de algoritmos de software eficientes y realistas. Dos tecnologías habilitadoras unidas a tres campos de uso están a punto de llevarnos a unas imágenes por ordenador que sólo soñábamos en las películas.
Minecraft abre el camino
Parece increíble que un juego tan sencillo como Minecraft sea hoy una de las puntas de lanza de estas tecnologías. Quienes me conocéis sabéis que soy un fan de Minecraft desde que me lo encontré allá por 2012, y además somos cada vez más personas las que pensamos que Minecraft es el mejor videojuego de la historia;
pero es que Minecraft ya tiene generación procedural, es decir la creación del terreno en lugar de hacerse manualmente se hace mediante algoritmos desde un punto llamado “semilla”. Minecraft es el mundo de los cubos, de los voxels, en este caso son muy grandes, de un metro por un metro por un metro, pero estos cubos se pueden hacer más y más pequeños y relacionarlos con leyes físicas para simular sólidos, líquidos y gases.
Pero además Minecraft ha sido recientemente el primer juego en incorporar ray tracing, esto es un algoritmo para generar imágenes imágenes que calcula el camino de la luz como si de fotones se tratara y simula sus efectos sobre las superficies virtuales sobre las que incida.
Lo primero que se viene es el ray tracing
El cambio de paradigma es tan profundo que las consolas (Xbox y Playstation) que serán renovadas a finales de este 2020 ya no medirán su potencia por procesador y memoria ram sino por la capacidad de cálculos que sean capaces de hacer por segundo (flops), esto hasta ahora era un parámetro de procesamiento de inteligencia artificial, pero es que si procesamos los fotones, o más bien los grupos de fotones, como si de partículas individuales se tratara necesitamos hacer muchos cálculos.
Esta revolución ya tiene hardware a medida en el mundo de los ordenadores y viene capitaneado por Nvidia con su arquitectura Turing y la próxima Ampere, cuyas tarjetas RTX alcanzan 130 Teraflops, es decir, son capaces de hacer 130 billones de operaciones de coma flotante por segundo… para que luego venga un juego tan simplón como Minecraft y las ponga al rojo vivo, claro que no hablamos del Minecraft normal sino del Minecraft RTX (beta) que trae ese trazado de rayos – ray tracing.
El ray tracing es tan viejo al menos como las películas de Pixar de los años noventa que ya nos lo dejaban ver, pero entonces para generar una animación de 30 segundos podían tener un super-ordenador de la época trabajando una semana mientras que ahora somos capaces de hacer el cálculo en tiempo real gracias a la mejora de los algoritmos, y como no a la increíble potencia de las tarjetas gráficas.
La voxelización. Las partículas por separado
Si separamos la luz en grupos de fotones y les aplicamos leyes físicas como la reflexión o la refracción, por qué no vamos a hacer lo mismo con las partículas.
¿Por qué vamos a poder cavar y hacer agujeros en Minecraft pero no en World of Warcraft o GTA?
Si hacemos esos cubos de Minecraft más y más pequeños y los unimos por leyes físicas, en este caso: atracción, inercia, tensión superficial, gravedad,… podremos hacer una gráfica digital mucho más parecida a la realidad.
Redescubriendo la generación procedural
Las tecnologías habilitadores en hardware (tarjetas gráficas) y en software (inteligencia artificial) no iban a quedarse en calcular la luz y las partículas sino que podían llegar a generar los terrenos del juego en base a algoritmos, de forma automática.
La generación procedural guiada por inteligencia artificial permite generar nuevos mundos constantemente y todos serán diferentes por lo que evita aburrirse de un espacio, pero además, al igual que sucede con el ray tracing y los voxeles tiene un sinfín de aplicaciones prácticas que aún estamos por imginar.
Conclusión, es el momento de Voxelers
Cuando se reúnen dos tecnologías habilitadoras: las nuevas tarjetas gráficas y los nuevos algoritmos con tres campos de aplicación: ray tracing, voxels y generación procedural, surge un mundo apasionante de posibilidades que no queremos perdernos. Además un poco buscado un poco casual, a raíz del confinamiento y en el marco de Juntos desde Casa, Álvaro del Castillo y yo comenzamos a hacer talleres de Minecraft para enseñar a programar Python a niños y familias; una cosa llevó a la otra.
Álvaro creó McThings, todo un framework para crear y modificar construcciones de Minecraft con unas pocas líneas de Python; después un sistema para importar “esculturas” desde Magicavoxel y Blender, e incluso tenemos demo.voxelers.com, un servidor de Minecraft donde se trajo quinientas estructuras y a algunas las tiene bailando desde entonces.
Cuando empezamos a pensar en qué pasaría si esos voxels tan grandes de Minecraft se hicieran más pequeños surgió inmediatamente la necesidad de contar con un motor de leyes físicas que gobernara las interacciones entre esos cubitos o voxels, y ahí Álvaro llegó Voxelfarm y más tarde un motor gráfico como Godot para llevar todo eso a un videojuego real. El caso es que hemos creado unos Voxelers, es decir unos programas capaces de crear voxels, de mover voxels de un lugar a otro, de un software a otro y también para que esos voxels acaten leyes físicas.