Loader

Shoutbox

GIA_02 SpaceShip War ha comenzado!

Publicado por KrakenHimoto, Octubre 24, 2009, 12:37:26 AM

Tema anterior - Siguiente tema

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

Octubre 24, 2009, 12:37:26 AM Ultima modificación: Julio 28, 2010, 03:18:26 AM por KrakenHimoto
GIA 02 SpaceShip War ha comenzado!

Eso! Después de varios meses de trabajo en el proyecto doy a la luz GIA2. No hay demasiado que decir, esta todo en el reglamento. Cualquier duda la consultan acá.

Espero que este concurso genere entre los usuarios de la comunidad un poco mas de interés por estos temas.

Enlace al reglamento oficial

La primer fecha de entregas de las IAs es hasta el 30/10/09, con lo que se realizará la primer ronda del concurso declarando al prematuro primer campeon

-Se trabaja en GM6. Subi 2 versiones, para los que tienen el gm registrado y para los que no. Los que usen la version no registrada no tendrán los efectos graficos (tampoco interesa a la hora de hacer la IA)
-Por temas visuales se trabaja a una resolución de 700x700 por lo que 800x600 no sirve.

Si quieren diseñar su propia nave aca les dejo los datos fundamentales






CitarBases de Guerra de IAs

¿Qué es GIA?

  Guerra de IAs, mejor conocido bajo las siglas "GIA" tiene como fin el ser un concurso en donde compitan IAs (Inteligencias Artificiales) en un marco de un videojuego.
  Los participantes se inscriben y generan sus IAs segun el marco y genero en el que se establezca el concurso. Por ejemplo, batallas de naves, carreras, un ajedrez, etc.

  El concurso consta de una serie de rondas que finaliza cuando se determina al Campeón definitivo. En cada ronda, la IA vencedora quedará con el título de Campeona. Luego, abra un lapso de X semanas (ej: 2 semanas) para que los competidores intenten mejorar sus IAs y asi destronar a la IA Campeona. Este ciclo se repetirá hasta la ronda en la que la ultima IA Campeona no sea destronada quedándose asi con el título de Campeona definitiva y siendo asi la ganadora del concurso.

  Luego existe una segunda etapa del concurso en la que una ves declarado al ganador del concurso se liberan todos los codigos de fuente de las IAs participantes son sus respectivos registros para que el material generado sirva a todo el mundo.

  A modo de incentivar la creacion de IAs, una ves finalizado el concurso se siguiran aceptando IAs. Claro que no estarán en el marco del concurso ni competirán por el premio pero será una forma de seguir generando material sobre IAs para el genero.

 Vamos a dar un ejemplo:
 "Supongamos que el tema seleccionado para la edición es "Carrera de Autos", en ese caso la IA campeona seria la que llegue en primer lugar."
  Pero como se dijo antes, abra un plazo en donde los demás participantes podrán intentar derrocar a la IA Campeona. Y así sucesivamente hasta que se declare una IA definitiva.
 Luego de ello todos los registros de los participantes con sus respectivas IAs serian liberadas a modo de fomentar el aprendizaje por medio de una competencia.
 En este momento se podrán seguir mejorando las IAs a partir de los códigos ya liberados. Aunque la Campeona ya haya sido declarada como oficial Campeona eterna, eso no quita que pueda ser superada una vez que se liberen los códigos.

  Para hacer las IAs los participantes van a trabajar sobre un editable pre-diseñado con el engine del tema y genero del concurso. Los participantes solo van a tener la capacidad de trabajar (picar código) sobre un solo objeto que será el del Droide/IA que va a representar al jugador. Luego, el encargado del concurso juntará todo en un editable maestro en donde se definen las rondas y compiten las IAs.



Reglamento General:

  Las acciones que pueda realizar la IA van a estar determinadas por unos scripts a los que van a tener que llamar.
