Colaboradores


Reglas para hacer una IA más eficiente en un Dungeon Crawler

  • 10 Respuestas
  • 2046 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Guile

    *
  • US. Marshal
  • ****
  • Mensajes: 200
  • Agradecido: 37 veces

    Total de insignias: 4
    Insignias: (Ver todas)
    Cinco años en el foro Tres años en el foro. Primera encuesta votada Un año en el foro
« en: Octubre 25, 2018, 01:13:49 am »
Buenas, estaba yo pensando como hacer decentes las reglas cooperativas de cierto juego que compré hace unos meses cuando se me a ocurrido una cosa, porqué no pregunto al consejo de sabios que reglas debe tener un DC para hacer una IA más eficiente??

Con reglas me refiero a cosas tipo:

Los enemigos deberían poder traspasarse entre ellos, o deberían bloquearse??

Se deberían bloquear la linea de visión entre si??

Linea de visión de centro a centro, de una esquina a cualquier parte de otra esquina...??

Este tipo de cosas.

 

Desconectado Alain

    *
  • US. Marshal
  • ****
  • Mensajes: 277
  • Agradecido: 41 veces

    Total de insignias: 3
    Insignias: (Ver todas)
    Tres años en el foro. Un año en el foro Avatar personalizado
« Respuesta #1 en: Octubre 25, 2018, 04:47:27 am »
Que 2 enemigos puedan converger una misma casilla o no, depende el juego y es una regla que interfiere con la IA pero parte de una regla. Si el enemigo ataca a distancia, hay que estudiar si puede implementarse la convergencia para que no interfiera con la IA. Hay que tener en cuenta si la mecanica cuenta el campo visual y obstáculos en el área de ataque.

Así que... Tienes que matizar si quieres implementar una regla o una IA.

Una regla es la convergencia de espacio o modo de turno entrante.

Una IA es la prioridad del enemigo y su comportamiento.


Por ejemplo, una regla muy extendida y que resulta bastante torpe, es el modo de turno entrante de los enemigos al final del turno de todos los jugadores. Se usa prácticamente siempre y es mal sistema.

Una IA eficiente es darle una base a los enemigos para su turno entrante, basado en la proximidad o por nivel y ademas, fijar a los personajes de los jugadores con un indice de notoriedad para darle ese dato a la IA de los enemigos y que se ejecute. Algo escaso pero es la base para una buena IA.

Un ejemplo practico seria: que cada enemigo regulado por un nivel, pueda intercalarse entre los turnos de los personajes de los jugadores tomando en cuenta el nivel de estos. En caso no existir el valor nivel, habría que tomar en cuenta otros factores como puede ser proximidad, peso de su equipo o capacidad de daño para que el enemigo priorice a que personaje atacar, a cual perseguir o cuando llega el momento para que el enemigo entre a turno.
 

Desconectado Kronos

    *
  • Lapidador experimentado.
  • *
  • Mensajes: 3258
  • Agradecido: 1014 veces
  • "Aprovecho para saludar"

    Total de insignias: 14
    Insignias: (Ver todas)
    Seis años en el foro. Forero ejemplar (más de 1000 thanks) Ha creado 10 hilos en el foro. Creador de encuestas Cinco años en el foro El más rápido de todo el oeste. Forero que nunca duerme. 720 horas (30dias) en DS. Spammer 25 mensajes en un día Forero querido (más de 100 thanks) Votar 10 encuestas Primera encuesta votada Avatar personalizado Tres años en el foro. Un año en el foro
« Respuesta #2 en: Octubre 25, 2018, 07:17:32 am »
IA atacar al jugador más cercano y las acciones monitorizadas por un mazo de acciones, con lo que en un turno se pilla una carta por cada tipo de enemigo y te dice si ataca, mueve, o realiza acción especial y así cualquier combinación entre ellas y acciones se te ocurra. Esto està tomado del Gloomhaven. A eso le sumas un número de iniciativa para establecer el orden en el turno y lo bordas.
 
Los siguientes usuarios han dado gracias a este post: LordPep, Hollyhock

Desconectado Guile

    *
  • US. Marshal
  • ****
  • Mensajes: 200
  • Agradecido: 37 veces

    Total de insignias: 4
    Insignias: (Ver todas)
    Cinco años en el foro Tres años en el foro. Primera encuesta votada Un año en el foro
