Bug GORDO!

Started by Noivern, January 05, 2011, 05:34:21 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Noivern

Me he dado cuenta de un cambio brusco en el comportamiento de mi código desde que actualicé a la RC20 (osea hace unas 2 horas, SIN el fix para las .dcl)

Los enemigos esféricos mueren, pero invocan inmediatamente a otro arriba del que mataron, lo mismo con los esféricos grandes.
Las naves que salen al azar a "sembrar" enemigos esféricos, al momento de morir crean otra nave, en las mismas coordenadas de donde salió la que murió con el mismo tipo de giro (izq o derecha).
Además ya no puedo sacar el consola debug, me tira un win32 exception y chan crash.
Estoy con cara de WTF??!!  :o

Noivern

#1
He pillado algo en mi codigo que no debería haber ido tal como estaba. Lo he corregido y ya los enemigos esféricos no se "auto-invocan". Sin embargo, sucede a veces con las formaciones, ver video más abajo.
Lo curioso es que antes no salía este comportamiento errático, el cambio del core me afectó.
A revisar sus proyectos.
Eso si, sigo sin poder sacar la consola de debug... y es raro, pues en el menu si puedo, pero durante el juego nop.
Entre ambos hay una pequeña diferencia: el restore_type

En menu:
restore_type = PARTIAL_RESTORE;

En juego:
restore_type = NO_RESTORE;

dump_type para ambos: partial_dump

--EDIT--

1)Añado que el comportamiento del mod_rand tambien me parece que cambió, es como si la muestra no fuese tan homogénea, quiero decir, salen muchos más disparos de los enemigos (y enemigos) que antes :S

2)Añado link a un video del bug: infinitos enemigos

SplinterGU

los cambios realizados no tienen que ver con lo que mencionas, solo afectan si usas dcl...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

pregunta, recompilaste el dcb nuevamente?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

el mod_debug es cierto, tengo que actualizar a la nueva version de dcb.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

ya esta corregido el mod_debug... quizas eso afecte todo el resto, no lo se...

gracias y karma!

si puedes generar y probar version hazlo, yo ahora no puedo hacer ninguna prueba.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

debo aclarar que el bug en el mod_debug, aplica a los nuevos dcb compilados, los viejos mantienen su soporte correcto...

ahora en el svn esta el fix, durante el dia subo los binarios.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

subiendo el fix... el fix solo afecta al mod_debug, era la linea donde obtiene el numero de archivo y file de donde obtener la linea de debug.

como tengo que usar el nuevo sistema de descargas de versiones, tengo que generar una nueva release completa, asi que va subiendo release completa...

avisame que tal va.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

Quote from: SplinterGU on January 05, 2011, 12:47:36 PM
pregunta, recompilaste el dcb nuevamente?

Sip, en un rato pruebo de nuevo con los nuevos binarios y te comento.
¿Viste el video? Es un gran wtf!

Noivern

#9
Yap, al parecer el mod_debug ahora funciona correctamente.
Me siguen saliendo infinitos enemigos...
El comportamiento es el mismo: matas enemigos de los que giran alrededor de la pantalla y vuelven a salir exactamente en la misma posición infinitamente

Noivern

Lo miro y lo remiro y no sé que puede estar mal :S
Antes funcionaba bien :(

Noivern

Te subo el mismo código, compilado uno con la RC19(r189) y el otro con la RC20(r200).
Ahi verás que el mismo código tiene comportamientos distintos, errático totalmente en la RC20 con los enemigos que giran en los bordes de la pantalla.
Link:
Deadly Eye: RC19(r189) vs RC20(r200)

PD: Confirmo que el debug ahora funciona correctamente, pero solo eso :P

SplinterGU

lo chequeo... decime en que linea decis salen enemigos y enemigos...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#13
acabo de probarlo, no me pasa eso que salen infinitos enemigos.

te digo mas, tal cual asi se comporta en caanoo...

si me das mas detalles puedo ver el tema mejor.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

Mira, en formaciones.prg estan los procesos que crean enemigos y formaciones.
Los que giran alrededor de los bordes (looperos) comienzan su creación en la linea 61 en el proceso crearEnemigos(), donde llamo a la función que calcula su posición inicial y cuantas formaciones se van crear. Luego se crea otro proceso que es el que finalmente crea los enemigos (crearFormacionEnemigos()).

La muerte de los enemigos estan en enemigos.prg, desde la línea 523 en adelante. Yo alcanzo a ver que el enemigo muere (explota), pero aparece de nuevo desde el mismo lugar desde donde habia salido inicialmente. ¿probaste solo los dcb o usaste el .exe? Usando el .exe (bgdi renombrado) logro reproducir el comportamiento normal (RC19) y el extraño (RC20). Ten en cuenta que todas las librerías corresponden a su respectiva RC. No he probado testear los 2 dcb con el mismo runtime.

juas! Tercer equipo donde lo pruebo y vuelvo a reproducir el error. Esta vez fue en el laptop, corriendo solo los dcb con la ultima version que ha subido josebita a su ppa: rc20 svn20110104 con módulos rc19 svn20101229

No sé que cambio hacer, ya que en una funciona bien y en otra no :S :S