Ejemplo: para "moverse a la derecha" haría un llamado al script move con el argumento "left", move(left).

  Dentro de las cosas que podrán programar sobre la IA hay ciertas reglas que deben seguir:

  1. Solo se trabaja sobre el objeto de la IA propia.
  2. No se pueden modificar variables existentes, solo chequearlas. Ej: X, Y, speed, globales.
  3. Solo se puede modificar variables creadas por uno mismo.
  4. No se puede hacer uso del evento draw.
  5. No se pueden crear instancias.
  6. Si se crean scripts deberán llamarse "scr_nombredeljuegador_nombredelscript"
  7. Abra un lapso de al menos 3 días entre cada IA enviada.
  8. No se puede hacer la IA para un room especifico, debe ser capaz que funcionar bien en cualquier ambiente. Ej: if room=x {blabla} NO
  9. Si una IA relentiza demasiado el juego el juez puede optar por no validarla.
 10. Trabajar sobre hojas distintas a las que utilizan los scripts defaults que ya vienen con el editable.
 11. En las hojas se deberá incluir un // indicando si la hoja va antes o después del script default y en caso de ser varias numerarlas.
 12. A la hora de enviar el editable modificarle el nombre agregándole un _nombre del participante al final del mismo. EJ: GIA_01 La Carrera de los Droides_KrakenHimoto


  Este tipo de acciones invalidaran a las IAs, y en caso de ser groseras como querer Cerrar el juego (como algo muy obvio) podría sancionarse al jugador invalidándolo a presentar mas IAs.

  Esto no es una regla, pero es recomendable que mientras participan no liberen el código cosa de que cada jugador tome distintos rumbos que es donde toma gracia el concurso.


Registro de las IAs:

  Los jugadores deberán hacer un seguimiento de los problemas que les fueron surgiendo en el desarrollo de sus IAs, tanto los planes que fueron cambiando de rumbo como las dificultades a lo largo de los niveles.

Deberán ponerlo con un // en el evento create del objeto IA en hojas a parte.

El Evento Create estará conformado de 3 partes:

La 1er hoja default con el script scr_create();
La 2da hoja con el registro;
La 3er hoja con los códigos propios de la IA;

Haciendo referencia a la Hoja 2, deberá estar compuesta por:

DATOS de la IA.

  También deberían agregar la fecha de inicio y finalización de la IA más el nombre del creador y la versión de la IA.

Explicación de como piensa la IA.
Ej:
-Primero averiguo la dirección en la que se encuentra la meta
-Luego chequea que no haya pozos en la dirección a la que va.
-Si los hay, calcula una distancia segura y los salta

Explicación de problemas surgidos .
Ej:
El primer nivel me parecía fácil se superar y de hecho lo fue, aunque aun creo que puedo mejorar mi tiempo.

Respecto al segundo nivel, tuve algunos problemas con la detección de muros por lo que tuve que hacer cuenta atrás y cambiar algunas bases de la IA.

Es recomendable que vallan actualizando el registro diariamente para no perder rastros de las IAs, también los ayudará a tener noción de la evolución de sus IAs.


GIA_02 SpaceShip War

  Ésta edición de GIA consiste en una batalla de Naves Droides.

   * Las batallas se dan en 1vs1 en un formato tipo liga. En el cual al final de la misma por cantidad de victorias se determinará quien es la campeona.
   * Las Naves cuentan con 3 tipos de armas. Un disparo normal, 2 minas y 4 disparos StarShoot.
   * El disparo normal y el Starshoot hacen 1 punto de daño mientras que la mina hace 2 puntos de daño. Las naves cuentan con 6 puntos de vida.
   * Las batallas tendrán un tiempo limite de 40 segundos, y en caso que aun estén las 2 naves en funcionamiento ganará aquella con mas puntos de vida.
   * Si una nave sale del rango del escenario donde se da la batalla será destruida automáticamente.


Especificaciones de GIA_02

   * Deberán colocar en un .zip/rar el editable modificado.

   * Deberán enviarlo al siguiente correo electrónico: gia.asava@gmail.com