« Respuesta #3 en: Octubre 25, 2018, 08:25:31 am »
Que 2 enemigos puedan converger una misma casilla o no, depende el juego y es una regla que interfiere con la IA pero parte de una regla. Si el enemigo ataca a distancia, hay que estudiar si puede implementarse la convergencia para que no interfiera con la IA. Hay que tener en cuenta si la mecanica cuenta el campo visual y obstáculos en el área de ataque.

Así que... Tienes que matizar si quieres implementar una regla o una IA.

Una regla es la convergencia de espacio o modo de turno entrante.

Una IA es la prioridad del enemigo y su comportamiento.


Por ejemplo, una regla muy extendida y que resulta bastante torpe, es el modo de turno entrante de los enemigos al final del turno de todos los jugadores. Se usa prácticamente siempre y es mal sistema.

Una IA eficiente es darle una base a los enemigos para su turno entrante, basado en la proximidad o por nivel y ademas, fijar a los personajes de los jugadores con un indice de notoriedad para darle ese dato a la IA de los enemigos y que se ejecute. Algo escaso pero es la base para una buena IA.

Un ejemplo practico seria: que cada enemigo regulado por un nivel, pueda intercalarse entre los turnos de los personajes de los jugadores tomando en cuenta el nivel de estos. En caso no existir el valor nivel, habría que tomar en cuenta otros factores como puede ser proximidad, peso de su equipo o capacidad de daño para que el enemigo priorice a que personaje atacar, a cual perseguir o cuando llega el momento para que el enemigo entre a turno.

Me refería a las dos cosas, tanto al modo de activar y comportamiento como reglas generales que puedan hacerla menos eficiente.
 

Desconectado Alain

    *
  • US. Marshal
  • ****
  • Mensajes: 277
  • Agradecido: 41 veces

    Total de insignias: 3
    Insignias: (Ver todas)
    Tres años en el foro. Un año en el foro Avatar personalizado
« Respuesta #4 en: Octubre 25, 2018, 04:02:48 pm »
IA atacar al jugador más cercano y las acciones monitorizadas por un mazo de acciones, con lo que en un turno se pilla una carta por cada tipo de enemigo y te dice si ataca, mueve, o realiza acción especial y así cualquier combinación entre ellas y acciones se te ocurra. Esto esta tomado del Gloomhaven. A eso le sumas un número de iniciativa para establecer el orden en el turno y lo bordas.

Acciones por cartas de accion es meter demasiado factor aleatorio a una IA. Técnicamente es hacerla tonta/errática. Si tal mazo fuese de digamos 10 tarjetas, habría 1/3 de cada acción, atacar, moverse y ataque especial que son los 3 principios básicos, ataque ligero, ataque pesado y desplazarse. Cuando este en las condiciones apropiadas para hacer una acción correcta, en su lugar termina realizando cualquier acción aleatoria.
 

Desconectado Alain

    *
  • US. Marshal
  • ****
  • Mensajes: 277
  • Agradecido: 41 veces

    Total de insignias: 3
    Insignias: (Ver todas)
    Tres años en el foro. Un año en el foro Avatar personalizado
« Respuesta #5 en: Octubre 25, 2018, 04:24:25 pm »
Me refería a las dos cosas, tanto al modo de activar y comportamiento como reglas generales que puedan hacerla menos eficiente.

Lo mas eficiente es hacer un arbol de acciones como te digo, basado en unos factores. Un arbol por nivel de vida por ejemplo, y dependiendo de cuanta vida tenga la unidad, se ejecuta un nodo del arbol. Por ejemplo:

2 arboles de IA. uno para 5 o mas de salud y otro con 3 o menos puntos de salud. Cada arbol tendría una prioridad, si ataque cercano, ataque a distancia o moverse para adecuarse a las condiciones de ataque.

Cada Nodo de dicho árbol incluiría una directriz. Se ejecuta este nodo cuando el turno del jugador mas cercano finalice turno, se ejecuta este nodo cuando un personaje cercano posea menos de X nivel de salud, se ejecuta este nodo cuando un personaje se aleje X distancia. De este modo intercalas la IA de los enemigos a las condiciones de los PJ.

El modo de aplicación de un árbol de IA es sencillo, al finalizar el turno de un jugador, se comprueba si se cumple alguna condición en los nodos del Arbol de IA. No tienen que ser arboles grandes, con 3 o 4 nodos cada uno, es suficiente. Si fuesen mas grandes, necesitarías una especie de marcador para marcar cual fue la ultima acción realizada.

