Comunidad Game Maker

Sección General => Eventos => Guerra de IAs (GIA) => Mensaje iniciado por: eduardo960 en Enero 04, 2020, 07:19:30 am

Título: ¡GIA_01+ comenzó!
Publicado por: eduardo960 en Enero 04, 2020, 07:19:30 am
¡GIA_01+ ha comenzado!

(https://www.comunidadgm.org/noticias/gia_01-ha-comenzado!/?action=dlattach;attach=18700;image)

Envía tu IA | Resultados (https://www.comunidadgm.org/index.php?page=GIA)
Descargar editable (https://www.comunidadgm.org/guerra-de-ias-(gia)/gia_01-ha-comenzado!/?action=dlattach;attach=18699)

Próxima fecha de envío:


5 de Febrero de 2020 a las 12:00pm (GMT-6)
21 de Enero de 2020 a las 00:00 (GMT-6)
11 de Enero de 2020 a las 00:00 (GMT-6)


GIA_01 está oficialmente de vuelta, corriendo en Game Maker: Studio 1.4 y con ligeros cambios en el comportamiento del motor. Esta vez el concurso se dividirá en 2 fases, la primera siendo la tradicional carrera que se conoció hace más de 10 años, la segunda se dará a conocer a detalle una vez concluya la primera. Cabe mencionar que cualquier persona puede registrarse y participar en cualquier momento mientras el concurso no haya finalizado, aunque las fechas de entrega seguirán siendo las mismas, y por obvias razones, los que se registraron primero tendrán más posibilidades de presentar algo más sólido.
 
La fase 1 consta de una serie de rondas que finaliza cuando se determina al Campeón de la Fase 1. En cada ronda, la IA vencedora quedará con el título de Posible Campeón. Luego, habrá un lapso de 7 días para que los competidores intenten mejorar sus IA's y así venzan al Posible Campeón. Este ciclo se repetirá hasta la ronda en la que el último Posible Campeón no sea vencido, quedándose así con el título de Campeón de la Fase 1.

Reglamento general

El participante deberá agregar su IA dentro del objeto obj_ctrl, evento Create, hoja 1,  utilizando una función. Un ejemplo:
/*
   argument0: Nombre del objeto
   argument1: Nombre de la IA
*/

scr_add_player(objGogo, "Gogolithic");

Las únicas acciones que pueda realizar su IA están establecidas por una serie de scripts listados a continuación:
/*
   scr_walk();
   función: mover la IA de forma horizontal.
   argument0: -1 para avanzar a la izquierda, 1 para la derecha
*/

scr_walk(argument0);

/*
   scr_salto();
   función: hacer saltar a la IA.
*/

scr_salto();

/*
   scr_salto_stop();
   función: cancela la ejecución de scr_salto(); dentro del mismo step en el que se llamó.
*/

scr_salto_stop();

No se puede hacer la IA para un room especifico, debe ser capaz que funcionar bien en cualquier ambiente. Un ejemplo de lo que NO se puede hacer
if (room == GIA_01)
{
    /*
       Código
   */
}

Además


* Se utilizará Game Maker: Studio 1.4.9999 para la evaluación, no es aconsejable utilizar una versión anterior pues el comportamiento podría ser diferente.
* Se recomienda no liberar el código de tu IA, no es una regla, pero la intención del concurso es que cada quién tome su propio rumbo y haya diversidad de inteligencias.
* El sistema de puntuación incluido en el editable NO es el definitivo, ver sección Puntuación para conocer los detalles.

Puntuación

Puntos por rendimiento

Se creó una herramienta que registra el impacto que tiene la IA en funcionamiento, los FPS establecidos como máximos son 1800,  se agrega una instancia extra del objeto de la IA por iteración en un máximo de 10 iteraciones (De 0.5 segundos cada una), se sacan promedios de FPS de cada iteración y utilizando un valor base de puntos de 3600 (Técnicamente el mayor número de puntos que se pueden conseguir, si es que la IA tuviera un impacto nulo, lo cual en sí es imposible), se va restando de manera relativa el porcentaje de pérdida en FPS que refleja cada iteración. El código es el siguiente:

//basePoints: 3600
//maxFPS: 1800

promFPS[currentIteration] = 0;
for(currentStep = 1; currentStep  <= registeredSteps; currentStep  ++)
    promFPS[currentIteration] += obtainedFPS[currentIteration, currentStep];

promFPS[currentIteration] = round(promFPS[currentIteration] / registeredSteps);
promFPS[currentIteration] = min(promFPS[currentIteration], global.maxFPS);
if (currentIteration > 1)
    percent = (promFPS[currentIteration] / promFPS[currentIteration - 1]);
else
    percent = (promFPS[currentIteration] / global.maxFPS);

totalPoints -= (totalPoints * (1 - percent));

Puntos por nivel

La IA puede conseguir un máximo de 3600 puntos por nivel, perdiendo 60 puntos por cada segundo que tarde en llegar a la meta.

Bonificaciones por lugar

Las IAs que obtengan entre el primero y el tercer lugar en ciertos niveles, recibirán un porcentaje de bonificación sobre el total de sus puntos:


Esto sólo aplica para los siguientes niveles:


Es posible que dos o más jugadores compartan un lugar, si los puntos entre ellos son iguales. Ejemplo:

Premios

Gracias a Ciberman, el Campeón Definitivo de esta edición de GIA recibirá las siguientes licencias de sus productos:


Debido a que él también está participando, en el caso de que resultara ser el ganador, se le entregarán las licencias al segundo lugar.

Conclusión

Una vez se haya declarado el Campeón Definitivo, se procederá a liberar el código de todas las IA's para que todos podamos aprovechar ese conocimiento, además de que dentro de la página de GIA de ComunidadGM se incluirá una nueva función de Editor de niveles en la cual tú podrás diseñar tus propios niveles y llevar al límite la capacidad de las IA's registradas.

Estará disponible un canal en Discord para cualquier sugerencia, duda, o reporte de algún bug. Saludos.
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: Ciberman en Enero 04, 2020, 10:37:32 am
Que alegría!
En el "Game information" del proyecto sigue el reglamento viejo del 2008. Se sigue requiriendo hacer el "Registro" de la IA?

A codear se ha dicho!
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: Marth en Enero 04, 2020, 11:14:21 am
Vale, el concurso ha empezado.
Me fijo que es obligatorio el uso del primer GMS.
Yo tengo aún ese software, pero igual hubiera sido lo suyo usar GMS2, por el hecho de ser el Game Maker actual.
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: Jucarave en Enero 04, 2020, 05:28:08 pm
Al fin! hora de comenzar :D

Mucha suerte a todos
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: eduardo960 en Enero 04, 2020, 06:36:26 pm
Que alegría!
En el "Game information" del proyecto sigue el reglamento viejo del 2008. Se sigue requiriendo hacer el "Registro" de la IA?

A codear se ha dicho!

Olvidé esa parte del proyecto, pero una vez habilite el formulario para subir sus IA's, habrá una caja de texto para dejar un registro por cada versión que vayan subiendo. Una vez finalizado el concurso, toda esa información estará disponible.

Vale, el concurso ha empezado.
Me fijo que es obligatorio el uso del primer GMS.
Yo tengo aún ese software, pero igual hubiera sido lo suyo usar GMS2, por el hecho de ser el Game Maker actual.

Considero que GM: Studio es más accesible debido a la diferencia de precios a la que se consigue respecto a GM: Studio 2, sin mencionar que apenas he tocado GM: Studio 2 después de haberlo comprado.
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: elviskelley en Enero 05, 2020, 06:32:48 pm
yo solo tengo el  :GM8: puedo hacerlo con ello?+
Edith: Ya vi que no, esta en  :GMS:
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: eduardo960 en Enero 09, 2020, 08:59:52 pm
El formulario de envío está disponible

Envía tu IA (https://www.comunidadgm.org/index.php?page=GIA)
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: eduardo960 en Enero 11, 2020, 06:31:36 am
La puntuación de las IAs se realizará de la siguiente manera.

Puntos por rendimiento

Se creó una herramienta que registra el impacto que tiene la IA en funcionamiento, los FPS establecidos como máximos son 1800,  se agrega una instancia extra del objeto de la IA por iteración en un máximo de 10 iteraciones (De 0.5 segundos cada una), se sacan promedios de FPS de cada iteración y utilizando un valor base de puntos de 3600 (Técnicamente el mayor número de puntos que se pueden conseguir, si es que la IA tuviera un impacto nulo, lo cual en sí es imposible), se va restando de manera relativa el porcentaje de pérdida en FPS que refleja cada iteración. El código es el siguiente:

//basePoints: 3600
//maxFPS: 1800

promFPS[currentIteration] = 0;
for(currentStep = 1; currentStep  <= registeredSteps; currentStep  ++)
    promFPS[currentIteration] += obtainedFPS[currentIteration, currentStep];

promFPS[currentIteration] = round(promFPS[currentIteration] / registeredSteps);
promFPS[currentIteration] = min(promFPS[currentIteration], global.maxFPS);
if (currentIteration > 1)
    percent = (promFPS[currentIteration] / promFPS[currentIteration - 1]);
else
    percent = (promFPS[currentIteration] / global.maxFPS);

totalPoints -= (totalPoints * (1 - percent));

Puntos por nivel

La IA puede conseguir un máximo de 3600 puntos por nivel, perdiendo 60 puntos por cada segundo que tarde en llegar a la meta.

Bonificaciones por lugar

Las IAs que obtengan entre el primero y el tercer lugar en ciertos niveles, recibirán un porcentaje de bonificación sobre el total de sus puntos:


Esto sólo aplica para los siguientes niveles:


Es posible que dos o más jugadores compartan un lugar, si los puntos entre ellos son iguales. Ejemplo:
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: eduardo960 en Enero 11, 2020, 07:33:12 am
Resultados de la prueba de rendimiento.

Cada ronda se calculará el rendimiento de cada una de las IA's, por lo que estos resultados no son considerados como definitivos.


FJ
Código: [Seleccionar]
FPS con  1 instancias: 433
FPS con  2 instancias: 201
FPS con  3 instancias: 129
FPS con  4 instancias: 95
FPS con  5 instancias: 78
FPS con  6 instancias: 69
FPS con  7 instancias: 55
FPS con  8 instancias: 46
FPS con  9 instancias: 44
FPS con 10 instancias: 37

Ciberman
Código: [Seleccionar]
FPS con  1 instancias: 1800
FPS con  2 instancias: 1756
FPS con  3 instancias: 1318
FPS con  4 instancias: 1076
FPS con  5 instancias: 882
FPS con  6 instancias: 740
FPS con  7 instancias: 666
FPS con  8 instancias: 591
FPS con  9 instancias: 519
FPS con 10 instancias: 468

BlackCat
Código: [Seleccionar]
FPS con  1 instancias: 1800
FPS con  2 instancias: 1787
FPS con  3 instancias: 1414
FPS con  4 instancias: 1136
FPS con  5 instancias: 946
FPS con  6 instancias: 797
FPS con  7 instancias: 697
FPS con  8 instancias: 619
FPS con  9 instancias: 553
FPS con 10 instancias: 499

Knd144
Código: [Seleccionar]
FPS con  1 instancias: 1800
FPS con  2 instancias: 1800
FPS con  3 instancias: 1489
FPS con  4 instancias: 1205
FPS con  5 instancias: 1004
FPS con  6 instancias: 852
FPS con  7 instancias: 743
FPS con  8 instancias: 654
FPS con  9 instancias: 586
FPS con 10 instancias: 531

Marth
Código: [Seleccionar]
FPS con  1 instancias: 1800
FPS con  2 instancias: 1787
FPS con  3 instancias: 1361
FPS con  4 instancias: 1089
FPS con  5 instancias: 909
FPS con  6 instancias: 771
FPS con  7 instancias: 671
FPS con  8 instancias: 591
FPS con  9 instancias: 529
FPS con 10 instancias: 477
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: Marth en Enero 12, 2020, 03:39:48 pm
¡Venga ya, que poco rendimiento tiene la IA de FJ en comparación de los demas! :o
Mientras que todos los demas tenemos más de 450 FPS con 10 instancias, la IA de FJ tiene menos de 450 con UNA sola instancia.
Cuando todo esto termine, habria que mostrar los códigos usados para ver porque su IA es tan ineficiente.
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: knd144 en Enero 12, 2020, 08:03:37 pm
En todas las GIAs eso se ha hecho; se liberaron los códigos de las IAs al terminar el evento.
Título: Re:¡GIA_01+ ha comenzado!
Publicado por: eduardo960 en Enero 13, 2020, 11:26:46 pm
Los resultados ya están disponibles:

Spoiler
(https://www.comunidadgm.org/guerra-de-ias-(gia)/gia_01-ha-comenzado!-31704/?action=dlattach;attach=18709;image)

Replay de la ronda 1 (https://www.comunidadgm.org/index.php?page=GIA)

Para evitar cualquier filtrado de código de las IAs, se utilizó un sistema de replays que captura de manera precisa frame por frame el movimiento de cada una. La fecha límite de envío para la siguiente ronda es:

21 de Enero de 2020 a las 00:00 (GMT-6)
Título: Re:¡GIA_01+ comenzó!
Publicado por: eduardo960 en Enero 23, 2020, 01:33:45 am
Menos de la mitad de participantes enviaron una nueva versión para esta ronda, y considerando las sugerencias previas de ampliar la fecha límite junto con que algunos aún tienen en mente en seguir desarrollando sus IAs, se extendió el día de entrega límite a el:

5 de Febrero de 2020 a las 12:00pm (GMT-6)

A partir de ese momento, y si llegase a realizarse otra ronda, será cada 2 semanas.
Título: Re:¡GIA_01+ comenzó!
Publicado por: Marth en Enero 23, 2020, 12:32:19 pm
Menos de la mitad de participantes enviaron una nueva versión para esta ronda, y considerando las sugerencias previas de ampliar la fecha límite junto con que algunos aún tienen en mente en seguir desarrollando sus IAs, se extendió el día de entrega límite a el:

5 de Febrero de 2020 a las 12:00pm (GMT-6)

A partir de ese momento, y si llegase a realizarse otra ronda, será cada 2 semanas.

Pues vale.
Ahora toca ponerse para pulir las IAs.
Título: Re:¡GIA_01+ comenzó!
Publicado por: knd144 en Enero 24, 2020, 01:27:49 am
Que bien; habrá oportunidad de más participación.  ;D Me agrada eso de que sea cada 2 semanas; me llevó varias horas de desvelo en medio de estrés laboral el terminar la IA para esta primera versión,  :-[ Pero 2 semanas me parece bien.
Título: Re:¡GIA_01+ comenzó!
Publicado por: jhgv en Febrero 05, 2020, 12:34:04 am
Me entere a tiempo! o eso creo jsjs… pense que tenias que crear un personaje y jugar contra los otros ??? es eso ¿no? :-\ :'(
Título: Re:¡GIA_01+ comenzó!
Publicado por: Marth en Febrero 05, 2020, 05:36:30 pm
Yo ya he mandado mi nueva versión en un zip.
Es el objeto obj_Marth mi IA con la que participo en la siguiente ronda.