Page 5 of 6

Re: [GAME] Remake Thunder Hoop

Posted: Thu May 05, 2011 5:12 pm
by CicTec
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.

Re: [GAME] Remake Thunder Hoop

Posted: Thu May 05, 2011 5:25 pm
by Geca
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.

Re: [GAME] Remake Thunder Hoop

Posted: Thu May 05, 2011 5:36 pm
by CicTec
Vale, si los conocen, pero no los usan mejor, a ver que tal.

Re: [GAME] Remake Thunder Hoop

Posted: Sun Jul 17, 2011 12:39 pm
by CicTec
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 ?

Re: [GAME] Remake Thunder Hoop

Posted: Sun Jul 17, 2011 9:05 pm
by PAMERCO
aqui esta bien.....

Re: [GAME] Remake Thunder Hoop

Posted: Sun Jul 17, 2011 10:28 pm
by CicTec
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:
[Codebox=gemix file=Untitled.gemix]
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
[/Codebox]
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:
[Codebox=gemix file=Untitled.gemix]
if(exists(type prota)
...
end
[/Codebox]
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:
[Codebox=gemix file=Untitled.gemix]
process muelle()
loop
frame;
if((cual=collision(type prota)))
...
[/Codebox]
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:
[Codebox=gemix file=Untitled.gemix]
mata_prota(protaid.x,protaid.y,muertefpg);
signal(protaid,s_kill);
[/Codebox]
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:
[Codebox=gemix file=Untitled.gemix]
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
[/Codebox]
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:
[Codebox=gemix file=Untitled.gemix]
process juego()
begin
loop
if(vidas==0)
mata_prota(protaid.x,protaid.y,muertefpg);
...
[/Codebox]

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.

Re: [GAME] Remake Thunder Hoop

Posted: Mon Jul 18, 2011 5:50 am
by PAMERCO
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.

Re: [GAME] Remake Thunder Hoop

Posted: Mon Jul 18, 2011 6:18 am
by PAMERCO
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....

Re: [GAME] Remake Thunder Hoop

Posted: Mon Jul 18, 2011 7:36 am
by CicTec
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.

Re: [GAME] Remake Thunder Hoop

Posted: Mon Feb 06, 2012 6:53 am
by PAMERCO
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