Un RTS (y los videojuegos en general pero específicamente este género por las características que lo comprenden) resulta ser un buen ambiente de prueba para temas relacionados con la inteligencia artificial y específicamente lo relacionado con machine learning y opponent modeling.
Si se busca desarrollar inteligencia artificial para que esta compita contra otra similar se busca crear los modelos más precisos y que las acciones dentro del juego las aprovechen al máximo para lograr vencerlo. Sin embargo, cuando se enfrenta a jugadores humanos el enfoque puede cambiar de cierto modo debido a que depende de lo que se desee proporcionar al jugador y el nivel que este busca para divertirse y adentrarse en el juego.
Para que un jugador encuentre un juego agradable y fascinante este necesita reunir ciertas características como lo son:
-
El juego debe contener un tema interesante o al menos no desagradable al jugador
-
El género del juego debe ser atractivo al usuario
-
La dificultad del juego debe ser suficiente para que el jugador encuentre un reto en él pero no al grado de resultar frustrante para el jugador.
-
Debe existir suficiente variedad de elementos para que el juego sea variado pero no a un grado excesivo en el que se pierda atención en elementos más imperativos (como la defensa y el ataque) por estar buscando entre menús los elementos que se pueden desarrollar.
-
Es deseable que exista un tutorial o algún medio de ayuda para el usuario tanto para aprender a jugar el juego (cuando no se conoce) como cuando se está jugando y se requieren pequeñas descripciones para los elementos en pantalla.
-
Debe ser claro lo que ocurre en el ambiente y es bueno cumplir estándares sobre el género del juego para crear cierta familiaridad con el jugador.
-
Si el juego esta diseñado para ser de un solo jugador debe contener varios niveles (escenarios) para mantener la atención del jugador.
Para el caso preciso de los RTS es conveniente seguir lo siguiente:
-
Deben existir varios tipos de unidades en el juego para diversificar la experiencia del usuario.
-
Es bienvenida la existencia de varias razas dentro del juego.
-
Estas razas pueden tener unidades totalmente distintas (como Starcraft) o unidades iguales pero con un árbol de tecnologías que las distingan (Age of Empires II aunque cada raza tiene al menos una unidad extra que los distingue) con el fin de crear cierto balance en el juego y mantenerlo entretenido.
-
El balance entre unidades puede ser un tema delicado y que puede requerir mucho tiempo y pruebas el llevarlo a cabo.
-
Debe existir un límite claro de unidades para no sobresaturar la computadora que se encuentre ejecutando el juego entre otros temas a facilitar.
-
Existencia de estándares precisos para este juego como el mini mapa, las formaciones de unidades, ayudas, el uso del mouse para seleccionar y controlar, etc.
Por su parte en cuanto a la rama de Machine Learning, Opponent Modeling y Predicción se debe considerar lo siguiente:
-
Debe poder obtenerse datos del entorno, mientras mayor sea el número de datos se tiene más posibilidades de encontrar patrones y elegir los datos significativos.
-
Deben existir una cantidad considerable de registros de juegos para poder llevar a cabo el análisis, en los papers analizados se mencionan hasta 300 juegos por raza para llevar a cabo un análisis.
-
Se debe saber a que se va a enfocar el proceso de machine learning:
-
La recolección eficiente de recursos (posicionamiento de las bases, asignación de unidades para la recolección, priorización de recursos dependiendo de las tropas o edificios que se requieran construir).
-
Estrategias defensivas (creación de tropas, establecimiento de edificios defensivos, desarrollo del árbol de tecnología).
-
Estrategias ofensivas (creación de tropas, desarrollo del árbol de tecnologías, formaciones, estrategias).
-
Un sistema que englobe a los puntos anteriores.
-
Por otro lado para la predicción y opponent modeling se puede llevar a cabo como parte complementaria de los puntos anteriores o como una rama que permita conocer de antemano las acciones y estrategias del rival.
-
Se puede intentar predecir la estrategia global del rival, el tipo de unidades que esta creando, los recursos que esta recolectando (en base al tipo de juego que lleva a cabo), el posicionamiento de sus defensas, posicionamiento de sus tropas, posicionamiento de bases extra, la forma en que actúan sus tropas en batalla (ofensiva y defensivamente).
Hay que considerar el ambiente en que se llevaran a cabo las pruebas y experimentos para las técnicas de inteligencia artificial, en este caso se propone el uso de un juego serio (actualmente en desarrollo) sobre alguna otra plataforma establecida lo que me da la siguiente tabla de ventajas y desventajas:
Ventajas | Desventajas |
Es un entorno que al ser creado desde cero ofrece un completo control sobre el mismo. | Es necesario aprender un poco sobre la programación del juego para poder manipularlo. |
Se puede modificar lo que sea necesario para cubrir las necesidades de la investigación. | Aunque los modelos para el juego pueden ser enviados por externos es posible que en caso de no ser del agrado no sean fáciles de modificar. |
Se puede combinar con otras investigaciones. | Para poder ser empleado como ambiente de pruebas primero debe ser completado el juego. |
El conocimiento adquirido en el diseño del juego puede ayudar en temas como el modelado del oponente (saber cosas de antemano como los valores de las unidades y contra que son efectivas). | No existen registros (logs) de juegos pasados que puedan ser analizados. |
Se tiene un conocimiento profundo sobre las mecánicas del juego así como los objetivos y los elementos que lo comprenden. | Lograr un balance entre unidades no parece ser una tarea trivial. |
| No se tiene asegurado que al jugador le sea atractivo el juego y no se conocerá hasta tener alguna versión armada. |
| La falta de existencia de un estado del juego (meta game) hace difícil poder definir las estrategias que usan los jugadores. |
Al tener en cuenta esas razones creo que es conveniente buscar un poco sobre que se ha hecho sobre predicción en otro tipo de ambientes para poder tomar una decisión sobre el entorno en que se basará mi tesis.