El campeón de GIA2 SpaceShip War ha sido Killer
Felicidades por el logro!(http://img5.imageshack.us/img5/7657/campeonkiller.png)
Kraken: Si Killer, un par de Steps que disparaba antes y empatábamos -_-
VER VIDEO AQUI GIA2 Ronda2 (http://www.livestream.com/comunidadgm/ondemand/flv_be142481-34d8-449e-b823-c88b9c908ccf?initthumburl=http://mogulus-user-files.s3.amazonaws.com/chcomunidadgm/2009/11/08/be142481-34d8-449e-b823-c88b9c908ccf_410.jpg&playeraspectwidth=4&playeraspectheight=3)
Descarga de los archivosAl final del tema hay 4 adjuntos del concurso.
-Están los editables pelados para los participantes sin IAs de los jugadores, tanto para versión lite como pro de gm. (Primeros 2 archivos)
-El tercer archivos es un editable con todo el contenido del concurso, participantes, etc...
-El cuarto archivo es lo mismo que el tercero pero directamente el ejecutable (.exe) para los que no posean Game Maker 6 e igual quieran poner a prueba sus habilidades contra las IAs.
Sepan que el juego es jugable ya que tiene opción para manejar a un jugador.
Lista de participantes-Topet
-Guacusio
-
Killer-Raul Omega
-Alfonsos1
-knd144
-KrakenHimoto (participé, pero como organizador no participo oficialmente)
-Hardraid (descalificado por bug en el editable)
-Elviskelley
Resultados
Killer 7/7
KrakenHimoto 6/7 (No participa oficialmente de la competencia)
Guacusio 4.5/7
Alfonsos1 4/7
Topet 3.5/7
RaulOmega 2/7
ElvisKelley 1/7
knd144 0/7
(http://img39.imageshack.us/img39/7809/resultadosgia2ronda2.png)
No voy a hacer una review de las IAs, pero a cambio les voy a dejar los registros de todos los participantes Yai =D
KrakenHimoto
/*Krakenhimoto
Fecha de inicio de la IA: Sabado, 24 Octubre 2009
Fecha de finalizacion: Lunes, 26 Octubre 2009
Debido a que la IA deberia cambiar segun como se comporta la oponente idee un sistema en el que hago varios tipos de IAs para ver cuales son los puntos debiles de cada una segun su comportamiento.
v_01.IA01: Es una IA estatica. Centra su inteligencia en sus disparos, cuando usar cada tipo y a que distancias.
v_01.IA02: Es una IA agresiva a ciegas, por esta razon suele suicidarse.
v_01.IA03: Es la IA que se va a utilizar en la competencia, es agresiva, sigue al oponente y usa el mismo sistema de disparo que la IA1. Evitar salirse del mapa.
v_01.IA04: Es como la IA03 pero ahora tiene un nuevo sistema de disparo mucho mas preciso tanto para disparo normal y con starshoot.
v_01.IAKH(v5): Esta IA es como la IA04 pero tiene la caracteristica que se deszplaza mucho mas rapido por el mapa y se maneja mejor con los limites del mapa lo que permitio que venza a la IA estatica invencible hasta ese momento.
Version de la IA: 1.0
Voy a escribir todo de manera cronologica a medida que hago cambios:
-Por ahora estoy en la etapa inicial de la IA, ya cree un script efectivo para rotar en la direccion correcta segun hacia donde me quiera desplazar.
-Ahora voy a diseñar un sistema que detecte cuando la IA no tiene retorno y va a morir irremediablemente por salirse del campo.
-Me centre en los disparos ahora que no me moria saliendome del mapa, el sistema anterior era el clasico disparo al cuerpo del oponente, lo cual si esta en movimiento jamas le das. Lo que hice fue un sistema que la IA apuntara siempre
a donde se encontraria el oponente 40 steps mas adelante (el tiempo que dura el disparo) si dejase de acelerar y se desplazara por friccion. Este sistema mejoro mucho el sistema de disparos pero aun tenia problemas.
-Luego de corregir varias variables que tenia mal me di cuenta que mi sistema solo funcionaba si la IA enemiga se encontraba a una distancia jsuta de recorrido de 40 steps de la bala, por lo cual erraba mucho.
Lo que se me ocurrio fue calcular todas las posiciones en un array de la bala y hacer lo mismo con el jugador en modo desplazamienzo con y sin aceleracion. Luego lo que hago es para cada tiempo comparar coordenadas, si coincidian disparar.
Esto me permitio y MUY efectivo sistema de disparo.
-Luego lo que mejore fue el seguimiento a la IA enemiga, mi sistema para no salirme del limite del mapa hacia que mi IA se desplazara lento. Lo que hice fue mejorarlo para que si aceleraba sin riesgo de muerte (osea acelerar hacia el centro del mapa) lo hiciera.
-Algo que no dije antes, pero si la otra nave esta a mas de 40*8 (recorrido de una bala) hace starshoot, sino no, xq el cooldelay es demaciado lento en la starshoot.
-Tengo planes a futuro de hacer que mi IA se maneje por estados segun la situaicon en el mapa.
-Implemente un sistema que cuando detecto una mina enfrente de la nave y este a menos de X distancia de la vuelta y acelere para alejarse de ella. Parecido al concepto del limite del mapa
Asi termina mi IA_v01: Algo en lo que me centre mucho en esta IA fue generar modulos tecnicos que me permitieran desplazarme con precision, pero se que la verdadera guerra se encuentra en otro campo que es la estrategia de batalla.
Ahora que tengo la tecnica bastante pulida me puedo centrar en ver que es lo que pueden llegar a hacer los oponentes para contrarestarlos (AHI ESTA LA CLAVE!)
Dificultades:
-Mayormente fue pensar como vencer a una IA estatica.
-Ver el tema de las bombas, que aun no resuelvo totalmente aunque tengo una solucion bastante safisfactoria
-Algunos problemas con calculos angulares.
Version de la IA: 2.0
Se mejoró la forma de detectar y esquivar las bombas y el limite del mapa.
Killer/* Primera Ronda
Iniciada en: Domingo 24 / 10 / 2009
Finalizada en: Mircoles 28 / 10 / 2009
IA creada por Killer
Versión: 0.8
Lo primero que hice fue un script que rotará la nave en dirección al enemigo y disparará, seguido por un script que evitará que la nave
saliera del ring. Acá surgió el primer problema, la nave seguía rotando hacia el enemigo mientras trataba de no salirse, y terminaba sin
conseguir ninguna de las dos. La solución fue agregar una variable de estado para que la IA identifique si puede rotar hacia el enemigo
o aún esta tratando de salvar su pellejo. De paso hice un script para identificar el lado más corto hacia el cual rotar para mirar en X
dirección.
Luego hice un script para que la nave buscara una posición desde donde atacar al oponente, de preferencia de espaldas, pero sin la
posición este fuera del ring. Fue necesario agregar un par de variables para almacenar dicha posición.
Finalmente hice un script para que la nave evadiera balas y minas, por mucho el más problemático. El script checa la trayectoria de cada
bala para identificar cuales son peligrosas y buscar una posición que las evite. Lamentablemente el cambio constante de trayectoria de la
nave en si hace que no todas las balas sean evitables. En el caso de las minas se checa la trayectoria de la nave para ver si chocara con
alguna mina y de ser el caso cambiar la ruta, pero el script para evitar que la nave salga de la habitación a menudo interfiere con él.
De paso agregue al script que apunta y dispara la opción de disparar starshots para tiros difíciles y al script de esquive la opción de poner
minas si el oponente se acerca demasiado en dirección a la nave.
La IA aún necesita un comportamiento contra starshots y afinar el script de evasión. Pero me temo que eso quedará para la segunda ronda.
Manera de "pensar" de la IA:
La IA tiene como prioridad mantenerse dentro del ring y evitar daño, por lo que no intentara ponerse en posición de ataque hasta que este
fuera de peligro. Si por casualidad el oponente entra en el alcance de la nave mientras esta se pone a salvo la nave intentara dispararle,
pero no perseguirlo. Cuando la nave no corre peligro, y su oponente esta dentro del alcance de sus balas la nave intentara dispararle sin
moverse. Si el oponente esta fuera del alcance de la nave y esta está fuera de peligro intentará ponerse detrás del oponente o el área libre
más cercana.
Topet/*
He aqui el registro de la nave Topet Sonic Blue Insect:
Version de la IA: 1.0
Fecha de inicio de la IA: Domingo, 25 Octubre 2009, 9:47 PM
Fecha de finalizacion: Lunes, 26 Octubre 2009, 7:00 PM
Forma en la que piensa:
La IA se basara en estados, la lista y descripcion de estos estados se actualizara junto con la IA.
(0)Normal.-No hay ninguna actividad que resalte en este estado, siendo asi debera rastrear la nave enemiga.
(1)Alerta de limite.-Se entrara en este estado si la distancia hacia el centro es mucha.
(2)Atacando.- Buscara apuntar al enemigo y en funcion de la distancia atacara con diferente arma.
(3)identificada bomba.-Tratara de esquivar las bombas que se encuentre enfrente
Problemas y dificultades:
v1.d1.-Tuve problemas para ajustar la direccion en que debia girar la nave para encarar al enemigo, despues de un rato obtuve un
resultado agradable y aunque no fue lo mejor estoy satisfecho por el momento :)
v1.d1.-Descubro que mi IA desperdicia sus municiones XD, disparaba aun cuando el enemigo no estaba enfrente
es facil de arreglar solo me falto comprobar hacia donde miraba.
v1.d2.-Tuve muchos problemas para hacer que la nave intentara esquivar las bombas, hice que girara en sentido contrario si estaba
muy cerca de una bomba, no logra esquivar totalmente las bombas, esto vere una forma de mejorarlo en futuras versiones
*/
Guacusio/*
Fecha de inicio: 25/10/2009
Fecha de término: 26/10/2009
Nombre del creador: Guacusio
Versión:1
Algoritmo:
-La IA no hace nada si no existe el enemigo
-Se revisa si hay peligro de salir de la arena de combate, en base a
la distancia de la nave hasta el centro del room. Si es así, deja de acelerar
y gira hasta mirar hacia el centro para luego acelerar.
-Si el peligro anterior no existe, gira para estar en posición de ataque.
Para ello, calcula en qué dirección y momento debe disparar para que el proyectil
impacte al oponente, suponiendo que éste conserva su velocidad.
-Se dispara un proyectil tipo 4 si el oponente está "lejos"
y un tipo 1 si está "cerca", siempre que el oponente esté en la mira
-Luego deja una mina sólo si el oponente se dirige a colisionar con la nave
y está "cerca".
-Intenta esquivar minas (si existen), girando y acelerando
mientras tenga en frente la mina
Problemas encontrados:
-Primero trabajé en el script para predecir el ángulo necesario para acertar
un disparo hacia el oponente, considerando la dirección y rapidez con que
se mueve. Mediante trigonometría y cinemática logré sacarlo, aunque costó
un poco, sobre todo porque no estaba seguro de si el script funcionaría
en todas las combinaciones posibles de direcciones y posiciones.
-Noté que el script de KrakenHimoto para girar recibe un ángulo como argumento,
pero el signo de este ángulo no sigue la nomenclatura de GM (positivo contra
las agujas del reloj). Me dio dolores de cabeza hasta que encontré que
su nomenclatura era diferente.
-El cálculo del lado hacia donde conviene girar para mirar hacia el centro
es muy simple, pero nada obvio. Esto me tomó bastante tiempo, porque
un ángulo de 359º y otro de 1º son muy parecidos en un papel, pero para
nada a la hora de hacer cálculos.
-Fue extremadamente difícil encontrar un algoritmo mínimamente decente
para esquivar las minas. El que hice me parece bastante malo y suele fallar,
pero al parecer garantiza que la nave no se saldrá de la arena (lo cual
sería una muerte definitiva, a diferencia de tocar una mina)
Notas:
-La IA fue calibrada por ensayo y error para saber, por ejemplo,
a qué distancia del centro del room se considera peligroso estar, o
qué velocidad máxima se está dispuesto a tolerar.
*/
/*
Fecha de inicio: 01/11/2009
Fecha de término: 03/11/2009
Nombre del creador: Guacusio
Versión:2 (corresponde más bien a ligeras modificaciones de la IA anterior)
Algoritmo:
-La IA no hace nada si no existe el enemigo
-Se detecta una colisión potencial con una mina
-Se calcula el ángulo óptimo de disparo, tomando en cuenta la velocidad
del oponente y la de los proyectiles
-Se revisa si hay peligro de salir de la arena de combate, en base a
la distancia de la nave hasta el centro del room. Si es así, deja de acelerar
y gira hasta mirar hacia el centro para luego acelerar.
-Revisa si está en posición de ataque, comparando el ángulo óptimo de disparo
con el image_angle.
-Si el ángulo es óptimo, se dispara un proyectil tipo 4 si el oponente
está "lejos" y un tipo 1 si está "cerca"
-Luego deja una mina sólo si el oponente se dirige directamente a colisionar
con la nave y está "cerca".
-Intenta esquivar minas (si existen), girando y acelerando mientras
tenga en frente la mina. Gira en el sentido que más rápido lo aleja
de la mina.
Problemas encontrados:
-En esta versión corregí el script para encontrar el ángulo óptimo de
disparo. En un comienzo no funcionaba, hasta que luego de varias horas
de pensar y rebuscar, noté que tenía un simple error de formato de ángulos
dentro de una operación: se me había olvidado transformar radianes en grados.
¡Ajajajajaja! ¡Tan simple como eso!
-El algoritmo para esquivar minas sigue siendo igual de malo, lamentablemente
parece ser que va más allá de mis posibilidades, por ahora.
*/
RaulOmega/*REGISTRO
---DATOS DE LA IA---
Fecha version 1: 29/10/09
Fecha version 2: 5/11/09
Autor: Raul_Omega
***DESCRIPCION VERSION 1 (29/10/09)***
--FUNCIONAMIENTO--
La IA cuenta con 2 movimientos o estados.
>> Movimiento 1 (movimiento 0 y movimiento 1 del evento Step)
La nave se mueve desde la posicion inicial hasta un radio cercano al borde del circulo, y acto
seguido describe un arco cerca del limite del terreno de juego.
El objetivo de este movimiento es que la IA rival se salga del circulo y se estrelle, esta claro que
para IAs avanzadas este movimiento sera inutil
Al cabo de 15 segundos se pasa al movimiento 2
>> Movimiento 2 (movimiento 2 del evento Step)
La nave sale al ataque del enemigo, siempre buscando su cola para atacar por la espalda. Se ha definido una velocidad
maxima dependiendo de la distancia al centro con el fin de evitar que la nave adquiera velocidades muy altas
y se salga del circulo por no poder frenar. A su vez se ha definido un radio critico que si se sobrepasa
se hace girar la nave en direccion al centro y acelerar al maximo para evitar estrellarse.
Este movimiento perdurara hasta acabar la batalla
En cuanto al ataque, por el momento no se ultilizan las minas ya que muchas veces era necesario volver por el camino
en el que ya se ha colocado una mina y era facil tocarla poco despues de ponerla. Mientras no se defina una estrategia
para sortear minas no se incluirá su uso
Por tanto la nave solo ataca con starshoot o con el ataque basico. El starshoot se utiliza cuando la nave enemiga se encuentra
por delante de nuestra nave a una distancia menor de aprox 100.
--PROBLEMAS SURGIDOS--
-Uno de los primeros problemas surgidos fue como evitar que la nave se saliese de la region de juego, para ello se opto por
definir unas regiones de velocidad. Si la nave se encuentra cerca del centro del circulo de juego puede correr mas que si
esta cerca del limite. Aparte de esto se define un radio critico a partir del cual la nave fija su direccion en el centro
del circulo.
-Por falta de tiempo no se ha diseñado una estrategia para sortear minas enemigas por lo que la IA puede resultar
muy vulnerable a ellas.
***DESCRIPCION VERSION 2 (06/11/09)***
Se ha elimindado el movimiento 1 en el que la nave recorria el circulo externo de la arena, ya que solo
unas pocas IAs cayeron en esta trampa en la primera ronda.
Como mejoras:
-Ahora la nave utiliza minas y se ha implementado una estrategia para esquivarlas, aunque no siempre funciona
Problemas:
La nave tiene muchos aspectos por mejorar pero no he dispuesto de suficiente tiempo para investigar y programarlo
Hardraid//explicacion de como piensa la IA:
//Fecha: 27/10 hasta 30/10;
//primero controla diferentes valores como por ejemplo las balas que se crean, movimientos futures, etc..
//sabiendo todo esos datos realiza diferentes acciones para poder atacar por adelantado.
//Problemas surgidos...
//problemas con calculos matematicos por mi escaso conocimiento en matematicas... xD
Alfonsos1/*Fecha de inicio: 14/10/2009 Fecha de finalizacion: 30/10/2009
VREVE DESCRIPCION DE LA IA
Esta IA se vasa en dos estados, el primero es atacar y perceguir al enemigo y el segundo es alejarce del vorde.
Se vasa en distinas direcciones, angulos y otras variables para decideir que deve hacer.
La IA estara en el estado 1 (atacar y perceguir) siempre y cuando la nave no se hacerque a menos de un minimo (MIN).
La IA no utiliza minas ya que no les encontre la manera de que me favorecieran a mi mas que al enemigo.
Simplemente intenta apuntar accia la direccion a la que se mueve el enemigo y disparar.
EVOLUCION DE LA IA
Lo primero que intente hacer es darle punteria a la nave. Osea determinar la direccion a la que devia disparar (DIRECCIONATK) y
que gire en asta esa direccion.
Primero hice que apuntara a la posicion del enemigo, lo cual funcionaba solo si el enemigo estaba quieto.
Luego hice que considerara la speed y la direction del enemigo y tambien la distancia de la nave al enemigo, lo que hizo que
mejorara vastante.
Pero finalmente termine agregando el factor speed_accel y friction ademas de la dir y la rot del enemigo y una estimacion de
cuanto tardaria el disparo en llegar al enemigo, asi mismo la punteria no mejoro mucho.
Luego simplemente hice que hacelerara todo el tiempo, chocaba rapidamente con el vorde de la arena.
Cree la variable PERCEGUIR y hice que esta fuero 0 si la nave se hacercaba mucho al vorde de la arena, luego hice que checara
si PERCEGUIR era 1 en ese caso haceleraba y perceguia al enemigo de lo contrario no aceleraba y giraba asta apntar al centro de
la arena, para esto tube que crear una nueva direccion (DIRECCIONCENT).
Pero este sistema era eneficiente ya que habeses chocaba y otras veses dejaba de perseguir al enemigo en situaciones donde no
habia riesgo de chocar.
Entonces cree la veriable MIN la cual representaba la distancia segura minima del vorde de la arena. Luego puse que cuado la
nave se hacercar al MIN cambiara al estado 2 (alejarce del vorde), habian veses en la que la nave no podia respetar el margen
y terminaba entrando a ese MIN. Por eso aumente e MIN multiplicandolo por un numero.
De todas maneras la nave chacaba con el vorde de vez en cuando pero no queria aumentar mas el MIN ya que cuanto mas tiempo
pase la nave en el estado 1 es mas eficiente. Por eso cree la variable RIESGO se vasa en la velocidad de la nave, en su
direccion y en la distancia al vorde de la arena. Cuando el RIESGO es muy alto la nabe deve dejar de acelerar, pero puede
seguir apuntando y disparando.
Probando la nave vi que aveses estaba muy lejos y disparaba, luego se acercaba pero aun no podia disparar nuevamente, por lo
que hice que si las naves se hacercan muy rapidamente la nave espere para disparar asta que esten a una dispancia mas pequeña
esto mejoro la punteria.
knd144/*hoja de progresos y funcionamiento de mi IA*/
//funcionamiento de mi IA
/*
-Mi inteligencia artificial es un agente logico que basa su respuestas iniciales a travez de descartes de operaciones con respecto
a la direccion y vista de la nave, y tal comportamiento se mantiene en todo el juego:
-desde que inicia empieza a rotar la nave, su rotacion es calculada a manera de que sea la mas corta posible para que quede mirando
dentro de ciero rango de error de direccion a la nave oponente, asi cuando la otra nave quede al lado izquiero, mi nave rote al lado
izquierdo, si queda al lado derecho, rote al lado derecho.
-Teniendo la nave enemiga enfrente ambas mirandose, se dispara la bala estrella
-La nave solo acelera cuando tiene la nave contraria mas o menos frente a él, y desde entonces jamas deja de acelerar. Caso contrario,
en teoria la nave deja de rotar en ocasiones, pero debido a que con cada paso que de mi nave hacia adelante la direccion con respecto
al enemigo cambia, la rotacion se activa instantáneamente.
-Para la bomba se podra poner cada que cierta alarma se active(la 2, aun que tambien funciona para activar el disparo,
la vuelvo a usar para ahorrar recursos) y se cumple la condicion de que la nave enemiga
hipoteticamente biene hacia la mia, se deposita la bomba; aun que tambien llegara a depositarse aleatoreamente de manera obligada.
-El disparo se activa con 2 condiciones: activarse una variable que se inicializa solo con la alarma 2, y cuando este mirando al enemigo
empieza la balacera. Debido al giro ecagerado (o abombachado) la bara dificilmente se disparará hacia la direccion precisa en donde esta
la nave enemiga, lo que dara la oportunidad de que se desvie y la bala conlicione con la nave.
//progreso de mi IA
/*primeramente, quiero que mi nave rote hacia dentro del campo y
que mejor que al hacerlo empiece a buscar al oponente y se dirija a este.
estoy teniendo varios problemas para determinar al enemigo frente a mi IA,
ya que con la simple direction y point_direction() no funciona; buano, a veces si
pero no se el por que debes en cuando. He intentado crear ciclos while en vez de
un if, aun que tengo los mismos resultado, igual trato con ciclos Do pero casi
siempre termino haciendo cilcos infinios, y cuando no, el codigo llega a no
repetirse y perder el resultado en el intento.
Hago nota que he intentado comprobar grado por gradola direccion a la que mira
mi IA y la direccion en la que se encuentra el oponente, no funciona como debe
ser.
he estado haciendo intentos con alarmas para ver si las funciones que detienen
el giro o hacen que la nave dispare funcionan, y así es, la cosa esta en mi
algoritmo aun que no veo en que.
ahora ya pued fijar la "vista" hacia el enemigo, y segun yo quiero es que mi nave gire
mientras el oponente no este frente a él, lo que da el problema que casi siemrpe debera
estar girando y moviendose, asi que para que mi nave no giera hacia un solo lado
y empiece a andar en espiral necesito que fije la rotacion mas corta para mirar al oponente
y creo que la clave misma es la direccion del oponente. En un principio queria checar
cual distancia en grados era mas corta (si de manera inversa al reloj, o de manera normal)
asi que use contadores en un ciclo for para que vaya checando ambas direcciones y vea cual
es mas corta segun el contador mas pequeño. Pero la verdad fue un fracaso ya que la nave
oponente siempre se mantendra en movimiento... asi que fijando la direccion misma de la
nave con erspecto a la mia podre saber cual es la rotacion mas corta, aun que tendre que
pulir detalles creo que tengo la solucion.
Hasta ahora estoy haciendo una IA que se base en los movimientos del enemigo, si tengo el suficiente tiempo
como dedicarle un dia entero, creare una estrategia mas propia. De lo contrario enviare esta a
la primera ronda y en la segunda la pulire siendo que tengo la base ya hecha.
la teoria anterior no tenia sentido a la hora de la practica, ya que su direccion puede tener
45 grados de diferencia a su direccion con respecto a mi nave... pero logre obtener una solucion
matematica que compara direccion de mi nave y direccion de mi nave con respecto a la otra
y obtuve una respuesta mas correcta. El problema es sin duda ahora una nave inestable, aunque
sin duda se comporta de una mejor manera. El problema es que avanza mucho mientras gira, pero
ya luego vere como arreglar eso. Me pondré a trabajar mas en mi ataque, ya que ya es hora
de empezar con la ofensiva, despues tratare de maneobrar mejor.
Por lo q veo un ataque no puede ser muy efectivo si mi nave es propensa a salirse de la
arena de batalla, y veo que la causa mayor es el hecho de que se pasa derecho al seguir al enemigo,
asi que por ahora estoy intentando en una ultima alternnativa el que la nave deje de
acelerar si tiene a su espalda la nave enemiga, considerando un rango, claro esta.
veo que el frenar cuando tengo de frente el borde del campo es algo tonto, mi nave tiene
la defensa natural de que aun que gire sigue avanzando y puede esquivar hasta cierto punto el
borde del campo siempre y cuando el oponente no este muy cerca de ella.
el sistema de ataque tengo pensado empezar atacando con una bala estrella justo cuando el oponente
este frente, asi que deshabilito el ataque normal al principio para que lance la bala estrella. La unica forma
que se me ocurrio para hacerlo es que el ataque normal se habilite pasado cierto tiempo despues de iniciar
la partida.
Veo que el tiempo de inicio de la ronda se toma encuenta desde que se crea la nave, por lo que solo
aumentare el tiempo para que se active la alarma.
Funciona bien el disparo estrella al principio, pero probando con migo o la copia de mi IA no funciona
mas veces, como tengo q poner intervalos de disparos y eso seria saturar mucho el codigo, ya no lo
pulire, confiare en que las demas IAs den oportunidad de disparar mas veces la estrella.
La bomba es puesta con una condicion hipotetica: si el enemigo me mira quiere decir que biene hacia a mi
y por consiguiente tomara una ruta directa, por lo que avansaré y pondré una bomba en donde estaba mi nave.
Aun que veo que por alguna razon extraña (tal vez mi logica a la hora de programar) la bomba no se pone, igual creo
que se debe a que el ataque normal esta activado, lastima, tendre que dejarlas al azar si esta condicion se
cumple cuando pase la alarma...
/*
El disparo normal actuará todo el juego, ya que por desgracia la punteria es lo que menos le pude hacer, lo que tiene
es por la rotacion natural de mi nave que siempre trata de dirigirse al enemigo.*/
ElvisKelley//segun entiendo aqui llevo un Registro de que trata mi IAElvisKelley-V-0.1 fecha: 31/10/2009.
//Explicacion como piensa mi IA
//bueno es simple mi Ia solo detecta el angulo en grados del centro
//y se dirije a el centro. si detecta la nave enemiga la persigue
//y le dispara, si se aleja mucho del centro regresa a este
//asi evitar chocar y destruirse.
//cualidades su ataque.
//su habilidad para mantenerse en la pista.
//Problemas Surgidos.
//Espero resolverlo mas adelante.
//los problemas que afectaron.
//al principio el problema fue que se estrellava
//cosa que resolvi quitando una variable.
//esa era para detectar disparos enemigos pero causaba descontrol en la nave
//espero mejorarlo para colocarlo de nuevo mas adelante.
//por ahora el defecto es que no esquiva las minas :-C.
Analisis de las IAsKiller:CitarGran merecedor de la corona, su IA destaco principalmente por la efectividad de sus disparos y por su capacidad de plantar bombas y esquivarlas. Si bien no tiene la ofensiva mas potente de todas, esta muy balanceada en cuanto a evacion y ataque. Disparo con capacidad de ver a futuro la posicion de su enemigo para dar en el blanco.
Krakenhimoto:CitarJunto con la IA de Killer estas dos IA estaban un escalon por encima del resto de las IAs. Si pusieramos cualquier IA en 20 rounds con la IA de Kraken o Killer con muchisima suerte ganarían una. En mi opinion la IA con más capacidad ofensiva y precision a la hora de atacar. No hace uso de las bombas y muy poco del starshot, esto se debe a que por su precicion de disparo le conviene mas por un balance de delay/potencia hacer uso del arma basica. Su gran debilidad es su no muy pulido sistema para esquivar bombas. Al igual que Killer, aunque con un sistema algo mejorado tambien tenia la capacidad de calcular a futuro la posicion de los enemigos para dar en el blanco.
Guacucio:CitarEsta IA era bastante balanceada. En ese sentido la 2da IA mas balanceada por debajo de la de Killer. No tenia gran ofensiva pero de alguna manera de las arreglaba para salir victorioso en la mayoria de sus peleas.
Alfonsos1:CitarEsta IA me sorprendio debo decir, esperaba mucho menos de ella. Una IA muy ofensiva, un escalon por debajo del ataque de KrakenHimoto y Killer que le dio un 4to puesto. Aunque merecía el 3ro a mi entender.
Topet: CitarNo hay mucho que decir, una IA tipica de mitad de tabla. No destacaba por nada pero tampoco tenia carencias demasiado marcadas.
Raul Omega:CitarSu defensa y ataque fueron pobres. Se esperaba mas de esta IA debido a que fue el ganador de GIA1. Si aplaudo su capacidad de innovar con su sistema de inicio donde daba medio arco por el campo a ver si se suicidaban algunos jugadores. Aunque no le dio demasiado resultado. Ya que la mayoria, salvo knd144, tenian un sistema para evitar salirte del campo.
Elvis Kelley: CitarUna IA que trataba de mantenerce siempre cerca del centro del campo por temor a irse del radio de juego. Eso le costo ser blanco facil en practicamente todas las peleas. En cuanto a su ataque su idea era disparar constantemente, aunque la precision del disparo fuera nula, disparaba al azar practicamente en el 90% de las oportunidades. De todos modos era mejor eso a algunas IAs que por esperar el momento exacto terminaban por no disparar practicamente nunca.
knd144:CitarLa IA Kamikaze, su ataque no estaba tan mal, pero su incapacidad de permanecer dentro del campo le costo el suicidio en 6 de 7 peleas.
Si participaste de GIA te invito a colocar esta imagen en tu firma.(http://linuca.org/link/?l730) (http://linuca.org/link/?l731)
Bueno el concurso termino hace bastante tiempo, pero creo que merec?aun final digno.
Vuelvo a felicitar a todos los que participaron en su momento y espero que se animen a participar mas personas si es que vuelvo a organizar otro, porque la verdad lleva much?simo tiempo y esfuerzo armar todo. Gracias :=)
es muy dificil el modelo de movimiento asteroid, no lo hago ni yo mismo, lo va a hacer una IA que yo programe, es imposible...
kraken, pegale los Registros en el de la carrera de los droides para poder leerlos online...
Ciberman, te prometo que despu?s los busco y los subo los registros de los participantes de GIA_01.
habra otro concurso de GIA?
si la respuesta es si, cuando sera? incluiran la version GM8?
En principio SI habra otro GIA, aunque no esta definido al 100%.
En el caso que se haga.. con el tiempo que lleva armar y organizar todo en 2 meses m?nimo.
En cuanto a la versi?n a utilizar, la idea seria usar la GM8. Igualmente yo tengo casi terminado un GIA que esta en GM6 que es el que vendr?a a ser el GIA03. Pero como se que la mayor?a utiliza GM8 capaz lo adapte.
No no s puedes dar una idea de que se ba a tratar? ???
En principio GIA03 va a ser una tem?tica parecida al Osmos, el que no halla probado ese juego se lo recomiendo ampliamente, es liviano, buenass graficas y sonidos, ni hablar de la jugabilidad.
Bueno, masomenos consiste en unas c?lulas que van creciendo a medida que absorben otras c?lulas. Y solo se puede comer c?lulas mas peque?as que vos. La gracia es que en que para moverte consum?s energ?a que te hace perder masa.
Con este video del juego de Osmos se van a dar una buena idea de la tem?tica.
http://www.youtube.com/watch?v=pso6UBicLWU
Estar?a bueno agregarle algunas cosas para la GIA3. Algo como m?s jugadores por partida, y/o que las simulaciones se graben para que podamos ver c?mo sucedi? todo (Hay una dll para eso) No he dicho nada :-[. Me ofrezco a ayudarte ya que me qued? con las ganas de participar en la GIA2, y de hecho me hice mi propia IA para probar XD
Hola Kraken, me parecen genial los dos temas recopilatorios que has hecho, la verdad es que te curraste muchisimo las competiciones y se merecian estos temas, sobre todo me alegra ver el de GIA01 que habia quedado en el olvido con los blogs. Al igual que para las dos anteriores, si haces una nueva competicion sin duda contaras con mi participacion :)
Un saludo!
kraken me voy a iniciar en GIA 2,xd haber si puedo hacer una buena IA y ya puse la img de GIA 01 en mi firma xd gracias
Exelente a mi me encantaria participar en el GIA 3, y si puedo ayudar en algo para su organizaci?n o creaci?n no duden en dec?rmelo.
Estoy evaluando con Eduardo960 las caracter?sticas de un posible GIA3. El lo organizaria, yo tal solo lo asesorar?a aprovechando la experiencia que gane desarrollando GIA1 y GIA2.
De todos modos por ahora a no hacerse ilusiones que organizar este tipo de eventos lleva su buen rato y podr?a quedar en la nada si no convence la idea.
Pero bueno, mas que nada lo digo por los que aun tienen esperanzas de un GIA3. Sepan que siempre es posible pero no probable.
Quiza un d?a de estos redacte algunas premisas b?sicas a la hora de organizar un concurso de este tipo en especifico (osea una GIA) por si un d?a alguno se quiere aventurar a plantear algo que tenga chances de ser viable y no que desde el vamos se note a leguas que no funcionaria.
Saludos
estaria genial un GIA_03 de peleas, vista lateral cooperativo
?me explique?
algo como KOF pero con sprites estilo stickman y que sea en IAs coperativas
Cita de: zerozerito en Mayo 06, 2011, 12:05:17 AM
estaria genial un GIA_03 de peleas, vista lateral cooperativo
?me explique?
algo como KOF pero con sprites estilo stickman y que sea en IAs coperativas
Stickman? No lo conozco, y esta vez que no resulte que es superarchirecontramegahyperfamoso. XD Vendr?a bien con sprites originales de KOF. Son tambi?n faciles de conseguir, y Kawaks no es dificil de usar, si los sprites que quieres no est?n en internet.
Alguien quiere corregir?
Cita de: Metal Mario en Mayo 06, 2011, 04:51:00 PM
SPAM que anuncia gafas solares!!!
Cita de: zerozerito en Mayo 06, 2011, 12:05:17 AM
estaria genial un GIA_03 de peleas, vista lateral cooperativo
?me explique?
algo como KOF pero con sprites estilo stickman y que sea en IAs coperativas
Stickman? No lo conozco, y esta vez que no resulte que es superarchirecontramegahyperfamoso. XD Vendr?a bien con sprites originales de KOF. Son tambi?n faciles de conseguir, y Kawaks no es dificil de usar, si los sprites que quieres no est?n en internet.
Alguien quiere corregir?
stickman son personajes como los que se hacen con el lapiz un simple personaje sin detalles solo tiene lineas asi como este (http://imagenes.recursosgratis.com/gif-animados/data/504/1siluetas-stickman-thumb.gif) pero a?adiendoles los movimientos de pelea como golpes y combos
Ay, s?, es superarchirecontramegahyperfamoso. XD
Bueno, ver? como hacer uno, pero acepten la propuesta, con sprites de KOF, y usando un ejemplo de combos que v? por aqu?.
pues podria ser pero el chiste de los gia, es que son editables legales y originales que no usan contenido con derechos de autor asi que usar sprites de kof no quedaria dentro de gia aunque bueno se pueden hacer (con tiempo) sprites parecidos e ahi donde recomiendo stickmans son faciles de hacer :-[
El punto es que la gia debe ser con programaci?n original.. No utilizando ayudas externas, ni siquiera como referencia... Si hacen una yo participo n_n
Seria fabuloso un GIa 3, bueno...
Por curiosidad trabaje un poco en mi Ia, sin cambiar por completo el codigo fuente original.
Dejo adjunto el editable.
Despues veo como la analizo, va a ser testeada exhaustivamente.
Irá a haber una GIA3? Alguna vaga esperanza? :'(
Realice una review de todas las IAs de GIA2, recuerden hacer sus registros en el concurso vigente, GIA3
Les dejo el video para que comprendan un poco mejor el analisis.
VER VIDEO AQUI GIA2 Ronda2 (http://www.livestream.com/comunidadgm/ondemand/flv_be142481-34d8-449e-b823-c88b9c908ccf?initthumburl=http://mogulus-user-files.s3.amazonaws.com/chcomunidadgm/2009/11/08/be142481-34d8-449e-b823-c88b9c908ccf_410.jpg&playeraspectwidth=4&playeraspectheight=3)
Analisis de las IAs, por KrakenHimotoKiller:CitarGran merecedor de la corona, su IA destaco principalmente por la efectividad de sus disparos y por su capacidad de plantar bombas y esquivarlas. Si bien no tiene la ofensiva mas potente de todas, esta muy balanceada en cuanto a evacion y ataque. Disparo con capacidad de ver a futuro la posicion de su enemigo para dar en el blanco.
Krakenhimoto:CitarJunto con la IA de Killer estas dos IA estaban un escalon por encima del resto de las IAs. Si pusieramos cualquier IA en 20 rounds con la IA de Kraken o Killer con muchisima suerte ganarían una. En mi opinion la IA con más capacidad ofensiva y precision a la hora de atacar. No hace uso de las bombas y muy poco del starshot, esto se debe a que por su precicion de disparo le conviene mas por un balance de delay/potencia hacer uso del arma basica. Su gran debilidad es su no muy pulido sistema para esquivar bombas. Al igual que Killer, aunque con un sistema algo mejorado tambien tenia la capacidad de calcular a futuro la posicion de los enemigos para dar en el blanco.
Guacucio:CitarEsta IA era bastante balanceada. En ese sentido la 2da IA mas balanceada por debajo de la de Killer. No tenia gran ofensiva pero de alguna manera de las arreglaba para salir victorioso en la mayoria de sus peleas.
Alfonsos1:CitarEsta IA me sorprendio debo decir, esperaba mucho menos de ella. Una IA muy ofensiva, un escalon por debajo del ataque de KrakenHimoto y Killer que le dio un 4to puesto. Aunque merecía el 3ro a mi entender.
Topet: CitarNo hay mucho que decir, una IA tipica de mitad de tabla. No destacaba por nada pero tampoco tenia carencias demasiado marcadas.
Raul Omega:CitarSu defensa y ataque fueron pobres. Se esperaba mas de esta IA debido a que fue el ganador de GIA1. Si aplaudo su capacidad de innovar con su sistema de inicio donde daba medio arco por el campo a ver si se suicidaban algunos jugadores. Aunque no le dio demasiado resultado. Ya que la mayoria, salvo knd144, tenian un sistema para evitar salirte del campo.
Elvis Kelley: CitarUna IA que trataba de mantenerce siempre cerca del centro del campo por temor a irse del radio de juego. Eso le costo ser blanco facil en practicamente todas las peleas. En cuanto a su ataque su idea era disparar constantemente, aunque la precision del disparo fuera nula, disparaba al azar practicamente en el 90% de las oportunidades. De todos modos era mejor eso a algunas IAs que por esperar el momento exacto terminaban por no disparar practicamente nunca.
knd144:CitarLa IA Kamikaze, su ataque no estaba tan mal, pero su incapacidad de permanecer dentro del campo le costo el suicidio en 6 de 7 peleas.
Estaría bueno que me comenten si se sintieron identificados con las reviews. A ver que tanto acerté con el analisis. Y como no, si quieren agregar datos son bienvenidos.
También los invito a leer los Registros Actualizados, los ayudara a comprender aun mas el comportamiento de las IAs. Registros Actualizados (https://docs.google.com/document/d/15e5pARLNwnijz6tR1znM0O14q8lbS-fjJB9AdHNLK4w/edit)
Jaja, me siento mal por no haber actualizado mi IA, y en mi defensa tengo que sufri meses sin tener internet, aunque pude haberme esforzado mas xP, si creo que al final mi primer paso en la IA fue que hiciera lo básico, que se adaptara a lo mas necesario. El plan era "predecir" la posicion del enemigo y realizar asi un ataque mas efectivo :D. La habia mejorado un poco en lo del giro pero ya nunca la encontre (tampoco mi engine de plataformas).
Saludos
Recuerdo que por alguna razón no tuve tiempo para dedicarle a mi IA y al final no presenté nada... Lo único que hacía era no salirse del radio xD
Makero KrakenHimoto:
Tengo una IA para este GIA que no pude presentar en su tiempo. ¿Podré presentarla ahora? :-[
Yo Había realizado esa IA por aquellos días, pero me retrasé por los estudios y me dio vergüenza entregarla, pues no se movía, solo disparaba. :-[ Eso sí, era buena disparando, ninguna otra le ganaba. 8) Aún no se mueve, pero me gustaría exponerla. :D
Estoy interesado en las imágenes de firmas para los participantes. ;D
¡Tengo que ganarme una para mi firma! >:(
Sería un placer recibir la IA ;)
Makero KrakenHimoto:
Gracias, acá dejo el editable con la IA que implementé en aquel momento. En cuanto tenga tiempo le realizaré cambios para que se mueva. :-[
En otro orden de cosas, no entiendo porqué no ganaste la segunda ronda del concurso. No tengo nada contra el ganador, pero corrí todo el concurso tres veces para probar la IA contra todos los participantes y cada vez salía tu IA como ganadora. Acá tengo las pruebas en imágenes de cada intento. ???
Solo fué una observación, de todas formas, cuando termine con mi IA, la tuya no ganará más. ;) XD
Gracias por aceptar mi IA. Significa que no trabajé en vano al igual que ostentar la imagen de participante de los GIA es un honor. Lo digo en serio.
¿Podré usar la imagen de firma de este GIA? ;D
Gracias y disculpen las molestias ocasionadas.
Claro, igual debes saber que eres un participantes extra oficial. Nada le quitara el titulo a Killer. Por cierto si hiciste una IA estas en todo tu derecho de ostentar la imagen de participacion.
Respecto a porque gano Killer es simple, primero que nada, yo como organizador tambien participaba extra oficialmente. Igualmente, es verdad lo que dices, de 8 batallas la IA de Killer vencia a la mia solo una vez. Pero las reglas son las reglas. El torneo oficial se ejecuta una vez, y el que gana gana. Es como en el futbol....
Respecto a tus IAs estaticas. En realidad en el tiempo que desarrolle el concurso pense seriamente como hacer que una IA no fuera estatica y disparara eficazmente no ganara (osea que tuviera desventajas), pero no se me ocurrio forma de solucionarlo. Y como hacer que una IA de ese tipo no tuviera oportunidad contra la mía crei tenerlo solucionado en principio. Si bien es un concepto valido no me parece de lo mas interesante siendo que las fisicas del juego permiten exprimir mucho la movilidad y velocidad de las naves.
Makero KrakenHimoto:
Pido disculpas por la inmovilidad de mi IA. :( En aquel entonces no tuve tiempo para más y por eso fue que no la envié, para evitar la vergüenza.
Yo te había dicho que no se movía, que estaba incompleta. Con los estudios no tenía nada de tiempo. Hice lo que puedes ver, se acabó el concurso y lo dejé tirado en una carpeta. Para evitar una vergüenza ni lo mencioné.
Si crees que no vale la pena ni la publiques. Intentaré mas tarde lograr que se mueva y si aun estás interesado la enviaré.
Discúlpame, no fue mi intención faltarle el respeto al concurso. :( Aunque en las reglas no decía nada sobre la imposibilidad de estatismo.
Yo pensaba que podría ser interesante el algoritmo de previsión del movimiento MRU implementado en la IA.
Disculpen las molestias ocasionadas y hasta la próxima.
No me molesta, de hecho es un movimiento valido. Lo que quise decir esque cuando desarrolle el concurso intente solventar el que IAs estaticas fueran mas potentes que las moviles. Pero bueno, no se me ocurrio nada para resolverlo sin que cambiara dramáticamente y drasticamente el reglamento, asi que lo deje asi.
Todavía no pude verla tu IA, cuando entre a windows la miro y comento ;)