[GAME] Remake Thunder Hoop

Proyectos en Desarrollo.

Re: [GAME] Remake Thunder Hoop

Postby CicTec » Thu May 05, 2011 5:12 pm

Geca wrote:2 - Sobre los jurados, todo se explica muy bien en las reglas, van a ser seleccionados al terminar el concurso teniendo todas las comunidades en cuenta, y lo mas dispar posible, no se evaluará en ningun momento las caracteristicas del div-like utilizado pero si del remake utilizado en comparación con el original, y las normas del concurso. Por otra parte serán personas que ya me han dado credito de su buen hacer y experiencia en el mundo de los videojuegos y en la evaluación de los mismos, ya me encargaré yo de evaluar si hay algo de anormal en las distintas evaluaciones de cada jurado y que entren de algun modo en favoritismos ajenos al proposito del concurco, que es evaluar un remake sin evaluar ni el divlike utilizado ni la plataforma utilizada.

En mi opinion fuera mejor que los jurados no pertenezcan a comunidades DIV-Like esto para no influir consciamente o incosciamente en algo, pero si se decide asi, esta bien, informanos cuando sera el momento.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: [GAME] Remake Thunder Hoop

Postby Geca » Thu May 05, 2011 5:25 pm

En realidad hablo de comunidades pero los jurados no tienen porque ser usuarios habituales de ellas, lo unico en lo que van a coincidir es que todos conocen DIV y sus derivados, los demás no importa lo mas minimo, todos ellos estaran sobradamente capacitados para hacer su funcion y con esto termino mis comentários acerca del tema.
User avatar
Geca
 
Posts: 637
Joined: Fri Feb 20, 2009 1:35 pm
Location: Madrid

Re: [GAME] Remake Thunder Hoop

Postby CicTec » Thu May 05, 2011 5:36 pm

Vale, si los conocen, pero no los usan mejor, a ver que tal.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: [GAME] Remake Thunder Hoop

Postby CicTec » Sun Jul 17, 2011 12:39 pm

Hola PAMERCO,

Refloto el thread para habler sobre el juego, estoy mirando el codigo y ya he encontrado varios bugs, el primero nada mas empezar despues la primera pantalla ya con la nueva beta salta el error de acceso a un proceso no valido.
Pongo por aqui los errores que encontre y algunos consejos (para que queden para toda la comunidad) o prefieres por PM ?
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: [GAME] Remake Thunder Hoop

Postby PAMERCO » Sun Jul 17, 2011 9:05 pm

aqui esta bien.....
reto navidad 2011 santa´s nightmare
http://www.hot-ice-enterprise.com
primer juego comercial http://www.gemixstudio.com/forums/viewtopic.php?f=128&t=4146http://www.indievania.com/games/zombie-puf
User avatar
PAMERCO
 
Posts: 1519
Joined: Wed Feb 04, 2009 11:22 am
Location: palma de mallorca

Re: [GAME] Remake Thunder Hoop

Postby CicTec » Sun Jul 17, 2011 10:28 pm

Ok a ver...

La mayoria de los errores que he encontrado son de acceso a un proceso inexistente, eso con la beta actual (la 6.0) no surgen, tambien porque no hay control de este tipo, pero con la nueva, al primer error ya viene señalado y el core es aun mas preciso.
Otros errores no le veo logica (eso luego explicaras tu porque el codigo esta puesto asi).

