Estoy de acuerdo con @engel lex: hoy se abusa del término IA para referirse a cualquier mecánica que sea capaz de mover un NPC (No Player Character -jugador no humano-).
El concepto de IA ha cambiado en las últimas décadas, pero hoy en día, aplicado a los vídeo juegos podríamos resumirlo en lo siguiente:
1- Un NPC debe tener "conocimiento" del "entorno" en donde se mueve o vive. Ese "conocimiento" puede ser, por ejemplo, sus coordenadas espaciales dentro del "entorno", así como las coordenadas espaciales del jugador humano o de sus compañeros NPC. El "entorno" es el medio ambiente donde se desarrolla el juego. El NPC puede tener un conocimiento limitado (restringido en el espacio o en el tiempo, por ejemplo, no ver al jugador hasta que esté muy cerca).
2- Una IA debe mantener un conjunto de "estados" internos, y estar en uno de ellos. Podría estar a la "espera", acechando, a que se cumplan ciertas condiciones, o podría estar a la "caza" del jugador. Podría "atacar" o "huir".
3- La IA cambia de "estado" en función de: a) el estado anterior y b) el "conocimiento" del "entorno". Un NPC puede pasar del modo de "espera" a "ataque" si a) está en modo de "espera" y b) la distancia al jugador se reduce a un cierto límite.
4- En función del "estado" en que se encuentra el NPC, ésta modifica el "entorno". Por ejemplo, si está en modo "ataque", modificar el entorno puede ser moverse hacia el jugador, cambiando sus coordenadas.
Este tipo de "retroalimentación" entre el "entorno" y el NPC, y el cambio de "estado" del propio NPC es la que permite que podamos llamar al sistema una "IA mínima" para vídeo juegos.
Las otras técnicas modernas de IA, como las redes neuronales, aprendizaje automático, etc., se podrían también meter, en la parte de "cambio de estado", es decir, ayudan al NPC a decidir su nuevo estado.
Un ejemplo de aprendizaje automático es la del
Q-learning, para encontrar el camino de menor coste (o camino más corto) para salir de un laberinto, edificio o ir hacia el enemigo.
El lenguaje que utilices no importa, salvo que algunos lenguajes facilitan mucho más la gestión de estructuras de datos de varias dimensiones.