Inteligencia Artificial (I)
Jueves, Diciembre 13th, 2007Cerveza en mano me dispongo a divagar hoy sobre la inteligencia artificial aplicada a los videojuegos.
La correcta definición sería que la inteligencia artificial (IA) consiste en técnicas de programación orientadas a conseguir que los personajes no controlados por el jugador tengan un comportamiento inteligente e independiente (no ligado a comportamiento basado en scripts).
La IA en juegos ha avanzado bastante y muchos de ellos realmente han conseguido el objetivo…esto es que se parezcan fiélmente al ser humano teniendo un comportamiento estúpido y errático.
¿Y cómo se diferencia un scripting de verdadera IA? Normalmente a mi me encanta pasar tiempo observando PNJs (personaje no jugador) en los juegos que presumen de la misma. Probablemente eso me convierta en un voyeur de IA (bueno, al menos es mejor que los de playa). En RPGs, si sigues a un PNJ no agresivo por su quehacer diario, averiguas facilmente si su comportamiento es IA o scripted. Se levanta, se da el mismo paseo por los mismos sitios, dice las mismas cosas y se acuesta a la misma hora = scripted. Se levanta, pasea por sitios distintos, ve cosas y habla de lo que ha visto con otros PNJs, come cuando tiene hambre y si no tiene la comida la roba = IA.
En juegos de acción en primera persona, si se queda plantado disparándote con una pistolita mientras tienes un bazooka en la mano suele ser script. Si te trata de rodear, se esconde, y huye cuando no tiene munición o está rodeado suele ser IA.
Pensándolo en frio, en realidad todo es scripted. Pero para mi la IA es cómo un comportamiento a base de scripts mas trabajado. En algunos juegos resulta muy divertido jugar con la IA. Por ejemplo en Oblivion es relativamente fácil crear un caos en una ciudad. Invocas un trasgo en medio de la ciudad y la gente corre, otros van a golpearle y si los que golpean se golpean accidentalmente entre ellos se lían igualmente a mamporros. Hay toneladas de videos de revueltas ciudadanas en dicho juego (p.e. este ).
En juegos de estrategia la IA está más trabajada, ya que a mi parecer resulta relativamente fácil emular el comportamiento humano en juegos tan digamos ‘cuadriculados’. Supongo que el desafío consiste en crear un comportamiento que resulte no-perfecto y no condicionado a conocer que está haciendo el jugador real. Debe ser un desafío interesante de programación el programar un comportamiento de las tropas controladas por IA incondicionado por las acciones del jugador real. No percibir diferencia entre jugar contra otro humano o contra la IA tiene que resultar complejo (aunque el límite de factores implicados en este tipo de juegos puede facilitarlo).
Algunos juegos más antiguos no hacían uso en absoluto. En RPGs, en las ciudades siempre era de día y los PNJs mercaderes estaban en el mismo sitio continuamente, horas y horas de juego, sin comer, sin beber y sin irse a Oropesa de vacaciones a gastar el dinero que les pagabas…por no mencionar que los PNJs hostiles siempre estaban en la misma posición esperando a activarse cuando estuvieras a x distancia de ellos. Y en juegos de acción no importaba desde dónde flanquearas una torreta, siempre te percibirían mediante extraños e invisibles ojos en las orejas o la nuca.
De momento yo me quedo con una escena (Gothic III u Oblivion u otro, no recuerdo) en la que, en uno de mis seguimientos, un PNJ se fue de paseo por fuera de la ciudad, vio un cangrejo y al volver de la ciudad le contó al primer PNJ que se encontró que había visto un horrible cangrejo. Recuerdo que me provocó un ataque de hilaridad (aunque bien es cierto que pudo ser provocado por el consumo de cierta sustancia psicotrópica real más que por la propia situación, who knows).
Seguiré divagando sobre esto, que el tema tiene tela. Hasta entónces seguiré con mi comportamiento scriptidiano de levantarme, afeitarme, ducharme, ir a currar y volver a casa para ver por Internet si me ha tocado la Primitiva. Vaya script más triste, no llego ni a IA.
Saludos.