Comunidad Game Maker

Sección General => Eventos => Guerra de IAs (GIA) => Mensaje iniciado por: KrakenHimoto en Octubre 24, 2009, 12:37:26 AM

Título: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 12:37:26 AM
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 (http://docs.google.com/View?id=dcp3chfp_2dr69g8cm)

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

(http://www.comunidadgm.org/index.php?action=dlattach;topic=9516.0;attach=4719;image)


(http://img223.imageshack.us/img223/2162/11010738.png)

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
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 24, 2009, 01:11:40 AM
 >:( >:( >:( Puedes desapuntarme de la lista  :'( (GM lite)
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: knd144 en Octubre 24, 2009, 02:03:44 AM
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   :(
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 02:11:38 AM
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.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: knd144 en Octubre 24, 2009, 02:23:56 AM
y la susticucion podria ser tambien en la edificio GM7? :-\
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 03:17:37 AM
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
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Killer en Octubre 24, 2009, 03:32:37 AM
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.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 03:40:36 AM
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
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Raul_Omega en Octubre 24, 2009, 11:31:24 AM
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
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 24, 2009, 06:27:59 PM
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.,.,.,.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: knd144 en Octubre 24, 2009, 07:01:58 PM
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  ;)
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Guacusio en Octubre 24, 2009, 07:10:58 PM
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.


Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 08:04:11 PM
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.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: knd144 en Octubre 24, 2009, 08:50:53 PM
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
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 09:01:43 PM
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.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: knd144 en Octubre 24, 2009, 09:06:50 PM
ok, Gracias
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 24, 2009, 09:16:27 PM
una ves que tienes la nave duplicado del obj_spaceship_padre, como puedes hacer para probarla?

en en evento create en la primer oja solo deve ir:

scr_create();

o algo mas?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 09:22:01 PM
El objeto obj_spaceship_padre no hay que duplicarlo, es solo para tener un objeto que haga referencia a todos los objetos naves xq es el padre de estos.

Yo en el editable deje 2 jugadores, te recomiendo que edites el jugador 2 y sobre el armes la IA.

En la primer hoja solo debe ir scr_create();
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 24, 2009, 09:44:11 PM
prove el GIA_02_SpaceShip_War_Lite_03.gm6

y luego de que elijo los jugadores me sale el siguiente error

CitarERROR in
action number 1
of Draw Event
for object obj_ctrl:

Error in code at line 27:
   if instance_exists(global.J[1])  {draw_circle_color(global.J[1].x,global.J[1].y,16,global.J[1].colorcele,global.J[1].colorcele,true) draw_set_color(global.J[1].colorcele) draw_text(92,16,global.J[1].vidas);}  else {draw_set_color(c_gray); draw_text(92,16,'0')} draw_text(0,16,global.Jnick[global.ml_n]);

at position 36: This function is only available in the Pro Edition.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 24, 2009, 10:02:40 PM
No sabia que draw_circle_color era funci?n solo de pro, ah? lo arregle.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 25, 2009, 12:23:46 AM
Parece andar bien  8), ahora se ve en sirculo alrrededor de las naves, supongo que es para identificarlas mejor
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: elviskelley en Octubre 25, 2009, 02:52:07 PM
Es la primera vez que me meto en un concurso asi que tengo varias preguntas.
1)?Como inicio a crear mi nave me refiero copio alguna y le agrego codes o que hago?
2)?Que hace cada script y si debo llamarlos por obligacion alguno o crear los mios?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Raul_Omega en Octubre 25, 2009, 03:55:35 PM
Cita de: elviskelley en Octubre 25, 2009, 02:52:07 PM
Es la primera vez que me meto en un concurso asi que tengo varias preguntas.
1)?Como inicio a crear mi nave me refiero copio alguna y le agrego codes o que hago?
2)?Que hace cada script y si debo llamarlos por obligacion alguno o crear los mios?


1) Lo mejor es que modifiques el objeto obj_j2 (dentro de la carpeta participantes).
Alli tienes que crear una pieza de codigo en create con el registro de tu IA (version, problemas etc).
Luego puedes a?adir tus codigos en Create y en los Step.

2) Los scripts que debes usar, llamandolos desde tus codigos son scr_accel() , scr_rot(angulo) y scr_shoot(tipo).  Donde angulo puede variar entre -5 y 5 , y tipo puede valer 1,3, o 4.