FAQ
¿Cuando comienza GIA SpaceShip War y cuanto durará?
23 de Octubre del 2009. Calculo que durará 1 mes y pico.

¿Cuanto tiempo me puede quitar el participar de esta competencia?
M... es muy dependiente de cada participante, pero yo creo que con un par de días que le dediques a conciencia ya tendrás una IA mas que aceptable. Si hablamos de que la competencia probablemente dure mas de 1 mes estamos hablando de ínfimo tiempo de inversión.

¿Habrá asteroides en el evento para que las naves esquiven?
No, no habrá, es un suceso muy aleatorio.

¿De a cuantas naves se harán las batallas?
Las batallas serán de 1vs1, el campo es demasiado pequeño para más, a lo sumo 3.

¿Se puede programar la IA en D&D?
No, las IAs deberán estar hechas 100% en código (GML).

¿Si las naves colisionan se destruyen ambas?
No, imaginen que una pasa por debajo de la otra. No tendría sentido hacerlas colisionar a efectos de ver cual es la mejor IA.

¿Si me salgo del campo de batalla muero?
Exactamente. (Hay una propuesta de que se transporten las naves al lado opuesto del campo)

¿Como consigo el editable para ponerme manos a la obra?
En el momento que se inicie el concurso voy a subir el editable al blog o al foro de noticias.

¿Puedo personalizar mi droide (gráficamente)?
No, por ahora no.

Scripts Disponibles

   * scr_shoot(n); dispara siendo N el tipo de disparo.
   * scr_accel(); accelera
   * scr_rot(n); rota la nave n grados. El rango va de -5 a


Como cargar un droide/IA?

  1. Crear el objeto de la IA haciendo un duplicado de una existente.
  2. Ir al obj_menu y abrir la hoja del evento create.
  3. global.JTRUE=15; //Indica el numero de jugadores IAs disponibles incluyendo la IA '0';
  4. Cargar la IA: global.Ji[0]=obj_KrakenHimoto; global.Jnick[0] =''KrakenHimoto";


Como hago referencia a mi enemigo?
Para hacer referencia a nuestro enemigo utilizamos la variable 'id_en'.
Por ejemplo, posenemigox = id_en.x; posenemigoy = id_en.y; vel_enemy= id_en.speed;

----------------------------------------
El reglamento puede ser modificado sin previo aviso (igual voy a intentar avisar si es importante)

KrakenHimoto



Es muy posible que tengan miles de dudas al respecto del concurso por la complejidad que implica llevarlo a cabo por lo que este post en el foro va a servir para resolver todas esas dudas.

Saludos y Disfrutenlo =D

