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

#1 Octubre 24, 2009, 01:11:40 AM 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   :(

#3 Octubre 24, 2009, 02:11:38 AM 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

#9 Octubre 24, 2009, 06:27:59 PM 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.