Cada Nodo de un arbol de IA esta compuesto por eso, Nodos conectados a unas directricez, en un árbol grande, algunas directricez quedan anuladas porque no están conectadas a la ultima acción. Por eso el árbol tiene que ser pequeño para compactar todas las directricez.

Imagina que un Arbol de IA puede ponerse en una sola tarjeta y esa tarjeta se asigna al tipo de enemigo que cumpla las condiciones para usarla.

¿Se puede preveer el comportamiento del enemigo conociendo su IA? Si, totalmente, pero la estructura del juego toma otro matiz, realizar acciones en base a lo que ocurrirá después. La alternativa son puntos de ejecución, una tirada de un dado para ver si el enemigo logra ejecutar su directriz IA o si se anula su directriz o la ejecuta con alguna penalizacion. Otra opción es la carga de energía, si el enemigo tiene la fuerza suficiente para ejecutar su directriz o tiene que posponerla hasta reunir mas fuerza.

Hay millones de formulas, pero la base de una buena IA es esa, intercalarla entre los turnos de los jugadores. Algunas veces se desarrollan 3 turnos seguidos de los jugadores y otras veces solo 1 turno.
 

Desconectado Hollyhock

    *
  • Creador de Juegos
  • Lapidador experimentado.
  • *
  • Mensajes: 2301
  • Agradecido: 2707 veces
    • Hollyhock

    Total de insignias: 16
    Insignias: (Ver todas)
    Creador de encuestas Votar 10 encuestas Seis años en el foro. Medalla de oro a forero sublime. Cinco años en el foro Forero ejemplar (más de 1000 thanks) El más rápido de todo el oeste. Forero que nunca duerme. 720 horas (30dias) en DS. Forero querido (más de 100 thanks) Ha creado 10 hilos en el foro. Primera encuesta votada Firma Webmaster Avatar personalizado Tres años en el foro. Un año en el foro
« Respuesta #6 en: Octubre 25, 2018, 06:44:42 pm »
Los enemigos deberían poder traspasarse entre ellos, o deberían bloquearse??

Se deberían bloquear la linea de visión entre si??


La IA va a darles a los enemigos un comportamiento artificial y no quieres que se note que actúan de forma robótica. Así que quieres evitar cualquier escenario en el que los enemigos se pongan a hacer el mongolo, ya sea estorbándose entre sí o bloqueándose la línea de visión o bailando la conga o cayéndose por un pozo.

En muchos videojuegos los enemigos son inmunes a los pinchos y trampas y escupefuegos que hay en la pantalla, y a los disparos de otros enemigos. ¿Por qué? Pues para no tener que complicar su IA para que sean tan listos como para poder evitar las trampas al mismo tiempo que atacan a los jugadores.

La IA que puede tener un juego de mesa es muchísimo más sencilla que la que puede tener un videojuego. Así que aplica todas las reglas que puedas para que los enemigos nunca puedan terminar haciendo el tonto:
-Nunca activan trampas
-No se obstruyen entre sí
-No se dañan entre sí

Las IAs deberían ser muy simples, estilo:
BERSERKER: Mueve hasta el personaje más cercano y ataca
OPORTUNISTA: Mueve hasta el personaje más herido (de entre los que alcance) y ataca.
TEMERARIO: Mueve hasta el personaje menos herido (de entre los que alcance) y ataca.
COBARDE: Si hay otro enemigo a distancia de X casillas o menos, mueve hasta el personaje más cercano y ataca. Si no, mueve hacia el enemigo más cercano o el spawn de enemigos más cercano.
ARQUERO: Si hay un héroe a tiro, dispara al héroe más cercano. Si no hay ningún héroe a tiro, avanza hacia el héroe más cercano.
FRANCOTIRADOR: Si hay un héroe a tiro, dispara al héroe más herido. Si no hay ningún héroe a tiro, no hace nada.
etc...

Si quieres meterle azar, en vez de cartas, cada IA podría estar escrita en una única carta con varios resultados de dado. Esto sería una IA de Goblin en un juego que funcione mediante encuentros (batallas cerradas) en vez de mediante casillas:

