¿Qué se puede hacer para mejorar la máxima IA del juego de estrategia en tiempo real?

12

Tuve esta conversación con un amigo mío sobre si se puede crear una IA o no que pueda vencer a cualquier humano sin hacer trampa de recursos en un juego de estrategia en tiempo real. Una IA que jugaría casi a la perfección. La IA de los juegos de hoy tiene muchas áreas que se pueden mejorar, la mayoría de ellas dependen de la trampa de recursos, un mejor desarrollo temprano de la base debido a eso y atacan en oleadas.

Aún así, la pregunta es qué se necesitaría hacer para mejorar esto y obtener la mejor IA. Además, si tienes algún ejemplo de un juego en el que se usó cierta característica, sería genial.

Editar: Hay pocas aclaraciones que puedo proporcionar para aquellos que no han leído el título o los pocos párrafos que describen el problema. Se trata de juegos de estrategia en tiempo real y la mejor IA. Eso significa Strarcraft, Warcraft, Generales, Red Alert, Age of Empires, AI War, etc. Juegos que tienen más de un nivel de dificultad, pero el enfoque aquí está en el desafío final.

tenpn tiene una publicación fantástica llena de grandes recursos. Gracias tenpn! Deseo que más personas contribuyan en esa dirección.

revs altvali
fuente
66
Realmente esta pregunta no tiene sentido sin un caso específico. Todos los juegos tienen diferentes formas de implementar IA, dependiendo de la mecánica del juego involucrada, y 'cómo mejorarlos' variará enormemente. Como mínimo, esto debería ser Community Wiki, ya que no hay una respuesta "correcta" aquí.
MrCranky
2
Además de lo primero: considera que el ajedrez es un juego de estrategia.
Rushyo
1
¿Por qué quieres hacerlo? Hacer una IA perfecta para el juego de Pong es absolutamente trivial y no es nada divertido jugar contra él. El objetivo del juego AI no es vencer al jugador, ya que se supone que es el jugador (no la computadora) quien se divierte.
Ian Schreiber
1
Ian: El OP está hablando de algo muy diferente de Pong. Es fácil hacer una IA inmejorable de Pong, o una IA de Tic-Tac-Toe. El ajedrez se puede llevar a una IA que solo los mejores, los mejores pueden derrotar. Pero RTS es un juego de pelota diferente.
El pato comunista
2
Quizás te interese el algoritmo STRIPS .
user712092

Respuestas:

12

Es una especie de pregunta difícil de responder. Para establecer qué necesita mejorar, necesita tener alguna IA conocida para trabajar. Sin embargo, aquí hay algunos ejemplos de RTS AI de aigamedev.com (se requiere registro):

Desafortunadamente, la mayoría de las cosas realmente buenas están detrás del muro de pago.

Una solución común de IA es el Planificador de acción orientado a objetivos, que utiliza reglas para formar planes para satisfacer objetivos. Hace ya un tiempo, pero es genial. Hay una breve descripción (pdf) disponible en el sitio de Jeff Orkin sobre cómo se aplica a un FPS, pero exactamente el mismo principio (con diferentes reglas y objetivos) funciona para los RTS.

Muchos RTS utilizarán jerarquías de GOAP, con diferentes niveles que recibirán objetivos del nivel anterior, y se ocuparán de diferentes niveles de detalle del campo de batalla. Leí un gran artículo sobre la IA de algunos juegos de guerra hexadecimales de la Segunda Guerra Mundial que se estructuraba de esta manera, pero por todo lo que es google, no puedo encontrar el enlace ahora. Estrella de oro para cualquiera que pueda ayudarme.

Por supuesto, la efectividad de los GOAP y otros planificadores depende de qué tan bien analice su mundo de juego y cuán refinadas sean sus acciones y objetivos.

Otra tecnología común incluye arquitecturas de utilidad (pdf) para puntuación y prioridades, y pizarras para analizar el mundo del juego.

tenpn
fuente
6

El punto es, si tienes una IA

que podría vencer a cualquier humano sin trampa de recursos en un juego de estrategia en tiempo real

entonces tienes un juego que nadie jugará porque no pudieron pasar el primer nivel.

La parte más difícil de la programación de IA es hacer que la IA sea superable, pero alguien que tenga un poco de habilidad puede superarla. Haz que sea demasiado fácil vencer y los jugadores se desanimarán por la falta de un desafío, hazlo demasiado difícil y nuevamente, la gente se cansará de ser golpeada todo el tiempo.

Entonces, no se trata de crear IA compleja (lo cual no es difícil, después de todo, la IA puede procesar todo dentro de su área de juego simultáneamente, mientras que un jugador solo puede procesar lo que está en la pantalla), sino más bien crear un juego equilibrado.

