Mundos infinitos, mundos realistas: generación procedural e inteligencia artificial en videojuegos

Javier Coronado Blazquez    22 agosto, 2022
Imagen del videojuego No Man's Sky de Hello Games

En este post hablaremos sobre cómo crear automáticamente entornos realistas en mundos virtuales. Usaremos como ejemplo el videojuego No Man’s Sky, del estudio Hello Games, que en 2016 creó galaxias y planetas enteros a escala real con un simple algoritmo, todos ellos enteramente visitables y diferentes.

Por si esto pareciera poco, podemos añadir inteligencia artificial a la ecuación, lo que supondrá una revolución nunca vista en el mundo del videojuego.

Infinitos monos, infinitos mundos

Un famoso experimento mental conocido como el “teorema del mono infinito” dice que, si ponemos a un número infinito de monos a teclear en un ordenador un tiempo infinito, en algún momento uno de ellos escribirá el Quijote. Por puro y simple azar.

Cualquier libro, incluso la opus magna de Cervantes, no deja de ser una cadena muy larga compuesta por un número finito de caracteres, como son las letras del alfabeto. Dicho de otra manera, en un tiempo infinito, todo puede y debe ocurrir.

Nos podemos preguntar si este experimento es extrapolable a otro tipo de contenido. Una aproximación viene en forma de lo que se conoce como generación procedural. Es decir, partiendo de un algoritmo lo suficientemente complejo, se puede aleatorizar (en inglés, randomize) el resultado de dicho algoritmo para que cada vez que se ejecute el resultado sea distinto.

Este tipo de “resultado inesperado” se ha aplicado no sólo en ciencia, sino en artes como la música o la pintura. Sin embargo, es en el mundo del videojuego donde se le ha encontrado un especial atractivo.

Y es que un videojuego de tipo sandbox (es decir, de mundo abierto) requiere una colosal escala de modelado. Al fin y al cabo, pretendemos remedar un mundo entero en un entorno virtual. Por pura limitación técnica y de desarrollo, la mayoría de videojuegos sandbox tenían un número finito de elementos repetidos periódicamente.

Al igual que el Neo de Matrix veía un glitch en forma de déjà vu gatuno, empezaríamos a ver las mismas texturas, los mismos árboles, las mismas caras una y otra vez a lo largo de la partida. La posibilidad de aleatorizar estos elementos, al igual que en la vida real, resultaba demasiado tentadora.

Aunque hay no pocos ejemplos de estos intentos de generación procedural desde los años 80, probablemente el ejemplo por excelencia debido a la exorbitante escala sea el videojuego No Man’s Sky, desarrollado por Hello Games y publicado en 2016 para diversas plataformas.

En dicha obra, nos despertamos en un planeta desconocido con una nave espacial averiada, y nuestra primera misión es buscar recursos para repararla. Hasta aquí, todo bastante convencional. Rápidamente nos percatamos de que, al contrario que en otros juegos, si empezamos a caminar en línea recta no hay barreras invisibles, obstáculos insalvables, ni nada que evite salir de la zona modelada. De hecho, podríamos dar la vuelta completa al planeta si nos lo propusiéramos, encontrando fauna y flora extravagante por doquier.

Al conseguir salir del planeta, comprobamos cómo éste tiene una escala natural, es decir, de un tamaño comparable a Marte o la Tierra. En ese extraño Sistema Solar, encontraremos más planetas y lunas, a los que nos podemos desplazar mediante un ficticio motor de curvatura (o “hiperespacio”, a gusto del consumidor).

Aterrizando en otro de estos astros, encontraremos un nuevo mundo por explorar, diferente el anterior en clima, relieve, fauna, flora, eventuales civilizaciones inteligentes, etc. El giro final viene cuando nos preguntamos si podemos salir también de ese Sistema Solar, o incluso de la galaxia.

Descubrimos entonces que el juego contiene 255 galaxias individuales, con un total de 18.446.744.073.709.551.616 planetas, todos ellos visitables y diferentes entre sí. El número, por si a alguien no le apetece contar comas, son unos 18 trillones. Si 100 personas visitaran un planeta por segundo, tardarían unos 5000 millones de años en recorrer todos. Aproximadamente, la edad del planeta Tierra.