Goblin
(6+) PEDIR AYUDA: Este Goblin no actúa este turno. Hay un 50% de que otro Goblin entre en la batalla.
(4-5) AGRESIVO: Este Goblin ataca con Fuerza 3.
(1-3) CAUTO: Si hay al menos tantos Goblins como Héroes en combate, este Goblin ataca con Fuerza 2. Si hay menos Goblins que Héroes en combate, este Goblin huye.


En un juego con casillas (batallas abiertas) podría ser:

Goblin
(6+) actúa como OPORTUNISTA
(4-5) actúa como BERSERKER y añade +1 a su Fuerza y -1 a su Defensa
(1-3) actúa como COBARDE


Si quieres desarrollar un juego donde los enemigos tengan una buena IA, y tomas esa idea como central, puedes adaptar el resto de mecánicas para que la IA funcione mejor. Por ejemplo, en vez de casillas utiliza movimiento por áreas, y permite que en un área quepa cualquier número de figuras (o un número elevado de ellas), de forma que los enemigos lo tengan muy difícil para estorbarse entre sí cuando ataquen. Mice&Mystics hace esto con sus casillas gordas donde caben 4 figuras y la posibilidad de atacar a gente de tu misma casilla o de una casilla vecina.

« Última modificación: Octubre 25, 2018, 06:50:28 pm por Hollyhock »
SinPaGames cerró su web, pero todos sus juegos siguen disponibles en BGG.
 
Los siguientes usuarios han dado gracias a este post: LordPep, durantula78, Señor Pe, Jomra

Desconectado Hollyhock

    *
  • Creador de Juegos
  • Lapidador experimentado.
  • *
  • Mensajes: 2301
  • Agradecido: 2707 veces
    • Hollyhock

    Total de insignias: 16
    Insignias: (Ver todas)
    Creador de encuestas Votar 10 encuestas Seis años en el foro. Medalla de oro a forero sublime. Cinco años en el foro Forero ejemplar (más de 1000 thanks) El más rápido de todo el oeste. Forero que nunca duerme. 720 horas (30dias) en DS. Forero querido (más de 100 thanks) Ha creado 10 hilos en el foro. Primera encuesta votada Firma Webmaster Avatar personalizado Tres años en el foro. Un año en el foro
« Respuesta #7 en: Octubre 25, 2018, 07:08:39 pm »
Más ideas sobre que cada enemigo tenga su propia tabla de IA que se decida con la tirada de un dado:

Si te curras las tablas de IA bien, se podría hacer una única tirada en cada ronda para todos los monstruos, de forma que al sacar un 3, todos los Goblins actúen como COBARDE, pero en la tabla de Paladines Oscuros diga CURA A LOS MONSTRUOS CERCANOS, en la tabla de Espectros diga INTENTA POSEER A UN HÉROE, etc...

Así no tienes que estar tirando monstruo por monstruo a ver qué hace cada uno, lo cual es laborioso y coñazo.

Si además haces que todos los resultados altos sean agresivos y los bajos pasivos, puedes hacer que la tirada de IA interactúe con objetos mágicos de los Héroes. Un hechizo de Luz Sagrada puede cascar un -1 ó -2 a la tirada de IA de ese turno, porque "acojona" a los monstruos, mientras que un Gran Orco puede darle un +1 a la tirada a todos los pielesverdes en juego, o un Nigromante +2 a la de los no-muertos. Los zombis podrían tener en los resultados bajos de su tabla: NO HACE NADA, pero cuando tienen un Nigromante entonces gracias a su bono están mucho más activos. Lo cual les permite cambiar de comportamiento según la presencia o no del Nigromante. Cuando enlazas diferentes subsistemas entre sí se te abren muchas más posibilidades.

En todo caso, el sistema de IA debe ser lo más sencillo y fluido posible. Jamás me pondría a calcular "valores de amenaza" para cada personaje y luego tener un árbol de decisiones de cada monstruo. Eso puede hacerlo un videojuego, pero no un juego de mesa.
SinPaGames cerró su web, pero todos sus juegos siguen disponibles en BGG.
 
Los siguientes usuarios han dado gracias a este post: LordPep, Señor Pe

Desconectado Kronos

    *
  • Lapidador experimentado.
  • *
  • Mensajes: 3258
  • Agradecido: 1014 veces
  • "Aprovecho para saludar"

    Total de insignias: 14
    Insignias: (Ver todas)
    Seis años en el foro. Forero ejemplar (más de 1000 thanks) Ha creado 10 hilos en el foro. Creador de encuestas Cinco años en el foro El más rápido de todo el oeste. Forero que nunca duerme. 720 horas (30dias) en DS. Spammer 25 mensajes en un día Forero querido (más de 100 thanks) Votar 10 encuestas Primera encuesta votada Avatar personalizado Tres años en el foro. Un año en el foro