Octubre 24, 2009, 01:11:40 AM #1 Ultima modificación: Octubre 24, 2009, 01:16:24 AM por Alfonsos1
 >:( >:( >:( Puedes desapuntarme de la lista  :'( (GM lite)

Gm6 PRO? :'(
Me diste por donde mas me duele.  :'(

Que lastima, no se pero creo que para otra GIA se deberia poder hacer la IA en un GM no pro, o que con solo auitar 1 o 2 alrgumentos del pro antes de trabajar, picar el codigo y al finalizar volverle a insertar los argumentos quitados. Pero este codigo tiene muchisimos y el simple hecho de quitarle alguno no hace que funcione.

Nos vemos cuando me junte para el Pro   :(

Octubre 24, 2009, 02:11:38 AM #3 Ultima modificación: Octubre 24, 2009, 02:36:18 AM por KrakenHimoto
El problema radica en que trabajo con image_angle e image_blend básicamente. Las particulas son lo de menos y facilmente reemplazables, incluso el image_blend. Pero el image_angle tendria que cambiarlo por un sistema de 360 subimagenes a la nave. De todos modos voy a ver que se puede hacer estos dias para permitir que participen usuarios sin PRO.


Agregue me alguien sin el gm6 pro cosa de poder hacer las pruebas correspondientes con ese usuario.


PD: Viendolo desde otro lado el image_angle tampoco es esencial, si total es solo engine lo que queremos, los graficos van a quedar en el exe a la vista de todos. Asique solo me falta un conejito de indias para probar la version en gm6 lite.

y la susticucion podria ser tambien en la edificio GM7? :-\

A ver, no tengo el gm6 sin registrar por lo que lo hice a ojo la version Lite. Fijense si se puede utilizar esa, obviamente tiene 0 efectos visuales pero que estarán en la versión ejecutable de las rondas.

Si alguno no tiene pro fijese la version lite que subi y pruebelo y diganme si les da errores y diganme los errores que les da.


Saludos, un tropezón no es caida =D

Tira un error por draw_sprite_ext en el objeto obj_menu, aparte de eso no vi ningún otro problema, aunque fue una prueba corta.

Corregido, ya re-subí la versión. Si ven algo mas avisen.

Como se opacó la apertura del concurso u.u
Si empezamos asi no me quiero imaginar como sigue esto ._.


Saludos

Descargado! te ha quedado muy bien, hay sonidos y todo! jaja, ahora a ver por donde empezar porque lo veo muuuucho mas dificil que GIA 1

Octubre 24, 2009, 06:27:59 PM #9 Ultima modificación: Octubre 24, 2009, 06:53:18 PM por Alfonsos1
gracias KrakenHimoto, te pasaste!  :D

por cierto no me quedo muy claro que va en la terser hoja, ba lo que deve hacer la nabe en este evento verdad?

supongo que por 3 hojas te refieres a 3 "execute a piece of code"

el resto del codigo puede ir en el evento step o el que yo quiera verdad?

Porcierto todavia no me he dado cuenta de com puedo provar la IA, cree un duplicado del obj_spaceship_padre y luego en el evento create "primer hoja" puse lo siguiente:

scr_create();
global.JTRUE=15;
global.Ji[1]=obj_Alfonsos1;
global.Jnick[1] = "Alfonsos1";


pero cuando pongo para empezar ya sea jugador uno contra dos o modo liga es para jugar con el teclado.,.,.,.

Si, gracias por la reedición.

Ya funciona y perfectamente, lo veo un poco mas complicado de lo q pude imaginarme. Pero me pongo a picar ahora mismo  ;)

Hola, KrakenHimoto. Ya probé el editable y parece que suavizaste un poco la cinemática (puede que sea idea mía) respecto a la demo anterior. Te cuento que encontré un bug un instante después de destruir a la nave 2; creo que es porque al ser destruida, el código trata de leer su variable vida siendo que ya no existe (como se ve en la imagen). Por lo demás, quedó muy bonito, te felicito.




Ahí lo arreglé Guacusio el bug que comentabas
Por ahora el único bug que conozco esque si mueren ambas naves al mismo tiempo "gana" el jugador 1. Despues veo como lo resuelvo. Igual es casi imposible que se de esta situación a menos que sean exactamente las mismas IAs las que batallan.

Debido a los problemas que van surgiendo voy a ir subiendo versiones debugueadas, revisen de tener la ultima versión en mano.

Un error comun esque no chekeen si la IA enemiga sigue viva antes de revisar su estado.
Hoy raul omega me preguntaba por un bug que le daba con el point_direction(x,y,id_en.x,id_en.y), antes de usar esas funciones deben asegurarse que exista la id_en con if instance_exists(id_en)

Saludos, actualicé la lite y la pro a la v03.

Kraken, solo quiero saber si entendí bien lo que va en la tercera hoja; por que a lo que entiendo yo puedo crearle un código (ya sea crear variables o llamar scripts) a según como yo quiera, no?.

:P

En la hoja 3 del evento create es donde crearias tus variables locales que usarias para tu IA, luego en el step las usarías para activar los scripts de movimiento de la nave.

Powered by EzPortal