Hello Games consiguió crear un Universo entero con infinitas posibilidades sin tener que modelar explícitamente un solo planeta. Sólo empleó generación procedural para combinar de distintas maneras estos elementos individuales.

Ningún planeta es idéntico a otro, ni tiene la misma fauna, flora o civilizaciones. De hecho, al implementar las capacidades de juego online, cada jugador puede descubrir planetas y ponerles un nombre, o visitar a una amiga en la base submarina que ha creado en un Sistema Solar especialmente peculiar.

Los planetas son los mismos para todos, ya que el algoritmo es determinista – es la asignación del planeta inicial la que es completamente aleatoria. Como curiosidad, incluso la banda sonora del juego se genera proceduralmente, partiendo de miles de samples de la banda 65daysofstatic.

El (video)juego de Ender

No Man’s Sky es un sobresaliente ejemplo de generación procedural en los videojuegos, pero ya hace 6 años que se publicó. ¿Cómo podemos ir más allá? Es aquí donde entra la Inteligencia Artificial (IA).

En videojuegos, la IA suele hacer referencia al comportamiento de los NPCs (del inglés Non-Playable Characters, es decir, personajes no jugables), ya sean amigos, enemigos o neutrales. Por ejemplo, en un videojuego de carreras como Gran Turismo, la reacción del resto de coches ante las acciones del jugador. ¿Tiene la máquina un excelente nivel de pilotaje, o bien uno mediocre?

Es interesante ver cómo la IA ha evolucionado muy poco en los videojuegos. La mayoría de acciones son previsibles en cuanto logramos aprender el patrón. Incluso videojuegos con combates conocidos por su gran dificultad (como Hollow Knight, Cuphead o Dark Souls) presentan unas batallas muy sencillas a nivel conceptual, cuyo único desafío real radica en nuestra habilidad como seres humanos para ejecutar una secuencia concreta de comandos en el controlador/teclado en el tiempo exacto.

Lo mismo ocurre con el realismo de NPCs al hablar con el jugador, ya que tienen un número limitado de líneas de diálogo y animaciones. Es típico agotarlas en pocas iteraciones, cosa que jamás pasaría en el mundo real.

Esto cambiará radicalmente con la aplicación de IA, específicamente Deep Learning. Estos algoritmos permitirán a los estudios no sólo tener una inestimable ayuda para la programación de sus obras, sino generar de cero de forma autónoma arte conceptual, diálogo o incluso juegos enteros. Es decir, generación procedural, pero en lugar de estar sujetas a un algoritmo determinista hacerlo de forma orgánica y realista, tal y como lo haría un ser humano.

El comportamiento de los personajes será aprendido de nuestro modo de juego e implementado en tiempo real. El realismo será extremo en cuanto a la interacción con NPCs, ya que habrá líneas de diálogo infinitas. No estaremos sujetos a elegir entre unas pocas opciones predefinidas, sino que podremos entablar conversaciones naturales con cualquier personaje.

Además, softwares como StyleGAN, diseñado por NVIDIA y publicado en código abierto en 2019, permite crear caras fotorrealistas con una red neuronal generativa antagónica (en inglés, Generative Adversarial Network), aumentando exponencialmente la inmersión en la narrativa propuesta.

En cierta manera, cada persona jugará a un juego distinto, ya que una misma obra se configurará en función de dicho jugador.

Dado que la IA estará siempre aprendiendo, no sólo generará constantemente nuevo contenido para el juego sino que, en cierta manera, el juego nunca estará “acabado”; sólo cuando lo abandonemos se dejará de construir y actualizar a sí mismo. No obstante, debemos tener una cierta cautela a la hora de aplicar Deep Learning en los videojuegos.

Por ejemplo, un enemigo que aprenda de nuestros movimientos sería capaz de volverse invencible rápidamente, puesto que enseguida verá los fallos de nuestra estrategia y adaptará su estilo, como es el caso de Sophy, la nueva IA de Gran Turismo, capaz de derrotar a pilotos profesionales.

Sólo el tiempo dirá hasta dónde podemos llegar combinando generación procedural e IA, pero está claro que el futuro será muy realista.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.