« Respuesta #8 en: Octubre 25, 2018, 09:14:24 pm »
Acciones por cartas de accion es meter demasiado factor aleatorio a una IA. Técnicamente es hacerla tonta/errática. Si tal mazo fuese de digamos 10 tarjetas, habría 1/3 de cada acción, atacar, moverse y ataque especial que son los 3 principios básicos, ataque ligero, ataque pesado y desplazarse. Cuando este en las condiciones apropiadas para hacer una acción correcta, en su lugar termina realizando cualquier acción aleatoria.
los mazos de cartas en GH funcionan a la perfección, según perfiles de enemigos estos son más propensos a unas acciones u otras. Es un diseño simple con resultados más que satisfactorios. Te pongo un ejemplo, en su turno no sale ataque pero gana un valor de protección extra o un efecto de daño si es atacado, así mil opciones.

Está claro que con tu propuesta, a mayor complejidad más realismo, pero a costa de la diversión para la mayoría de personas. El wargamero que disfruta analizando un movimiento y puede estar 20 minutos de planificación encajaría en algo más complicado, pero no creo que sea lo que se espera de un juego del tipo DC. 
« Última modificación: Octubre 25, 2018, 09:18:39 pm por Kronos »
 

Desconectado Guile

    *
  • US. Marshal
  • ****
  • Mensajes: 200
  • Agradecido: 37 veces

    Total de insignias: 4
    Insignias: (Ver todas)
    Cinco años en el foro Tres años en el foro. Primera encuesta votada Un año en el foro
« Respuesta #9 en: Octubre 25, 2018, 10:09:46 pm »
Todas las ideas son muy interesante, desde luego, si fuera a hacer un juego metería patrones para los enemigos con algo de aleatoriedad y por supuesto movimiento por zonas.

En estos momentos como comentaba estoy intentando adecentar el modo cooperativo de un DC que compré el cual va por casillas y los héroes activan antes que los enemigos por lo que en esos aspectos estoy mas limitado.

Preguntaba lo de si sería adecuado que los enemigos puedan pasarse por encima y que puedan disparar a través de otros enemigos porque hay muchos pasillos lo que da lugar a que se puedan amontonar.
 

Desconectado Alain

    *
  • US. Marshal
  • ****
  • Mensajes: 277
  • Agradecido: 41 veces

    Total de insignias: 3
    Insignias: (Ver todas)
    Tres años en el foro. Un año en el foro Avatar personalizado
« Respuesta #10 en: Octubre 26, 2018, 08:17:37 am »
Si lo que buscas es modificar un juego en concreto, lo que se usa es el sistema de "en mi casa jugamos asi" reglas para modificar el sistema a gusto del operador y no todos admiten que toques como funcionan sus reglas.

En cuanto al factor aleatorio o no, siempre es bajo un perfil de usuario, hay jugadores a los que gustan y jugadores a los que no, un sistema de aparicion aleatoria con un sistema de IA cerrada es 50/50, pero si sumas un sistema de aparición aleatorio mas un sistema de ataque con toques aleatorios, tienes un 75/25, Si todo es aleatorio, es un 100% de imprevision y esos son los juegos que terminan rompiendo primero o dan mucho mas trabajo. A mi me gustan los dados y me gusta tener nociones inamovibles así que soy mas del 50/50 pero siempre me fijo donde pongo los dados.

Yo personalmente, el campo de los Dungeons lo veo algo saturado, habra 1.000 ejemplos y 10.000 modificaciones posibles, así que no os toméis ninguno, nada al pie de la letra. Sin embargo y por experiencia, aunque en España existe cierta cultura ludopata, no gusta el factor aleatorio, para ello tendrías que estar al tanto del factor denominado RNG. Por ejemplo las Loot Boxes en los videojuegos hoy en día comienzan a vetarse por mandato, así que... quien busque una experiencia aleatorio, tiene que saber que no es una tendencia al alza.

Tampoco os hablo de todo debe ser un sistema cerrado, mecánico perfecto, hablo de cosas mas dinámicas, nada debe ser justo así ni nada debe ser cualquier cosa.