CitarScripts 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 5


Ten en cuanta que tu NO puedes modificar ninguna variable existente (direction, speed, etc) solo puedes crear y modificar tus propias variables y llamar a los scripts que te he puesto antes o bien a alguno propio que hayas creado.

Lo mas facil para que veas como va esto es que te descargues el editable de GIA1 y mires alguna de las IAs asi te haras una idea.

Kraken si he dicho algo mal me corriges :)

Un saludo!

Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 25, 2009, 06:58:33 PM
Mejor explicado imposible dir?a. Ya sub? una nueva versi?n (si pfff toy subiendo 10mil versiones con correciones grrrrr)

Tiene corregido el sistema de empates, por otra parte se me paso ponerle el da?o a las minas y hacen 1 de da?o cuando deber?an hacer 2 de da?o, eso tambi?n lo correg?.


Ahora, entre en un dilema entre la versi?n pro y la lite, por los temas de image angles, la lite la tube que hacer con subimagenes, pero esto genera un problema en el centrado de la nave. Ya que en la version pro el centro de la nave esta corrido para que sea un poco mas realista, lo que genera una peque?a diferencia entre las 2 versiones.

Ahora voy a ver como lo resuelvo eso y actualizo.


Ahora si por fin, las 2 versiones son exactamente iguales la lite y la pro =D, era algo que me tenia con los pelos de punta.

V.41


Paso a dar la explicacion del error que se daba en las naves. En el pro la rotacion se hace por medio de image_angle. Y el image angle rota sobre el 0,0 de la imagen. Pero el 0,0 de la imagen no se encuentra en el centro de la imagen, sino un poco corrido para dar un efecto mas realista.

En el modo lite como no se puede usar image_angle uso subimagenes, pero cuando se hace la rotacion por subimagenes lo hace desde el centro de la imagen lo que hacia que roten distinto las 2 naves.

La respuesta era simple, desplazar la imagen para que coincidieran los 0,0 con el centro de la imagen =D y asi va igual en el lite y el pro.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 25, 2009, 07:17:22 PM
no me doy cuenta cual fue el cambio pero igual anda bien  :)
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Guacusio en Octubre 25, 2009, 07:39:47 PM
Qu? bien que solucionaste el asunto de las rotaciones para ambas versiones. A prop?sito de la versi?n lite y la completa, tengo una duda: ?est? permitido usar funciones de GM registrado dentro de las IA?

Estoy pensando, por ejemplo, en estructuras de datos.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 25, 2009, 07:50:46 PM
Perfectamente, mientras no infringan ninguna regla como modificar variables no creadas por el participante. Es com?n que varios usuarios usen path o cosas asi que no se dan cuenta que modifican las variables X e Y, lo que es antireglamentario.

Salu
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Guacusio en Octubre 26, 2009, 03:58:47 AM
Tengo otra duda: ?se pueden usar alarmas?

:-\
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 26, 2009, 04:19:12 AM
Of course, menos la alarma 0 y 1 y obviamente las locales, nunca activar las alarmas de otros objetos.

