GameNGen: el ‘Game Engine’ neuronal

Todo el mundo sabe que DOOM es capaz de correr en cualquier dispositivo, ese primer FPS que se puede ejecutar en ‘prácticamente’ en cualquier dispositivo. Ahora han conseguido que funcione en una red neuronal, y funciona bastante bien!

GameNGen, un motor neuronal

Para crear un videojuego hace falta un motor, no es estrictamente necesario pero facilita mucho la vida, ayuda con las físicas, el mapa, la relación con los objetos, iluminación…
Existen varios motores famosos como:

  • Unity: un motor multiplataforma que te permite crear videojuegos con C#
  • Unreal Engine: Un motor que permite añadir unos gráficos increíbles, más pensado para juegos 3D, utiliza C++ o su sistema de Blueprints para programar
  • Godot: Un motor multiplataforma open source con su propio lenguaje de programación

Y ahora entra GameNGen, bueno, quizá no del todo…

GameNGen no es tanto un motor, sino una IA que ha aprendido a simular un juego en concreto, en este caso el mítico DOOM. Para crearlo han utilizado 2 modelos:

  1. DATA COLLECTION: En este primer modelo han entrenado a una IA que aprenda a jugar al juego, recopilando todas las sesiones del juego, acciones, observaciones…
  2. GENERATIVE DIFFUSION MODEL: El segundo modelo, la bestia que genera la imagen. Con los datos entrenados en el primer modelo, se entrena a este segundo modelo basado en Stable Diffusion, sí, esa IA que te genera imágenes a partir de un prompt. Una vez reentrenado con esos datos y con el historial de acciones, este modelo es capaz de generar la siguiente imagen intentando siempre mantener la coherencia.

Voilà, ya esta todo hecho, ahora puedes jugar a DOOM en una red neuronal y un hardware que te ha costado un riñón, pero lo más sorprendente es que el modelo de difusión ha entendido el juego. Para poder jugar al juego, el programa necesita renderizar las imágenes para que lo puedas ver, y esas imágenes son renderizadas gracias al conjunto de instrucciones que envía el motor al driver gráfico, pero en este caso tenemos una red neuronal que se imagina como debería ser el siguiente fotograma, solamente con los datos que ha visto. Nadie ha programado como tal el juego, la IA solo ha entendido que al realizar cierta acción hay un patrón en las imágenes que se repite, y solo con eso es capaz de emular un juego completo con coherencia.

GameNGen DOOM


Esto se puede parecer mucho a como se generan las imágenes, imagina una IA que aprende a dibujar gatos, si solo le enseñas un dibujo solo podrá generar ese mismo dibujo, en cambio si le enseñas muchos podrá aprender a generar otros gatos, entendiendo todas las características de un gato, pudiendo generar un dibujo que no ha existido hasta ese momento. Esto podría extrapolarse a otras IA que generen otro tipo de dato, incluso juegos?

El futuro de los Game Engine

Parece que el futuro de los Game Engine esta por cambiar, ya que pueden incluir herramientas similares para poder generar ciertas partes en los videojuegos. Existen diferentes herramientas por IA que ya ayudan a los desarrolladores a hacer que su videojuego se vea mejor, como el dlss, pero esto es diferente.

Actualmente tiene muchos fallos de consistencia a largo plazo, como por ejemplo enemigos que reaparecen, mapas que se modifican… No creo que el futuro de esta tecnología sea suplantar a los game engine actuales, sino a complementarlo de alguna forma. Obviando varios de los problemas actuales, y de la ilusión que existe de que esto te cree tus propias historias, tu propio juego en ese mismo momento, creo que podría ayudar a generar de forma dinámica y sin programar ciertos aspectos de videojuegos de un solo jugador.


¿Si se puede entrenar una IA con imágenes, se podría entrenar con mecánicas? Podrá crear tus propias mecánicas, jugadores, NPC, mapas con lo que le describas, esto será consistente cada vez que juegues? O tiene un potencial mucho más grande en juegos rejugables?

Y si pasamos al multijugador o online también empiezan a surgir otros problemas, como la sincronización entre jugadores, realmente es bueno tener un modelo que te genere y emule un juego si quieres jugar con otra persona? como verán el mismo mapa? Podrán interactuar de la misma forma con los mismos NPC?

Estas son algunas de las incógnitas que pueden existir si hablamos de incorporar este tipo de modelos y dejarlos que generen todo como si un game engine se tratara.
Realmente lo veo más como un complemento, y no como un substituto a futuro como algunos pueden llegarse a imaginar, independientemente de los problemas, surge una pregunta: ¿Cómo será el desarrollo de videojuegos del futuro?


Link al estudio y al paper

Si te ha gustado inscríbete en mi newsletter y no te pierdas nada!

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *