Inteligencia Artificial en Videojuegos móviles

Inteligencia Artificial en Videojuegos móviles

Tekken screenshotPara garantizar el éxito comercial de los videojuegos para móviles es necesario asegurar un algoritmo de Inteligencia Artificial que suponga al jugador un desafío ni demasiado elevado ni demasiado bajo.

Pese a que ya existen soluciones óptimas para PC y videoconsola, trasladarlas a dispositivos móviles constituye un verdadero reto dadas las limitaciones que imponen al desarrollador. Además hay que considerar cierta clase de juegos conocidos como juegos con información imperfecta. Por ejemplo el póquer, donde los jugadores no tienen información completa del estado del juego.

En estos casos muchos de los agentes IA pueden presentar un comportamiento más aleatorio que inteligente, por lo que se precisa el uso de algoritmos de inferencia por parte de la máquina que le permitan intuir las intenciones del oponente, tal y como hacemos los seres humanos.

La mejor forma en la que un algoritmo IA obtendría información de su oponente sería infiriendo información sobre su estilo de juego y de su tendencia a reaccionar ante determinadas situaciones. Por tanto el algoritmo de aprendizaje iría compilando un perfil del comportamiento de dicho jugador. Así, cada comportamiento podría ser identificado con una clase o categoría: jugador agresivo, esquivo, etc. Al fin y al cabo de lo que se trata es de un problema de reconocimiento de patrones.

Esquema de reconocimiento de patrones

Este conocimiento podría ser usado en futuras partidas para predecir algunos movimientos, por lo que el sistema iría aprendiendo de su propia experiencia.

Hay básicamente dos métodos de predicción:

  1. discriminativo
  2. no-discriminativo.

Predicción discriminativa

Uno de los métodos de clasificación discriminativa más eficaces son las máquinas de soporte vectorial o SVM (Support Vector Machine). Sin entrar en detalles matemáticos, un algoritmo basado en SVM construye un modelo capaz de predecir si una muestra nueva (cuya categoría desconocemos) pertenece a una categoría o a la otra.

Pacman screenshot

Estas predicciones presentan algunas de las ventajas de las redes neuronales al utilizar un reducido número de parámetros: la solución puede ser expresada como una forma muy simple de combinación de funciones que dependen de las instancias de entrenamiento (muestras) en el espacio original. Su principal problema es que el rendimiento se reduce notablemente cuando el conjunto de entrenamiento es muy grande, por lo tanto funcionaría bien en videojuegos relativamente sencillos como por ejemplo un PacMan.

Predicción no-discriminativa

Por el contrario, el modelo no-discriminativo o bayesiano estimaría la predicción en base a la regla de Bayes (la probabilidad de que un jugador realice tal movimiento, dado que antes ha realizado este otro) y entonces cada nueva instancia se compararía con la clase más probable.

Así, el sistema no discriminativo tiende a ser más eficiente en dispositivos móviles, ya que consume menos recursos computacionales que los métodos discriminativos, a pesar de que estos últimos presenten un mejor desempeño deliberativo. Por tanto se adapta mejor a juegos donde necesitamos un mayor procesamiento de datos en tiempo real con muchas fuentes de incertidumbre (por ejemplo el mítico StarCraft, que por cierto estará disponible muy pronto en Android mediante controles táctiles).

Starcraft screenshot

Si os interesa profundizar en este tema os recomiendo la lectura de los siguientes artículos:

  • Bayesian Programming and Learning for Multi-Player Video Games. Gabriel Synnaeve | Link
  • Enhancing Artificial Intelligence on a Real Mobile Game, Fabio Aiolli ,Claudio E. Palazzi | Link
Previous LEAP: Agentes Inteligentes en dispositivos móviles
Next Integrar Motores de Inferencia en Android

About author

Angel
Angel 170 posts

Siempre quise ser inventor y escritor. Pero mientras tanto trabajo en Alemania como Ingeniero de Telecomunicaciones, y de vez en cuando escribo aquí sobre Ciencia y Tecnología. Me gustan los robots y los libros (analógicos).

You might also like

Tutorial 0 Comments

Cómo descargar un backup de todas tus publicaciones de Tumblr (y guardarlo en el formato que quieras)

Tras una breve pero tortuosa investigación, os comparto la solución a un problema que parece estar poco documentado: cómo guardar todas las publicaciones de una cuenta de Tumblr en un

Android 1Comments

Navidades sin Nexus 4

Pésima gestión de Google en la distribución de hardware. La Nexus 4 está agotada y la fecha de vuelta es todavía una incógnita

Desarrollo 0 Comments

Cómo habilitar Telnet y FTP en Linux.

Siempre hay una primera vez para todo, en este caso estoy seguro de que en algún momento todos nos dimos algún cabezazo y alguna vuelta por Internet para comprender en

Tecnologia & Ciencia 0 Comments

[Tasker] Reduce el consumo de datos de tu móvil de forma radical

En artículos anteriores estuvimos viendo la utilidad de Tasker, una herramienta (para mí es más que una app) que nos sirve para automatizar muchas de la acciones que solemos hacer

Desarrollo 3 Comments

¿Qué es un TPV Virtual y qué le podemos exigir?

Últimamente hemos recibido consultas de algunos empresarios y desarrolladores que desean instalar una plataforma software que les permita iniciar actividades de comercio electrónico. En ese sentido, hay muchísimas soluciones cuya

Amazon 0 Comments

La guerra por el mercado de las tablets

La guerra de las tablets se traslada a todos los frentes con la llegada del iPad Mini a este ecosistema y también a las 10 pulgadas donde quiere hablarle de tú a tú a Apple con el lanzamiento del Nexus 10

Generales 0 Comments

Google I/O 2014: Software, software y más software

El esperado evento Google I/O 2014 no ha dejado indiferente a nadie. Muchísimas novedades en cuanto a sofware y ninguna en cuanto a hardware, ni Nexus 8 ni sustituto del obsoleto

Desarrollo 8 Comments

Aprende Android: crea un cliente HTTP con HttpURLConnection

¿Estás desarrollando una aplicación para Android? ¿Necesitas que tu aplicación se comunique con algún servidor solicitándole algún servicio y gestionar la respuesta recibida? Sí ese es tu caso, puede que

Desarrollo 2 Comments

Qué es y cómo funciona Symfony2: Conceptos claves

Symfony2 es uno de los Framework más potentes que existen para desarrollar aplicaciones web. Punto. Pero, ¿cómo funciona? ¿Qué es realmente? Con este artículo, pretendo que te quede claro como

1 Comment

Leave a Reply