El que quiera ir haciendo su nave aca dejo una mini guia que deben seguir, indica el tama?o maximo del sprite, la mascara que va a tener, y los puntos por los que sale la aceleracion y el disparo.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: elviskelley en Octubre 27, 2009, 12:15:20 PM
una pregunta estan permitidos el uso de los siguientes codigos.
point_distance(x,y,x2,y2)
distance_to_object(obj)
image_angle
direction
//dime cuales puedo o no puedo usar de las aqui nombradas.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Killer en Octubre 27, 2009, 03:28:15 PM
Point_distance() y distance_to_object() estan permitidas, image_angle y direction son variables ya existentes, por lo tanto no esta permitido alterarlas.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Guacusio en Octubre 27, 2009, 03:43:18 PM
Tengo todav?a algunas dudas dando vuelta respecto a la forma en que se determinar? qui?n gana en una batalla y cu?ntas batallas habr?n. ?Habr? un todos vs todos? (ser?a lo justo y creo que s? lo tienes pensado, de acuero a una tabla que v? no recuerdo d?nde, pero ser?a bueno aclararlo en las bases). Estaba pensando que es posible que una batalla luchada por las mismas IA puede no tener necesariamente el mismo desenlace siempre, debido a que alguna de ellas puede recurrir a n?meros aleatorios para tomar ciertas decisiones. ?Has considerado esto, a la hora de presentar un ejecutable con los resultados de cada ronda? ?O las IA deben ser absolutamente deterministas para tomar decisiones?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Raul_Omega en Octubre 27, 2009, 09:37:36 PM
Yo probando mi IA, tengo en obj_j1 y en obj_j2 dos IAs, el caso es que si simulo varias batallas obtengo diferentes resultados, lo que es debido a que las naves no aparecen siempre en la misma posicion. Creo que la posicion no deberia ser aleatoria porque puede llevar a obtener distintos resultados si por lo que sea los movimientos varian con la posicion.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Guacusio en Octubre 27, 2009, 10:29:32 PM
Eso es totalmente cierto, Raul_Omega. De hecho, para una igualdad absoluta en la competencia las naves deber?an partir en el mismo punto, ya que si parten en puntos diferentes, aunque sean siempre los mismos, ?qui?n decidi? cu?l nave parte en cada uno? Podemos ponernos todo lo quisquillosos que queramos al respecto. Lo que comentas sobre resultados diferentes en las pruebas que hiciste me parece un asunto bastante delicado, prueba de c?mo la aleatoriedad de la ubicaci?n inicial puede modificar los resultados (y ni hablar de cuando las propias IA toman decisiones aleatorias, como suger? antes). Podr?amos eliminar el problema si intentamos dotar a nuestras IA de simetr?a (es decir, que por ejemplo los movimientos no var?en con las coordenadas x,y sino con la distancia al centro, la cual es id?ntica para ambas naves al comienzo) y prohibir el uso de n?meros aleatorios en las IA; en la anterior GIA, tuvimos la "suerte" de que las IA eran deterministas y todos los personajes part?an en el mismo lugar, por lo que fue posible obtener siempre los mismos resultados en cada ensayo y as? lo demuestra el ejecutable de cada ronda. Esta fue definida como una competencia de IAs y gana la m?s eficiente y efectiva, no la que muestra comportamientos m?s realistas. Por lo tanto, en mi opini?n, no debe haber espacio para la aleatoriedad ya que tendr?amos que hacer infinitas pruebas para saber cu?l es la mejor IA a la larga. Tambi?n existe la posibilidad de, por ejemplo, confiar en KrakenHimoto y dejar que ?l haga las pruebas y cree un registro de ellas (como un video, por ejemplo) donde se muestre el ensayo definitivo. Como sea, creo que este tema debiera ser analizado a fondo para no encontrarnos con sorpresas m?s adelante.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 27, 2009, 10:51:02 PM
A ver, la cosa es asi. Justo ayer lo andaba comentando con Brandnew.

El campeonato se hace por un sistema automatico tipo Liga en el que todas las IAs una por una iran peleando con todas las dem?s. (Esto puede llevar mas de una hora segun el numero de participantes).

Luego por medio de una grilla de Liga como por ejemplo esta:

