AIBOWL: un Bot que juega mucho mejor que la IA del juego PC!
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
yo aún no lo he probado, pero tengo bastante claro como implementaría una IA de un juego de BB, que es básicamente como debería pensar un jugador de BB de forma mecánica.
Antes de tomar ninguna decisión:
¿Como veo el partido? ¿Cuál es el objetivo del partido? El programa tiene que marcarse un teórico objeto del partido final en cada turno, y jugar en base a ese objeto. Por ejemplo:
- Empiezo. Si defiendo, el objetivo del partido en la primer defender, aguantar y si se roba marcar lo más tarde posible. En la segunda, atacar y marcar
- Que voy perdiendo 1-0 en la segunda parte. A lo mejor el objeto no es ganar, si no empatar...
- Que voy empate pero es buen resultado, pues aguantarlo...
La forma de colocar de defender, de arrimarse o no al rival para presionar, de estalear o no... deberían depender del objetivo teorico final del partido (siempre que juego en cada turno me planteo "como va a acabar el partido" y según eso actúo).
Según el objetivo del partido, me marco el objetivo del turno, según las posibilidades y la situacion que haya: pegarme mucho, o intentar quitarme a todos de encima para hacer una barrera defensiva "sin tocar", o intentar robar la bola, o desgastar al rival haciendo que tire dados, o anotar, o subir un palomero...
Según ese objetivo del turno, empiezo a mover::
- si el objetivo del turno es una barrera defensiva, pues levanto sin pegarme, intentando cubrir los huecos, haciendo placajes para quitarme de encima a la gente o esquives según agilidad y RR y armaduras, etc.
- si el objetivo es ir hacia el td, haré una estimación de donde posicionarme para avanzar, según los turnos que queden, intentando dejar en contacto o no, según jugadores y fuerza de los mismos...
- si el objetivo es presionar la bola...
Podría hacer un algoritmo de decisión más detallado, pero antes tendría que probar la IA para ver qué cosas hace bien, y qué cosas mal...
Antes de tomar ninguna decisión:
¿Como veo el partido? ¿Cuál es el objetivo del partido? El programa tiene que marcarse un teórico objeto del partido final en cada turno, y jugar en base a ese objeto. Por ejemplo:
- Empiezo. Si defiendo, el objetivo del partido en la primer defender, aguantar y si se roba marcar lo más tarde posible. En la segunda, atacar y marcar
- Que voy perdiendo 1-0 en la segunda parte. A lo mejor el objeto no es ganar, si no empatar...
- Que voy empate pero es buen resultado, pues aguantarlo...
La forma de colocar de defender, de arrimarse o no al rival para presionar, de estalear o no... deberían depender del objetivo teorico final del partido (siempre que juego en cada turno me planteo "como va a acabar el partido" y según eso actúo).
Según el objetivo del partido, me marco el objetivo del turno, según las posibilidades y la situacion que haya: pegarme mucho, o intentar quitarme a todos de encima para hacer una barrera defensiva "sin tocar", o intentar robar la bola, o desgastar al rival haciendo que tire dados, o anotar, o subir un palomero...
Según ese objetivo del turno, empiezo a mover::
- si el objetivo del turno es una barrera defensiva, pues levanto sin pegarme, intentando cubrir los huecos, haciendo placajes para quitarme de encima a la gente o esquives según agilidad y RR y armaduras, etc.
- si el objetivo es ir hacia el td, haré una estimación de donde posicionarme para avanzar, según los turnos que queden, intentando dejar en contacto o no, según jugadores y fuerza de los mismos...
- si el objetivo es presionar la bola...
Podría hacer un algoritmo de decisión más detallado, pero antes tendría que probar la IA para ver qué cosas hace bien, y qué cosas mal...
LABB/FEBL. NAF # 8199
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Por mi experiencia, esta IA juega bien a corto plazo, pero no tiene un "plan". Se nota que el algoritmo no implementa decisiones a largo plazo. Se limita a tomar decisiones correctas en cada momento, que son correctas porque aplica un minimo de sentido común (cosa que ni siquiera hace la IA del juego de PC).Dlsk escribió:Podría hacer un algoritmo de decisión más detallado, pero antes tendría que probar la IA para ver qué cosas hace bien, y qué cosas mal...
Es como una carpa muy lista: la jugada inmediata la decide correctamente en la mayoría de los casos, pero tiene memoria de pez y no ve más allá del siguiente turno.
Lo bueno de esto es que, al menos, sirve como un sparring correcto porque te juega correctamente el baile de placajes y los fallos los hace a un nivel estratégico, no táctico. Con lo cual, es el equivalente de jugar con un jugador humano que sabe las reglas del juego y las aplica bien a bajo nivel, pero no tiene experiencia de entrenador perro-viejo.
Lo malo de la IA de Cyanide es que es tan patética que, como ya hemos dicho en otros hilos, es mejor no jugar contra ella porque te hace desaprender.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
No olvidemos que lo importante es la evolución que tenga la IA con el tiempo.
Por eso, que mas dá que la IA tenga fallos, si con el tiempo se va puliendo y mejorando.
Por eso a mi, lo que me parece realmente importante es que el proyecto exista, que se programe una base sobre la que empezar a trabajar y que se libere el código de la IA, de esta manera, aunque tenga fallos, con el paso del tiempo desaparecerán... y quien sabe, quizá un día podría llegar a ser realmente difícil ganarle.
Es como enseár a jugar a un novato, primero empiezas por las reglas, luego las tácticas básicas, luego... al final incluso te puede superar... pero claro, para eso es necesario una evolución... y eso da mucho trabajo al programador...
Por eso pienso que sería fundamental liberar el código, así no habría un solo porgramador, si no todo un equipo, y no se centraría en las tácticas y visión de juego de un jugador, si no de una multitud así como de grandes campeones...
¿Sabeis algo si sobre la liberalización del código? ¿como va la cosa?
Por eso, que mas dá que la IA tenga fallos, si con el tiempo se va puliendo y mejorando.
Por eso a mi, lo que me parece realmente importante es que el proyecto exista, que se programe una base sobre la que empezar a trabajar y que se libere el código de la IA, de esta manera, aunque tenga fallos, con el paso del tiempo desaparecerán... y quien sabe, quizá un día podría llegar a ser realmente difícil ganarle.
Es como enseár a jugar a un novato, primero empiezas por las reglas, luego las tácticas básicas, luego... al final incluso te puede superar... pero claro, para eso es necesario una evolución... y eso da mucho trabajo al programador...
Por eso pienso que sería fundamental liberar el código, así no habría un solo porgramador, si no todo un equipo, y no se centraría en las tácticas y visión de juego de un jugador, si no de una multitud así como de grandes campeones...
¿Sabeis algo si sobre la liberalización del código? ¿como va la cosa?
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
El código está liberado.neonene escribió:¿Sabeis algo si sobre la liberalización del código? ¿como va la cosa?
Lo tienes disponible dentro del zip de descarga, junto con ejemplos y consejos de como programar tu propia IA si lo deseas.
Basicamente, el proyecto incluye un interface para que un bot IA se comunique con el juego (Botocs, fumbbl o el que se use) y además un bot IA principal llamado GrodBot (Grod es el nick del creador).
Puedes modificar GrodBot, o crear tu bot desde cero.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
-
- Veterano
- Mensajes: 1164
- Registrado: Sab Nov 24, 2007 10:08 am
- #NAF: 12647
- Ubicación: Estocolmo - Irun - Estocolmo
- Contactar:
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
con un partido mas minucioso la IA deja mucho que desear...
aqui tienes mi LOG de cagadas, ! las mas leves, !!! las mas graves, por si quieres pasarselo a este hombre.
Yo por mi parte me borro esto que no es nada bueno y considero que el playtesting debe hacerse con el BOT mucho más evolucionado...
aqui tienes mi LOG de cagadas, ! las mas leves, !!! las mas graves, por si quieres pasarselo a este hombre.
Yo por mi parte me borro esto que no es nada bueno y considero que el playtesting debe hacerse con el BOT mucho más evolucionado...
Código: Seleccionar todo
T1
- ! pickup before blocking all the line
- !! pickup before moving to cover the ball
- !!! pickup with a lineman when thrower available
T2
- !!! handoff to a black orc
- !!! handoff at begining of the turn
- !! ballcarrier blitzable after some specific blocks (not very evident)
T3
- !!! No RR spent on a 2D (push-push) block against the ballcarrier
T4
- ! Ballcarrier standing next to a prone blitzer, with other 2 supporting him
- !!! Ballcarrier blitzable 2D with 2 GFI, blitzable 1D with 1 GFI - really bad caging even if possible (well, no
caging at all).
T6
- !! Dodging with a blitzer, when a previous 2D block with another blitzer would have freed him to avoid the dodge roll.
T7
- ! Moving thrower before blitzing the ballcarrier, so no suitable ballcarrier could handle the ball once it got
free.
----- BUG - when scoring in his drive, turn 8, he got a "fake" turn where I had to deploy, and then it skipped
until 2nd half. So he had an extra "turn" to roll for KOs.
T1
- !! always the same defence, not regarding the adversary or the available players of either team.
- !! perfect defence and he didn´t rearrange in order to minimise blocks.
T2
- !!! dodging before standing up players
T3
- ! using players to force 2D blocks far from the ball.
T4
- !!! when the ball is not reachable, forget about it and use the players to do 2D blocks, not puting pressure on
the ballcarrier. This keeps going until the end of the match.
T8
- ! Blitz a player which is in contact with another, thus not maximizing the blocks you can do in a turn.
LBBT - NAFFIE 12647
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Tomo nota y se lo pasaré.
De todas formas, no comparto lo de no hacer playtesting hasta que esté más evolucionado. Precisamente para que esté más evolucionado hay que hacer testing desde el principio, como en cualquier proyecto minimamente complejo de software.
Ojo! Que respeto totalmente que tu prefieras esperar a que esté más maduro.
De todas formas, no comparto lo de no hacer playtesting hasta que esté más evolucionado. Precisamente para que esté más evolucionado hay que hacer testing desde el principio, como en cualquier proyecto minimamente complejo de software.
Ojo! Que respeto totalmente que tu prefieras esperar a que esté más maduro.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
-
- Veterano
- Mensajes: 1164
- Registrado: Sab Nov 24, 2007 10:08 am
- #NAF: 12647
- Ubicación: Estocolmo - Irun - Estocolmo
- Contactar:
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Me refería a que una vez hecho lo poco que he hecho, y detectadas tantas mejoras de "sentido común" hasta que no se introduzca un algoritmo mejor yo no voy a aportar nada... los errores de bulto pueden tapar otros errores de menos sentido común, y ahí yo volvería a echar un par de partidicas de prueba.Hackerbunny escribió:Tomo nota y se lo pasaré.
De todas formas, no comparto lo de no hacer playtesting hasta que esté más evolucionado. Precisamente para que esté más evolucionado hay que hacer testing desde el principio, como en cualquier proyecto minimamente complejo de software.
Ojo! Que respeto totalmente que tu prefieras esperar a que esté más maduro.
LBBT - NAFFIE 12647
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Pues entonces os iré poniendo al tanto de los progresos.
Me consta que el programador se ha centrado primero en la comunicación entre el bot y el programa cliente y que ahora va a meterle más caña a la IA.
Me consta que el programador se ha centrado primero en la comunicación entre el bot y el programa cliente y que ahora va a meterle más caña a la IA.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
-
- Veterano
- Mensajes: 1462
- Registrado: Mié Jul 07, 2010 12:07 am
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Una cosa que debería hacer es cambiar las alineaciones de inicio por las que mucha gente considera buenas, es más rápido arreglar esto que "espabilar" al bot, y así cualquier evolución de la IA sería con buena alineaciones, sin vicios. Al menos la de enanos es mala (¿apisonadora? ), y si la cambias y juegas contra "blanditos" sueles acabar haciendo puré a tres dados . Decís que el de Cyanide es aun peor, no quiero ni pensarlo, yo que estaba buscando sparring y este tiene pinta de ser bastante tonto y con handicap de equipos.
Lo que me lleva a: ¿Son imaginaciones mías o a veces GrodBot casca y tienes que jugar tú ambos equipos? Me temo que un par de veces me ha hecho esto, siempre cuando le quedan 3-5 jugadores en cancha (y marcador 1-0 hasta 3-0) se va de rositas.
Por cierto, el Botocs no tira con OpenJDK pero sin con el de Sun, ¿correcto? Me gustaría poner el adecuado JDK para que funcionen todos y no andar arreglando uno para joder el otro.
Lo que me lleva a: ¿Son imaginaciones mías o a veces GrodBot casca y tienes que jugar tú ambos equipos? Me temo que un par de veces me ha hecho esto, siempre cuando le quedan 3-5 jugadores en cancha (y marcador 1-0 hasta 3-0) se va de rositas.
Por cierto, el Botocs no tira con OpenJDK pero sin con el de Sun, ¿correcto? Me gustaría poner el adecuado JDK para que funcionen todos y no andar arreglando uno para joder el otro.
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Perfecto.Hackerbunny escribió:El código está liberado.neonene escribió:¿Sabeis algo si sobre la liberalización del código? ¿como va la cosa?
Lo tienes disponible dentro del zip de descarga, junto con ejemplos y consejos de como programar tu propia IA si lo deseas.
Basicamente, el proyecto incluye un interface para que un bot IA se comunique con el juego (Botocs, fumbbl o el que se use) y además un bot IA principal llamado GrodBot (Grod es el nick del creador).
Puedes modificar GrodBot, o crear tu bot desde cero.
Ahora lo que toca es echar una mano en lo que podamos (yo no soy programador, aunque puedo hacer de tester...) y esperar con paciencia
-
- Veterano
- Mensajes: 1164
- Registrado: Sab Nov 24, 2007 10:08 am
- #NAF: 12647
- Ubicación: Estocolmo - Irun - Estocolmo
- Contactar:
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Hombre, el bot tendría que hacer bien tanto la estrategia como la táctica con cualquier alineación, esto no me parece tan importante... aunque es realmente facil de introducir.Steam Ball escribió:Una cosa que debería hacer es cambiar las alineaciones de inicio por las que mucha gente considera buenas, (...)
LBBT - NAFFIE 12647
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
IrunGoBBowl - Bollitos, leche y BB
Galak 3:16 "There is a point in time that a player really should read the rulebook."
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Las alineaciones de inicio no son parte del Bot, son simplemente equipos ya existentes en la carpeta de equipos. Usan el formato html del fumbbl, asi que puedes crear los equipos que quieras, incluso equipos ya avanzados con habilidades.Steam Ball escribió:Una cosa que debería hacer es cambiar las alineaciones de inicio por las que mucha gente considera buenas, es más rápido arreglar esto que "espabilar" al bot, y así cualquier evolución de la IA sería con buena alineaciones, sin vicios. Al menos la de enanos es mala (¿apisonadora? ), y si la cambias y juegas contra "blanditos" sueles acabar haciendo puré a tres dados . Decís que el de Cyanide es aun peor, no quiero ni pensarlo, yo que estaba buscando sparring y este tiene pinta de ser bastante tonto y con handicap de equipos.
Lo que me lleva a: ¿Son imaginaciones mías o a veces GrodBot casca y tienes que jugar tú ambos equipos? Me temo que un par de veces me ha hecho esto, siempre cuando le quedan 3-5 jugadores en cancha (y marcador 1-0 hasta 3-0) se va de rositas.
Por cierto, el Botocs no tira con OpenJDK pero sin con el de Sun, ¿correcto? Me gustaría poner el adecuado JDK para que funcionen todos y no andar arreglando uno para joder el otro.
Te lo confirmo: en Linux, Botocs no tira con OpenJDK, hay que usar el de Sun. En windows no lo se, porque no fumo windows, pero supongo que pasará igual.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
-
- Veterano
- Mensajes: 1462
- Registrado: Mié Jul 07, 2010 12:07 am
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Adivina a que se refería lo de cambiar. Para el que aun no lo pille, ya se donde se cambia y he puesto un equipo propio con el que pego a los otros (hasta me da vergüenza, es que son unas palizas...).Hackerbunny escribió:Las alineaciones de inicio no son parte del Bot, son simplemente equipos ya existentes en la carpeta de equipos. Usan el formato html del fumbbl, asi que puedes crear los equipos que quieras, incluso equipos ya avanzados con habilidades.Steam Ball escribió: Al menos la de enanos es mala (¿apisonadora? ), y si la cambias
Solo comentaba que habría que revisar el resto y poner cosas medio decentes y no de las que hacen que te llamen looner. Eso es lo que quiero decir con que la IA evolucione bien, si la alineación está mal, puede que juegues lo mejor que se puede con ella, pero has perdido el tiempo en vez de ir a la buena alineación de cabeza... no se como ponerlo... es el típico caso de pillar un vicio al hacer un deporte, te lo corrigen y rindes más, aunque con él parecía que ibas a tope.
Si se me cruzan los cables a lo mejor hago un pack con las recomendaciones clásicas según bbtactics, bbforo, etc. Con que sea un sparring tonto ya tengo bastante ganado, no es cuestión de darme aun más ventaja.
¿"Cualo" de Sun? Aquí (otro pingüinista) el (1.)6.22 no tira, me lancé al vacio y lo probé: encontré dos .zip, 0.6.1d y 0.6.1dFULL de Botocs, en uno sale la pantalla con la bola moviéndose y se queda seco, el otro muere directamente. Los mismos síntomas que con el OpenJDK.Hackerbunny escribió: Te lo confirmo: en Linux, Botocs no tira con OpenJDK, hay que usar el de Sun. En windows no lo se, porque no fumo windows, pero supongo que pasará igual.
Con AIBowl peor, pierde el sonido en el de Sun. Asi que por ahora he vuelto al OpenJDK, donde tira AIBowl con sonido, y el JavaBBowl (en local al menos). Ójala el próximo que quiera reinventar la rueda lo haga... no se, con PyGame, a lo mejor tengo más suerte y funciona todo.
-
- Novato
- Mensajes: 166
- Registrado: Mar Oct 19, 2010 10:22 am
- #NAF: 15374
- Ubicación: La Pérfida Albión
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Te cuento lo que yo tengo en mi instalación linux, a ver si te sirve de referencia:
Distro: Archlinux
Java 6u22-3
Botocs 0.6.1d, versión especial de nuestra liga para LRB6 (cambian solo los archivos xml de reglas)
Tiene pinta de que el Botocs se te queda colgado esperando que la tarjeta de sonido quede libre. Para no tener ese problema y que no haya conflicto con el daemon de sonido, yo suelo lanzar el Botocs con el comando aoss por delante:
aoss java -jar BBowl.jar
Prueba y me dices.
El sonido del Aibowl tambien me falla a mi, pero todo lo demás me funciona perfectamente.
Distro: Archlinux
Java 6u22-3
Botocs 0.6.1d, versión especial de nuestra liga para LRB6 (cambian solo los archivos xml de reglas)
Tiene pinta de que el Botocs se te queda colgado esperando que la tarjeta de sonido quede libre. Para no tener ese problema y que no haya conflicto con el daemon de sonido, yo suelo lanzar el Botocs con el comando aoss por delante:
aoss java -jar BBowl.jar
Prueba y me dices.
El sonido del Aibowl tambien me falla a mi, pero todo lo demás me funciona perfectamente.
Hackerbunny, anteriormente conocido como Fnord.
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
Perpetrador del fantabuloso Tratado de Hackerbunny-Fnord sobre la probabilidad y el Blood Bowl
-
- Veterano
- Mensajes: 1462
- Registrado: Mié Jul 07, 2010 12:07 am
Re: AIBOWL: un Bot que juega mucho mejor que la IA del juego
Muchas gracias. Creía que en 2010 ya no haría falta wrappers... veo que no. No hay daemon, va con ALSA a pelo y el resto de programas mezclan sin problemas, aunque creo que ninguno depende de OSS sino que entienden ALSA.Hackerbunny escribió: Tiene pinta de que el Botocs se te queda colgado esperando que la tarjeta de sonido quede libre. Para no tener ese problema y que no haya conflicto con el daemon de sonido, yo suelo lanzar el Botocs con el comando aoss por delante:
aoss java -jar BBowl.jar
Prueba y me dices.
El sonido del Aibowl tambien me falla a mi, pero todo lo demás me funciona perfectamente.
Con el aoss el Botocs que venía en un zip marcado como FULL tira con sonido, el otro casca en la pantalla de arranque. AIbowl tira con sonido. JavaBbowl con sonido pero el mapa grande una vez no cargó, luego sí. Conclusión: bastante mejoria salvo algún problema menor.
Ya que estamos, ¿conoces algún conversor entre formatos de equipo? Unos usan XML y otros HTML.