El primer error que hay es en process crea_fase(nivel), donde se crean todos los procesos, y por ultimo el proceso prota.
Este ultimo proceso actualiza la variable ID usada para los siguientes procesos:
Source Code (Gemix) [ Download ] [ Hide ]
  • process gota1
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •  
  • process gusano(cual)
  •   loop
  •     distx=abs(x-protaid.x);
  •     disty=abs(y-protaid.y);
  •     ...
  •     if(collision(protaid))
  •       if(y>protaid.y)
  •         if(!sonando)sound(reboteson,300,250);end
  •         protaid.salto=1;
  •         protaid.vy=-10;
  •         frame(150);
  •       else
  •         mata_prota(protaid.x,protaid.y,muertefpg);
  •         signal(protaid,s_kill);
  •       end
  •     end
  •  
  • process araña(cual)
  •   loop
  •     ...
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process fuego(x,y,flags)
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process disparobarril(x,y,angle)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •       frame(200);
  •     end
  •  
  • process bola(x,y,flags,file)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •       frame;
  •     end
  •  
  • process bola2(x,y,flags,file)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •       frame;
  •     end
  •  
  • process perro(x,y,dis)
  •   loop
  •     distx=x-protaid.x;
  •     disty=y-protaid.y;
  •  
  •     ...
  •       if(collision(protaid))
  •         mata_prota(protaid.x,protaid.y,muertefpg);
  •         signal(protaid,s_kill);
  •       end
  •  
  • process demonio(x,y)
  •  
  •   loop
  •     while(!despierto)
  •       distx=x-protaid.x;
  •       disty=y-protaid.y;
  •  
  •       ...
  •  
  • process lanza(x,y,file,flags,z)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process granoso(x,y)
  •    loop
  •      ...
  •         repeat
  •           radio=(x-protaid.x)/2;
  •  
  • process bichobola(x,y,size)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  •     distx=abs(x-protaid.x);
  •     disty=abs(y-protaid.y);
  •  
  • process asomado(x,y,flags)
  •   loop
  •     distx=abs(x-protaid.x);
  •     disty=abs(y-protaid.y);
  •  
  • process pelota(x,y)
  •   tempx=protaid.x;
  •   distx=(tempx-x);
  •   disty=((protaid.y-scroll.y0)/(avy*2));
  •   loop
  •     d=protaid.x-x;
  •     ...
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process disp(x,y,angle)
  •   loop
  •     if(collision(protaid))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process volador()
  •   loop
  •     if(collision(protaid))
  •       if(y>protaid.y)
  •         protaid.salto=1;
  •         protaid.vy=-10;
  •         frame(150);
  •       else
  •         mata_prota(protaid.x,protaid.y,muertefpg);
  •         signal(protaid,s_kill);
  •       end
  •     end
  •  
  • process tapadera();
  •   loop
  •     disty=abs(protaid.y-y);
  •     distx=abs(x-protaid.x);
  •  
  • process cabeza(x,y)
  •   loop
  •     difx=abs(protaid.x-x);
  •     dify=abs(protaid.y-y);
  •  
  •  
  •  
  •  
  • process disparofinal(x,y,adv,graph,angle);
  •   loop
  •     advance(adv);
  •     if((al=collision(protaid)))
  •       xx=protaid.x;
  •       yy=protaid.y;
  •       signal(protaid,s_kill);
  •       mata_prota(xx,yy,muertefpg);
  •     end
  •  
  •  
  •  
  •  
  •  
  • process bichoverde(x,y,xmin,xmax)
  •   loop
  •     distx=abs(x-protaid.x);
  •     disty=abs(y-protaid.y);
  •  
  •     ...
  •     if(collision(type prota))
  •       if(y>protaid.y)
  •         if(!sonando)sound(reboteson,300,250);end
  •           protaid.salto=1;
  •           protaid.vy=-14;
  •           frame(350)  ;
  •         else
  •           mata_prota(protaid.x,protaid.y,muertefpg);
  •           signal(protaid,s_kill);
  •         end
  •       end
  •     end
  •  
  • process piraña(cual)
  •   loop
  •     if(collision(type prota))
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       signal(protaid,s_kill);
  •     end
  •  
  • process saltarin(num)
  •   loop
  •     distx=abs(x-protaid.x);
  •     disty=abs(y-protaid.y);
  •  
  •     ...
  •       if(collision(type prota))
  •         if(y>protaid.y)
  •           protaid.salto=1;
  •           protaid.vy=-8;
  •           frame(350);
  •         else
  •           mata_prota(protaid.x,protaid.y,muertefpg);
  •           signal(protaid,s_kill);
  •         end
  •       end
  •  
  • process muelle()
  •   loop
  •     frame;
  •     if((cual=collision(type prota)))
  •       if(protaid.y<(y-10))
  •         from graph=1 to 4;
  •           frame(200);
  •           if(graph==4);
  •             protaid.salto=1;
  •             protaid.vy=-21;
  •           end
  •         end
  •       end
  •     end
  •  