(http://img4.imageshack.us/img4/280/17010204.png)

Al principio puede ser confusa para leer, pero si la ven detenidamente podr?n comprenderla sin problemas.


El otro tema que comentan es sobre que las partidas no siempre son 100% iguales, eso es real, y no se puede evitar. No hay forma alguna de hacer y controlar que todas las IAs de los participantes sean 100% "simetricas" como dec?an por ahi. Un factor de ello esque las IAs no comienzan en el mismo sitio siempre. Esto esta hecho de esa manera para que sea aleatorio la posicion inicial y no alla quejas luego. Ya que una IA al comenzar siempre mirando en 0? u 180? podria verse beneficiada. El que aparezcan en diferences posiciones iniciales no da lugar a quejas en ese sentido.


Como se sabe, las batallas no son siempre identicas. Pero a ver, si una IA est? mejor dise?ada que otra a la larga ganar? mas batallas en la global de todas las peleas que la otra.

Algo a tener en cuenta esque si hay empate entre 2 IAs en victorias ganar? la que gano entre ellas dos cuando se dio la batalla versus entre ellas. Si se da un empate entre 3 o mas IAs, (lo cual dudo que pase), se analizaran de forma particula a ver quien le gano a quien para determinar quien es la ganadora o si hay empate entre ambas.


Resumiendo:
-Los resultados se determinaran por medio de la GRILLA de Liga
-Las batallas no son siempre 100% iguales, pero si una IA es mejor tendr? muchas mas chances de ganar.
-Las IAs comienzan siempre en distintas posiciones de inicio para que no alla quejas de favoritismo al dar ubicaciones prefijadas.



Ahora falta el detalle mas importante. En unos dias en CGM se estrenar? makero TV, lo que va a permitir subidos en vivo para retrasmitirlos a todos. Lo que vamos a hacer es trasmitir la Liga oficial en vivo para que no alla quejas diciendo que estaba arreglado o vallase a saber.
En otras palabras se va a trasmitir la simulacion de la Liga que va a determinar el ganador de GIA, capaz luego si se hiciera en particular otra liga los resultados varien levemente, pero la que determinar? los resultados definitivos sin dar lugar a quejas ser? la del video que se emitir? en vivo.

Si todo marcha bien el video se va a emitir el sabado, avisando por email previamente para que sepan el horario de transmision.



Recuerden que se va a utilizar una mascara circular en las IAs, asique pueden mandarme un sprite de su IA dentro del editable.

(http://www.comunidadgm.org/index.php?action=dlattach;topic=9516.0;attach=4719;image)




PD: Ahora subo por las dudas la versi?n con las mascaras circulares para que chekeen sus IAs antes de enviarlas, aunque no deber?a demasiado el cambio.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 28, 2009, 08:21:50 PM
tenemos que entregar la IA antes del 30, el 30 entes de las 24hs o antes de alguna hora espesifica?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: elviskelley en Octubre 30, 2009, 02:36:58 AM
dos preguntas
1) ?como usar esto 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??

2) se podria usar esto ? if image_angle<id_en{scr_rot(5)}, y esto id direction!=id_en.direction{}??
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 30, 2009, 02:59:55 AM
Bueno, acabo de notar un gravisimo error por mi parte, no le puse seguro al script de acceleracion para que no se pueda ejecutar mas de una ves por step, lo que permite que si alguien lo llama varias veces accelere mas de lo que deber?a.

De todos modos lo arregle para la RONDA1, luego subo las versiones editables con la correccion. De todos modos si las IAs estan bien hechas no van a llamar varias veces al scr_accel() al mismo tiempo en un step, o no deber?an.


Respuesta a Elvis:
Si, las variables no propias se pueden chekear pero no modificar.

Puedes usar lineas como:
posenemigox = id_en.x; posenemigoy = id_en.y; vel_enemy= id_en.speed

Pero no lineas como:
id_en.x=800; o id_en.speed=30;
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: Alfonsos1 en Octubre 30, 2009, 02:27:54 PM
alguien me recuerda como entrego la IA o el editable?

otras preguntas de ultimo momento  :-[

puedo hacer referencia (solo checarla) a la variable tiempo del objeto obj_ctrl?

Para que en la competancia emves de que aparesca "Jugador2" aparesca "Alfonsos1" que tengo que hacer?, o de eso se encarga kraken?

Con vercion lite te puedo dejar un sprite de mi nave dentro del editable para que lo pongas luego?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Octubre 30, 2009, 04:35:50 PM
El como se entrega esta en el reglamento, tenes que enviar tu editable+_tunombre en el nombre del editable. Al email gia.asava@gmail.com. En el inclu?s el sprite que va a utilizar tu nave.

La variable tiempo podes chekearla.

Del nombre me encargo yo, igualmente lo podes modificar en el evento create del objeto obj_menu.
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: elviskelley en Octubre 31, 2009, 02:56:52 AM
No voy a poder entregar por falta de tiempo en el curro m han llamado par varias reuniones no creo tener el tiempo para culminarla. :-C bueno si lo logro a tiempo la entrego (espero).
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: juan pablo en Enero 13, 2010, 08:35:41 PM
?cuando sera la proxima?
Título: Re: GIA_02 SpaceShip War ha comenzado!
Publicado por: KrakenHimoto en Enero 17, 2010, 06:53:23 AM
Por ahora no estoy armando nada, falta de tiempo y ahora me voy de vacaciones. De todos modos si armo algo voy a avisar pero m?nimo 2 meses asi que sin apuro.

Saludos