Cómo hacer una IA que juegue un juego

Es algo complicado y depende del juego que quieras jugar.

Si el juego se está ejecutando en su computadora, y desea que la IA también se pueda ejecutar en la PC, primero deberá poder acceder al contenido de la ventana del juego para que su IA pueda ver lo que está sucediendo. He hecho esto con algunos juegos diferentes en máquinas Windows, juegos que se ejecutan en emuladores y en ventanas del navegador. Luego puedes usar varias técnicas de reconocimiento de imágenes para que tu IA determine qué está sucediendo en el juego a partir de esa imagen.

Como ejemplo, hace unos años escribí un simple script de Python para jugar el juego de navegador 2048. Esto fue bastante fácil. Cada mosaico de números tiene un color diferente, por lo que pude hacer que mi código determinara completamente el estado del tablero al muestrear solo un píxel en cada mosaico. Luego, solo tenía que ejecutar un código predictivo para ver los posibles estados del tablero varias vueltas adelante y elegir el mejor movimiento para tomar.

Enviar los comandos de vuelta al juego me obligó a resolver algunas llamadas al sistema para generar eventos de teclado y enviarlos de vuelta a la ventana del navegador en la que se estaba ejecutando el juego. En general, fue un proyecto simple y divertido.

También trabajé en un proyecto más ambicioso para hacer una IA que jugara juegos de Pokémon de primera generación que se ejecuten en un emulador. Técnicas básicas similares: tomar la imagen de la ventana del emulador, determinar el estado del juego y luego devolver las pulsaciones de teclas, pero la lógica del juego era mucho más complicada.

Si desea que la IA se ejecute en un hardware diferente al del juego, por ejemplo, jugar una consola o máquina arcade, también necesitará desarrollar algo de hardware. Tendrá que encontrar una forma de obtener el contenido de la pantalla, que incluso podría consistir en apuntar una cámara web a la pantalla. El envío de comandos de regreso probablemente requerirá soldar cables en botones y joystick y descubrir la interfaz necesaria para que su IA los active. Aunque si te sientes realmente mecánicamente ambicioso, puedes usar servos y solenoides para presionar los botones. He visto esto hecho para la caza brillante en juegos de pokemon de última generación.