Razón Artificial

La ciencia y el arte de crear videojuegos

Introducción a la IA en los juegos

Escrito por adrigm el 25 de octubre de 2010 en Desarrollo Videojuegos, Inteligencia Artificial | 2 Comentarios.

En el sentido más amplio la mayoría de los juegos incorporan algún tipo de inteligencia artificial (IA). Los desarrolladores han usado durante años la IA para dar vida a personajes aparentemente inteligentes en innumerables juegos. Desde los los fantasmas del clásico Pacman, los bots del juego en primera persona Unreal y muchos más de diferentes estilos. La gran variedad de géneros y personajes distintos requiere una interpretación bastante amplia de lo que se considera IA en un juego. De hecho, es uno de los debates de la IA, que se considera realmente inteligencia artificial.

Algunos desarrolladores consideran tareas como la búsqueda de caminos como parte de la IA del juego. Steven Woodcock dijo en en la “Game Developer’s Conference” de 2003 que algunos desarrolladores aún consideran la detección de colisiones como parte de la IA. Claramente existen muchas interpretaciones de lo que se considera IA.

Nosotros vamos a tener una interpretación amplia de la IA y vamos a incluirlo todo como parte de la misma, desde la simple persecución y evasión para patrones de movimientos hasta las redes neuronales y algorítmos genéticos. La IA de videojuegos probablemente se adapte de mejor a la IA débil (ver más abajo). Sin embargo, se puede pensar en en la IA de juegos en términos aún más amplios.

En los juegos no siempre estamos interesados en dar a los personajes no jugadores inteligencia de nivel humano. Tal vez estamos escribiendo código para controlar las criaturas no humanas, tales como dragones, robots, o incluso roedores. Además, ¿Quién dice que siempre tenemos que hacer a los jugadores no-humanos inteligentes? Hacer algunos personajes no inteligentes puede agregar al juego variedad y riqueza. Aunque es cierto que a menudo la IA de los juegos esta llamada a resolver problemas bastante complejos, podemos emplear la IA para cosas mas simples como tener personajes con diferentes personalidades o que actúen según nuestras acciones.

Definición de IA

La pregunta ¿Qué es la inteligencia artificial? No es fácil de responder. Si usted busca inteligencia artificial en un diccionario probablemente encuentre algo parecido a lo siguiente: “La capacidad de un ordenador u otra máquina para llevar a cabo tareas que normalmente se considera que requieren inteligencia”. Esta definición proviene de The American Heritage Dictionary del Idioma Inglés, Cuarta Edición (Houghton Mifflin Company). Sin embargo otras fuentes definen la inteligencia artificial como el proceso o la ciencia de la creación de máquinas inteligentes.

Desde otra perspectiva, es apropiado pensar en la IA como el comportamiento inteligente exhibido por el equipo que ha sido creado, o tal vez los cerebros artificiales detrás de ese comportamiento inteligente. Pero incluso esta interpretación no es completa. Para algunas personas, el estudio de la IA no es necesariamente para el propósito de crear máquinas inteligentes, sino con el propósito de obtener un mejor conocimiento de la naturaleza de la inteligencia humana. Y otros métodos de estudio de inteligencia artificial para crear máquinas que presentan una forma limitada de la inteligencia.

Esto plantea la pregunta: “¿qué es la inteligencia?” Para algunos, la prueba de fuego para la IA es lo cerca que está a la inteligencia humana. Otros sostienen que los requisitos adicionales deben cumplirse para que una máquina para ser considerado inteligente. Algunas personas dicen que la inteligencia requiere una conciencia y de que las emociones se encuentran estrechamente ligados a la inteligencia, mientras que otros dicen que la capacidad de resolver un problema que requiere de inteligencia si llegara a resolverse por un ser humano no es suficiente, también debe aprender y adaptarse para ser considerado inteligente.

LA IA que cumple todos estos requisitos se considera IA Fuerte. A diferencia de la IA Fuerte, existe la IA a débil que incluye una gama más amplia de propósitos y tecnologías. Los juegos entran en la categoría de la IA débil.

La conclusión es que la definición de IA es bastante amplia y flexible. Todo lo que da la ilusión de inteligencia a un nivel adecuado hace los juegos mas inmersivos, desafiantes y, lo más importante, más divertidos.

IA determinista vs no determinista

La IA de los juegos se puede considerar de dos tipos, determinista y no determinista.

Determinista

El comportamiento es especificado y predecible, no hay ninguna incertidumbre. Un ejemplo de IA determinista es un algoritmo de persecución simple. Usted puede explícitamente designar un personaje no jugador para moverse hacia algún punto objetivo. El algoritmo consistirá en moverse por los ejes x e y hasta alcanzar el punto objetivo.

No determinista

Es lo contrario al determinismo. El comportamiento tiene un grado de incertidumbre y es algo imprevisible (el grado de incertidumbre depende de el método de IA empleado y lo bien aplicado que esté). Un ejemplo de comportamiento no determinismo es un personaje no jugador que aprende a adaptarse a las tácticas bélicas de un jugador. Tal estudio podría ser una red neuronal o un algoritmo genético.

Las técnicas deterministas son el pan y la mantequilla de la IA de videojuegos. Estas técnicas son predecibles, rápidas y fáciles de implementar, entender, probar y depurar. A pesar de que tienen mucho a su favor. Las conductas deterministas hacen que todo tenga que programarse de manera explícita por los desarrolladores. Además, los métodos deterministas no facilitan el aprendizaje o la evolución y después de un rato de juego los comportamientos deterministas tienden a volverse predecibles.

En los métodos no deterministas se facilita el aprendizaje y el juego se vuelve más impredecible. Además los desarrolladores no tienen en el código explícitamente todas las conductas posibles en todos los escenarios posibles. Los métodos no deterministas pueden explorar y aprender por su cuenta, y pueden promover un comportamiento emergente o que no siga instrucciones explícitas. Las redes neuronales son buenos ejemplos de esto.

Los desarrolladores tradicionalmente han usado poco la IA no determinista, aunque esto está cambiando poco a poco. La imprevisibilidad es difícil de probar y depurar, ¿Cómo se puede probar todas las posibles variaciones de la acción del jugador para asegurarse de que el juego no hace cosas estúpidas en algunos casos?

Al menos hasta hace poco, otro factor que ha limitado el desarrollo de juegos de IA es el hecho de que los desarrolladores se han centrado la mayor parte de su atención en la calidad de los gráficos. Como resultado, el enfoque como en el desarrollo de mejores y más rápidas técnicas gráficas, incluyendo la aceleración de hardware, ahora puede permitirse más recursos que deben asignarse hacia el desarrollo de mejores y más sofisticada IA. Este hecho, junto con la presión para producir el exitoso juego que viene, está animando a los desarrolladores de juegos para explorar más a fondo las técnicas no deterministas.

Estableciendo técnicas de ia en juegos

Tal vez la técnica más utilizada sea hacer trampa. Por ejemplo, en un juego de simulación de guerra, el ordenador puede tener acceso a toda la información sobre sus oponentes humanos de ubicación de su base, el tipo, número y ubicación de las unidades, etc, sin tener que enviar exploradores para reunir información de inteligencia como debe hacer el jugador humano. Hacer trampa de esta manera es común y ayuda a dar al ordenador una ventaja frente a los jugadores humanos inteligentes. Sin embargo, el engaño puede ser malo. Si es obvio para el jugador que el equipo está haciendo trampa, el jugador es probable que asuma sus esfuerzos son inútiles y perder interés en el juego. Además, el engaño no balanceado puede dar a la computadora demasiado poder, lo que hace imposible que el jugador pueda vencer a la computadora. Una vez más, el jugador puede perder interés si ve que sus esfuerzos son inútiles. Hacer trampa debe ser equilibrado para crear un suficiente de un desafío para el jugador para mantener el juego interesante y divertido.

Por supuesto, el engaño no es la única técnica de IA bien establecida. máquinas de estados finitos son una técnica de IA muy usada en todas partes. En otros artículos las veremos en detalle, pero básicamente la idea es enumerar un montón de acciones o estados de personajes controlados por computadora y ejecutarlos o de transición entre ellos utilizando condicionales que comprueban varias condiciones y criterios.

Otras técnicas usadas habitualmente es la lógica difusa, una máquina de lógica difusa mejora la maquina de estado finito y hace el juego menos predecible. Por ejemplo, podemos tener la condición de que si distancia=10 y vida=100 entonces atacar, pero esto es muy predecible. Mejor hacer algo como si distancia=cerca y vida > 75% entonces atacar. Esto hace que el juego sea menos predecible ya que cerca puede variar según el enemigo y su capacidad de ataque y la vida puede ser diferente de uno a otro. En otro artículo lo veremos más a fondo.

Por último no podemos olvidarnos te algo elemental en casi todo los juegos como es la búsqueda de caminos por parte de los no-jugadores, caminos que sean rápidos y eficientes. Hemos visto variso artículos de pathfinding.

Este artículo es una introducción a la programación de inteligencia artificial para videojuegos, en artículos posteriores empezaremos a explicar algunas de las técnicas aquí nombradas y otra muchas.

2 Comentarios en "Introducción a la IA en los juegos"

  1. […] el artículo anterior vimos una introducción a la diferentes técnicas de inteligencia artificial aplicadas a los […]

  2. […]  Ventajas y desventajas  ,Información IA wikipedia  ,Hacia dónde nos lleva la IA  , diapositivas con información , la IA en los videojuegos  […]

Deja un comentario