En todos hay llamadas del tipo protaid.x, el cual ya generaria error para acceder a una variable de un proceso que aun no existe (recordemos que prota viene creado por ultimo).
Lo primero que hay que hacer aqui es averiguar si el ID es valido, tal como esta implementado el codigo es un poco dificil hacer el cambio, especialmente porque hay muchas llamadas a signal, etc..., seria necesario reestructurar todo, pero con la nueva beta puedes semplificarlo mantenendo casi el mismo codigo, lo que debes hacer es poner todo entre un codigo:
Source Code (Gemix) [ Download ] [ Hide ]
  • if(exists(type prota)
  •   ...
  • end
  •  

Aunque exista solo una instancia del proceso prota, con la actual 6.0 el rendimiento de TYPE process es bastante lento en las funciones, pero con la nueva beta ha sido optimizado mucho, en el caso especifico al tener solo una instancia o 0, la velocidad de ejecucion es ligeradamente mas lenta que comprobar la variable (no se nota), asi que podrias hacer este cambio.

Otra cosa que he notado es codigo como este:
Source Code (Gemix) [ Download ] [ Hide ]
  • process muelle()
  •   loop
  •     frame;
  •     if((cual=collision(type prota)))
  •        ...
  •  

donde la variable cual solo es usada en esta asignacion, supongo que sea un error de "prisa" o de algun cambio de codigo y ha quedado ahi.

Otro tipo de error comun que he encontrado en muchos procesos es algo asi:
Source Code (Gemix) [ Download ] [ Hide ]
  • mata_prota(protaid.x,protaid.y,muertefpg);
  • signal(protaid,s_kill);
  •  

aparte el acceso a x, y de protaid si este no es valido, lo que veo es una llamada "mas" a signal, porque el proceso mata_prota tiene este codigo:
Source Code (Gemix) [ Download ] [ Hide ]
  • process mata_prota(x,y,file)
  • begin
  •   ...
  •   signal(type bolaverde,s_kill);
  •   signal(protaid,s_kill);
  •   muerto=0;
  •   vidas--;
  •   from graph=1 to 20;
  •     //hacemos un frame mas lento para que se vea bien
  •     frame(150);
  •   end
  •   if(vidas>0)
  •     prota(posiciones_iniciales[0].x1,posiciones_iniciales[0].y1,posiciones_iniciales[0].y1-340);
  •   end
  •   ...
  • end
  •  

En el proceso mismo ya se hace la llamada a signal para el prota, quizas han quedado para algun cambio de codigo ?

El ultimo error que he notado es cuando pierdes la ultima vida, salta el error de acceso a un proceso inexistente, aqui:
Source Code (Gemix) [ Download ] [ Hide ]
  • process juego()
  • begin
  •   loop
  •     if(vidas==0)
  •       mata_prota(protaid.x,protaid.y,muertefpg);
  •       ...
  •  


Algunos consejos:
- Si no hay exigencias particulares para el juego, es mejor que pongas la prioridad del proceso prota menor de todas las otras, de esta forma el proceso sera ejecutado por ultimo.
- poner una variable local "alive", para los procesos enemigos.
- Poner en el proceso prota y en el proceso disparo del prota todas las colisiones con los enemigos, cuando haya colision con el disparo, actualizas la variable "alive" del proceso (el proceso deberia usar esta variable en su bucle como condicion de salida dal mismo).
- Reducir al minimo o eliminar las llamadas a signal
- Reducir a 1 la llamada a mata_prota (estaria bien solo en el proceso juego).

No he conseguido ver en el juego el bug de clonacion del prota (si no recuerdo mal hay este bug), lo unico que se me occurre es que en un dato momento del juego, mas procesos hagan llamadas a mata_prota y creando asi mas instancias del prota (porque es el solo proceso que llama prota aparte de crea_fase).

Si saco otro rato libre veo si encuentro algo mas, de momento hay eso, espero te sea de ayuda.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: [GAME] Remake Thunder Hoop

Postby PAMERCO » Mon Jul 18, 2011 5:50 am

gracias cictec.

hay varios errores de los que comentas (el del cual y los de signal despues de mata prota o alguno mas) que son fallos que han queado hay. por eso decia que el codigo esta muy sucio .
intente tenerlo ordenado. pero cuando empezo el problema de las clonaciones de los cojones... empece a buscar....y a poner // comentarios y codigos por donde yo creia que iban los tiros y se ensucio bastante...

muchas gracias cictec...en cuanto al bug de clonacion....ni jugando te ha pasado?? es lo malo de estos bug, que una veces si y otras cientos no pasa...o a lo mejor corrigiendo estos sin darte cuenta lo has eliminado....porque puede ser, que a base de llamar a procesos inexistentes....al final la logica interna se vuelva loca...y tire por ahi.
reto navidad 2011 santa´s nightmare
http://www.hot-ice-enterprise.com
primer juego comercial http://www.gemixstudio.com/forums/viewtopic.php?f=128&t=4146http://www.indievania.com/games/zombie-puf
User avatar
PAMERCO
 
Posts: 1519
Joined: Wed Feb 04, 2009 11:22 am
Location: palma de mallorca

Re: [GAME] Remake Thunder Hoop

Postby PAMERCO » Mon Jul 18, 2011 6:18 am

para imaginarte los cambios de codigo....solo mira las variables definidas y no utilizadas....esta muy sucio el codigo...pero como el codigo no contaba , segun las reglas, que era para copmprobar que no era un solo corta pega del castillo del DR malvado....
reto navidad 2011 santa´s nightmare
http://www.hot-ice-enterprise.com
primer juego comercial http://www.gemixstudio.com/forums/viewtopic.php?f=128&t=4146http://www.indievania.com/games/zombie-puf
User avatar
PAMERCO
 
Posts: 1519
Joined: Wed Feb 04, 2009 11:22 am
Location: palma de mallorca

Re: [GAME] Remake Thunder Hoop

Postby CicTec » Mon Jul 18, 2011 7:36 am

PAMERCO wrote:gracias cictec.

hay varios errores de los que comentas (el del cual y los de signal despues de mata prota o alguno mas) que son fallos que han queado hay. por eso decia que el codigo esta muy sucio .
intente tenerlo ordenado. pero cuando empezo el problema de las clonaciones de los cojones... empece a buscar....y a poner // comentarios y codigos por donde yo creia que iban los tiros y se ensucio bastante...

muchas gracias cictec...en cuanto al bug de clonacion....ni jugando te ha pasado?? es lo malo de estos bug, que una veces si y otras cientos no pasa...o a lo mejor corrigiendo estos sin darte cuenta lo has eliminado....porque puede ser, que a base de llamar a procesos inexistentes....al final la logica interna se vuelva loca...y tire por ahi.

De nada.

Si, con la beta actual puede pasar algo, con la nueva ahora es casi imposible, cuando un proceso se destruye y se intenta acceder a ello saltara el error casi seguramente, tambien porque el sistema genera ID de tal forma que la % que se utilice el mismo ID es muy muy baja ahora.

PAMERCO wrote:para imaginarte los cambios de codigo....solo mira las variables definidas y no utilizadas....esta muy sucio el codigo...pero como el codigo no contaba , segun las reglas, que era para copmprobar que no era un solo corta pega del castillo del DR malvado....

Si, imagino tambien por la prisa de tener algo en poco tiempo, no te preocupes, ahora que el concurso ha finalizado podras limpiarlo y seguirlo con mas calma.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: [GAME] Remake Thunder Hoop

Postby PAMERCO » Mon Feb 06, 2012 6:53 am

bueno, pues como ya termino el concurso navideño, tenemos la beta y he tenido un ratejo, he probado el thunderhoop con la nueva beta y bueno despues de toquetear un poco el codigo, lo he conseguido compilar y aqui lo teneis.
os informo de que continuo con el remake de vez en cuando....y me gustaria poder terminarlo alguna vez...lo jodio son los graficos, pero en ello ando.

bueno pues el enlace de descarga de la nueva version:
lo estoy resubiendo a dropbox un segundo...
http://dl.dropbox.com/u/60751027/project.rar

novedades de esta version:

compilado con la nueva beta.
eliminado el bug de la clonación del prota
eliminados varios bug menores.

version 0.9. 02/2012
reto navidad 2011 santa´s nightmare
http://www.hot-ice-enterprise.com
primer juego comercial http://www.gemixstudio.com/forums/viewtopic.php?f=128&t=4146http://www.indievania.com/games/zombie-puf
User avatar
PAMERCO
 
Posts: 1519
Joined: Wed Feb 04, 2009 11:22 am
Location: palma de mallorca

PreviousNext

Return to Proyectos WIP

Who is online

Users browsing this forum: No registered users and 9 guests