Ubisoft está usando IA para detectar bugs antes de que ocurran

Utilizando técnicas de Inteligencia Artificial, Ubisoft ha desarrollado una herramienta que les permite detectar bugs en sus videojuegos.

Detectar fallos en el desarrollo software no es tarea fácil. A medida que el código se va complicando, los requisitos crecen y el número de personas involucradas es mayor, la probabilidad de que aparezcan nuevos fallos y casos límite aumenta.

Ubisoft si por algo es conocida (aparte de por grandes sagas como Assasins Creed, FarCry, Prince of Persia o Tom Clancy), es por la cantidad de bugs que se les cuelan en sus juegos (en Youtube se pueden encontrar numerosos vídeos al respecto; algunos la llaman “Bugisoft”).

Es por ello que están esforzándose en aumentar la calidad técnica de sus juegos. En la última conferencia de Ubisoft en Montreal, la compañía presentó un nuevo asistente usando técnicas de inteligencia artificial para sus desarrolladores.

El asistente: Commit Assistant

La divisón de I+D de Ubisoft Montreal, La Forge, ha entrenado al asistente (denominado Commit Assistant) con casi 10 años de código extraido directamente de sus repositorios, consiguiendo así que éste aprenda de errores previos cometidos y disminuyendo (teóricamente) la cantidad de bugs que llegan a los testers finales.

La premisa del asistente es muy simple: si detecto automáticamente en el código patrones parecidos a otros que ocurrieron en el pasado, esto indica que el desarrollador ha introducido (o va a hacerlo en breve) un bug similar a otro que ya fue arreglado en el pasado. En palabras del director de la división Yvez Jacquier:

Todo se basa en comparar líneas de código que hemos creado en el pasado, los bugs que fueron creados en ellas, los bugs que fueron corregidos, y encontrar una forma de enlazarlo todo para proporcionar una super IA a los desarrolladores.

Ubisoft espera reducir con este asistente una de las tareas más costosas en el desarrollo de videojuegos. La compañía afirma que eliminar bugs durante la fase de desarrollo requiere mucho personal y puede llevarse el 70% de los costes del proyecto (aquí supongo que no serán fijos, sino que cuantos más errores haya que corregir, más se alarga el desarrollo, ergo hay que pagar más sueldos, contratar personal adicional, etc).

De todas maneras, Commit Assistant está en una fase muy temprana todavía. Es necesaria mucha potencia de cálculo y muchos datos para hacer predicciones cada vez más correctas e iterar sobre los modelos matemáticos para hacerlos más efectivos. Ubisoft está empezando a usarlo en grupos reducidos de desarrollo, pero aún no hay datos del verdadero impacto que está teniendo en el desarrollo de sus videojuegos.

A todo esto además se une el factor humano: ¿verán los desarrolladores con buenos ojos que una inteligencia artificial les diga “esto que estás programando tiene un bug”? Ubisoft busca que los desarrolladores vean el asistente como una ayuda más que como un problema. En palabras de Jacquier:

Queremos que cuando le enseñemos a un programador estadísticas que digan “hey! aparentemente estás creando un bug”, este sea capaz de entender que es una herramienta para ayudarle e ir más rápido. Lo hemos concebido como una herramienta más. Si no quieres usarlo, no lo hagas; es sólo otra herramienta.

La empresa está apostando por la inteligencia artificial como método para acelerar los procesos de desarrollo. Además de Commit Assistant, han desarrollado también otros programas para tareas más simples como evitar que los agentes choquen unos con otros mientras caminan (esto podemos verlo en cualquier juego de mundo abierto como Assasins Creed o Watch Dogs).

Commit Assistant ha sido desarrollado conjuntamente con la Universidad de Concordia, y se ha publicado el paper de cómo funciona. Pese a las bondades del asistente, es bastante obvio que no es para todos los públicos.

El principal problema (como en muchos problemas de Inteligencia Artificial) son los datos con lo que hay que dotar al sistema para que sea efectivo. No es tarea baladí poseer miles de millones de líneas de código de años y años de desarrollo, así que el foco principal del asistente seguramente sean estudios grandes tipo Rockstar o Electronic Arts. Pero si este tipo de tecnologías madura lo suficiente podremos ver en un futuro tiempos menores de lanzamiento, y puede que juegos más depurados.

Enlaces relacionados