La revolución que se viene al mundo de los videojuegos.

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.

Por qué la compra de Mojang es un buen negocio para Microsoft… y para Minecraft

Soy un fan de Minecraft, fomento que mis hijos jueguen, tengo un servidor que administro yo mismo y toda suerte de merchandishing. No soy dudoso.
Minecraft es la creación de un turbofriki llamado Markus Pearson más conocido en Twitter como @Notch; el solo escribió todo el código de la primera versión del videojuego que se ha convertido en el Lego digital, solo que Lego está protegido hasta la extenuación y nuestro friki decidió hacer Minecraft abierto a modificaciones de estética y funcionlidades (mods y plugins). Tampoco es que tenga mucho mérito haberlo escrito el solo porque la Alpha de Minecraft era un programa en Java simplón y poco depurado.
Markus Pearson eligió un buen lenguaje de programación – Java, una buena música – la de otro chaval, más conocido como C418 -, pero sobre todo eligió un modo de representar las cosas con cubos de uno por uno por uno; algo que ha acabado por convertir en un estándar de representación de la realidad.
Como Notch tuvo éxito con esa primera versión creó Mojang, que es hoy es una empresa de poco más de 10 personas donde a mí me responde los correos (a ti también si le escribes) uno de los cocreadores, y hoy se ha vendido a Microsoft por 2.500 millones de dólares, vamos, 250 millones de dólares por trabajador.

Minecraft no es un videojuego ni siquiera es un ecosistema abierto de software. Minecraft es un modelo de simplificado de representación de la realidad en escala uno por uno por uno.
Microsoft comprando Mojang entra por derecho en el sector de la educación, donde Minecraft está empezando a arrasar precisamente en los países más punteros del mundo, a saber los nórdicos. Este videojuego es un pozo sin fondo para enseñar a trabajar en equipo y por proyectos pero además es fácilmente modificable en estética y funcionalidades, es decir se puede cambiar en un servidor por el mero hecho de ser de software libre y por tener un magnífico ecosistema.
Aún más, enseña a los niños programación, a manejar servidores y representación 3D, a fabricar herramientas, a craftear toda suerte de cosas y además está creciendo a una velocidad imparable. Es por esto y por algunas cosas más que me parece que Microsoft ha hecho un magnífico negocio.
Tampoco debemos olvidar que Microsoft lleva ya años apostando por el software abierto especialmente a nivel de servidor y que Minecraft se instala en un servidor para que los jugadores compartan un mundo, de modo que la compra de una frikada como Mojang por esa barbaridad de dinero es bastante coherente con esa filosofía de software libre montado en los servidores. Y probablemente luego aparezcan modelos de negocio tanto de Sofware as a service – SaaS -, como de consultoría. Mojang lo da todo gratis pero la autenticación contra el servidor oficial viene con una licencia de 20€ y además salen licencias de merchandishing.
Creo que microsoft puede llevar a cabo la necesaria optimización del código el único problema que veo es si la Comunidad seguirá desarrollando sobre una plataforma que ahora pertenece a los de las ventanita.