En esta página de Github un grupo de programadores muestra el código de un proyecto consistente en un Pac-Man que evoluciona utilizando algunas técnicas como la evolución gramatical y la optimización multiobjetivo.
Ambas son técnicas de inteligencia artificial que se utilizan para evaluar cómo se comporta un código ante una función objetivo que se le ha planteado (ej. «comerse todas las pastillas») especialmente cuando hay varios objetivos: «que no te coman», «comerse a los fantasmas», «comerse las frutas», etcétera.
Tradicionalmente en los videojuegos esto se ha venido haciendo asignando una especie de «personalidad» o «comportamiento» a los personajes. En el caso de Pac-Man de toda la vida es bien conocido que cada fantasma tiene una forma de comportarse: huir del Pac-Man, ir directo a por él, etcétera. También cambian de comportamiento según estén en fase de «caza» o huyendo. Las limitaciones del software original no daban para más estrategias.
Para el experimento se utilizó Ms. Pac-Man, una variante del juego original que parece irle bien a los programadores. El comportamiento inicial de los personajes se hace evolucionar según los objetivos marcados: sobrevivir el mayor tiempo posible, comerse la mayor cantidad de pastillas, cazar cuantos más fantasmas mejor, etcétera.
La diferencia entre las dos versiones que se ven en pantalla es que emplean dos gramáticas diferentes: una tiene los objetivos más genéricos y globales, la otra más específicos y detallados. Según los resultados se puede ver si viene mejor una u otra. Mientras tanto, el trabajo sigue en marcha.