Skizz
fuente
1
Para aclarar, hacer una IA que pueda vencer a cualquier humano no es tan difícil ya que la IA puede controlar sus unidades con una mejor granularidad de la que cualquier humano podría esperar (debido a las restricciones de la interfaz de usuario). Un humano tarda segundos en reaccionar a los eventos, seleccionar y ordenar unidades, mientras que la IA puede actualizar las órdenes de cada unidad individualmente en cada 'turno de juego' en respuesta a cualquier evento. Pero en la práctica, esto no se hace ya que haría el juego tedioso. La parte realmente difícil es hacer que la IA sea lo suficientemente tonta como para vencer.
Skizz
3
Para aclarar la aclaración, hacer una IA inmejorable no es tan difícil; Hacer que la IA sea superable, desafiante y atractiva es mucho, mucho más difícil.
Skizz
3

Se podía hacer mucho, pero mi reacción inmediata a esta pregunta fue una contrapregunta: ¿por qué alguien querría la mejor IA de RTS? ¿Y por qué esta persona no solo juega en línea, contra otro oponente humano?

El quid es: no es el problema hacer que la IA sea inmejorable, es el problema de hacerla pensar lo suficientemente rápido (por ejemplo, tiene que tomar atajos) para poder jugar contra 3 o incluso 7 oponentes de IA en el mismo mapa con un computadora normal Incluso hoy y mañana, y espero que no haya cambiado dentro de diez años.

El siguiente problema es: mientras la IA siga reglas estrictas, será explotable. Incluso las reglas difusas lo harán vulnerable a las hazañas. La IA tendría que aprender, y tendría que cometer errores, intencionales y no intencionales. También necesitaría sorprenderte. Y luego estás jugando contra otro ser humano. Dado que la IA ni siquiera se acerca a copiar la forma de pensar de un ser humano tanto algorítmica como en términos de potencia de procesamiento, es mucho mejor que no pierdas tu tiempo en una IA de un solo jugador que no es tan divertida de jugar como otra. ser humano, aunque solo sea por los factores sociales involucrados.

LearnCocos2D
fuente
1

Lo que define como 'trampa de recursos' es como 'aumentar el equilibrio' en los juegos de carreras. El 'impulso' se usa para tratar de mantener la manada relativamente cerca entre sí para crear la ilusión de una carrera apretada. Si el jugador no está a la cabeza, puede mantener al jugador de la CPU a la vista, y si el jugador está a la cabeza, mantiene la presión al poner a los oponentes directamente en su cola, incluso si la CPU en sí es un conductor mediocre.

En un RTS, está viendo una colección de valores que se pueden organizar de manera óptima. Sabes exactamente cuánto tiempo lleva obtener un recurso, cuánto cuestan los artículos de construcción, los tiempos de recorrido del mapa, etc.

Si usted es el que ha creado las tablas y tiene la información disponible para usted, es solo una cuestión de hacer un cálculo numérico de los datos para encontrar las mejores relaciones de salida.

Pero, ¿qué tan divertido es jugar contra un enemigo que siempre hace exactamente lo mismo en función del contexto del campo de juego?

Entonces agregas caos. Le das a la IA una eficiencia en una escala móvil. Tienes que acosar al jugador. Si el jugador parece estar demasiado bien, tienes la IA haciendo trampa un poco y le das algunos recursos o refuerzos adicionales para mantener al jugador alerta.

Desea que el jugador sienta la satisfacción de enfrentarse a un oponente desafiante, en lugar de azotar a una IA débil o ser asesinado por Hal9000. La perfección de un oponente de CPU radica en su imperfección. :)

Casey Wagner
fuente
2
Y diferente, pero relacionado: es bueno si la IA a veces hace cosas que técnicamente no son su mejor opción, pero agrega un poco de diversión al juego, como el uso de unidades o movimientos inusuales (por ejemplo, lanzar tropas desde la base del jugador) )
Bart van Heukelom el
0

Una gran cosa es que debes mantenerte al día con el desarrollo estratégico del juego. Ninguna cantidad de desarrollo permitirá que una IA gane una partida de Starcraft 1 (en juego limpio) si cree que un ejército central de marines es la forma de jugar un juego Terran vs Terran.

Esto no solo evitará que la IA sea constantemente golpeada debido a su elección de estrategia obsoleta, sino que tener un mayor repertorio de enfoques del juego hará que la IA sea más atractiva, si la IA toma decisiones viables en el camino.

Un rico árbol de estrategias incluso permite un control deslizante de dificultad; Por ejemplo, la loca IA Zerg tenderá a adoptar enfoques flexibles que pueden adaptarse al enemigo y expandirse rápidamente cuando se le dé la oportunidad, pero en el nivel de dificultad normal es probable que elija construcciones más rígidas y sea menos propenso a expansiones masivas.

usuario64554
fuente