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.

SplinterGU

yo he probado con el ultimo runtime... pero no veo que las naves salgan donde murieron... si veo muchas naves, no hay duda de eso...

y tambien cuando te hice el test en caanoo lo veia exactamente igual...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

caramba... en serio que lo pruebo y no me pasa... los enemigos mueren y no vuelven a aparecer donde murieron... y ahora probe con los exe de los packs que enviaste... eso si, los probe con wine.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

jajaja, vi el video, te juro que no me pasa.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Tienes la semilla en los rands asignada ? (esta sólo se debe asignar una vez al principio).

SplinterGU

Quote from: FreeYourMind on January 05, 2011, 11:16:44 PM
Tienes la semilla en los rands asignada ? (esta sólo se debe asignar una vez al principio).

iba a mencionar algo al respecto, quizas el problema sea que los RAND dan valores diferentes, es mas, nunca se debe asumir valores de los rand, estos no siempre pueden dar igual, menos entre plataformas diferentes.

por otro lado, yo diria que en un juego de naves, no deberias usar RAND para determinar cuando salen eventos/enemigos, sino usar tablas preasignadas, para que siempre surjan los mismos enemigos en los mismos lugares.

a mi me suena que el problema es de los RAND.

y en mis pruebas no pasa eso que mostras en el video.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

si, la semilla esta asignada hace mucho en la primera  línea del main con rand_seed(time())

Normalmente en los juegos de naves sucede lo que dices, siempre salen los enemigos en el mismo lado, y yo no quería que fuese así: terminas aprendiendote por donde salen los malos y despues se vuelve aburrido jugar de nuevo (al menos a mi me pasa). Tengo solo algunos eventos por tiempo fijos: la salida de las esferas atacando en espiral, 3 rangos de tiempo donde salen solo esferas pequeñas o salen de los sembradores de esferas junto a los que se te acercan a dispararte; y la salida del jefe. El resto es todo cada cierto tiempo, pero al azar, para que al volver a jugar sea distinto y no te puedas memorizar todo :P

¿Free puedes probar en windows por favor? Este bug me tiene loco, ya que no lo puedo solucionar, vuelve el juego injugable y lo peor parece que es personal y me tiene mala solo a mi jajajajajaja ¬¬U

SplinterGU

quizas te convendria poner un limitador, si ya existe otro ( o N ) de ese enemigo corriendo no correr otro, y un temporizador que indique tiempo de espera entre vez y vez que salga ese enemigo o incluso para que salga de una esquina determinada.

a mi realmente no me pasa, lamento no poder reproducir el error.

prueba tambien poniendo un rand_seed con un valor fijo y ver si te sigue pasando, prueba varios valores rand_seed.... a ver si es tema de la semilla.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

lo raro es que dices que con un runtime pasa y con otro no, a mi no me paso con ninguno de los 2.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

Ahora he probado dandole doble click a los dcb en windows:
lo mismo, el hecho con la rc19 perfecto, el con la rc20 hace cosas extrañas.
Quizás hice algo mal al actualizar pero no creo...
Tengo una carpeta en el disco duro, en concreto
E:\Juegos\DesarrolloJuegos\BennuGD

Esta carpeta la tengo en el path, osea en las variables de entorno, ahi tenía los ejecutables y librerias de la RC19, tal como venían en el rar.
Me descargué la RC20, borré el contenido de la carpeta en mi disco, y copié todos los archivos que vienen en el .rar de esta rc.
En consola me seguía reconociendo bgdi y bgdc, es decir, la variable de entorno sigue funcionando bien.

¿prueba solamente lanzando el dcb, sin recurrir a las librerías de la carpeta?
Te insisto, porque ya son 3 máquinas que dan el mismo problema (las 3 amd de distintas épocas, athlon xp 2000+ con overclock, amd athlon 64 x2 5600+ clocks de fábrica, y un athlon 64 x2 tk-57, laptop), y como me tengo fé que no soy tan bruto con los pc, Una de mis teorías es que cuando liberaste los binarios alguna librería no actualizaste o se mezclaron y me quedó la cagá en el juego.
La otra es que al nuevo core no le gusten los amd :S


SplinterGU

yo te creo que tenes un problema, de hecho el video lo muestra... lo que no logro es que me pase, quizas sea algo de windows, tendre que probar en windows, pero vos no habias dicho que habias probado en linux?

por otro lado, no hay cambios que puedan afectar, quizas los cambios de los arrays o accesos a los mismo, o tambien puede ser algun tema con punteros que he corregido quizas, no se si usas punteros.

estaria bueno poder aislar el problema, si pones un rand_seed fijo, que reproduzca el tema, quizas yo lo pueda reproducir.

no se me ocurre que puede pasar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

Si, probé en windows xp y linux ubuntu 10.04 (damn, apagué el laptop, no me acuerdo del kernel).

He cambiado la semilla a números fijos y sigue igual :(

He probado en el intel atom con win7 de mi hermana, y lo mismo... y obviamente en ese equipo no esta el runtime ni las variables de entorno, se basa solo en las librerías incluidas en el rar que armé con ambas versiones. Al menos descarto que los proces amd me estén jugando una mala pasada.

He cambiado los casteos de tipos para el puntaje y el daño, fijandome muy bien en los paréntesis, y nada.
Ahora voy a probar unos says en la muerte de los enemigos "looperos" para ver si realmente mueren (al menos cumplen con mostrar el puntaje y añadirselo al jugador, condición que solo se da al morir producto de disparos)

SplinterGU

no sera una combinacion de cosas? o sea, disparo triple, desde esa posicion? no se, yo cuando vienen las naves asi, no tengo disparo triple.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Noivern

Nop, tambien pasa cuando empiezas con el disparo más indigno, en realidad pasa con todo: misiles, laser, las estrellas y disparos EXCEPTO cuando chocas con la nave contra ellos, choques contra el escudo o cuando se activa la explosión del escudo.
Es muy raro.
El say en el OnExit me revela que no siempre el proceso es destruido, y cuando lo hace no los cuenta en el contador global de enemigos (una struct). Este contador solo se actualiza cuando eliminas enemigos con disparos/laser/estrellas/misiles, no cuentan los choques, el escudo o la explosión del escudo.

ES EXTREMADAMENTE RARO.
Probé con los contadores de muertos de los otros tipos de enemigos, y esos si los cuenta bien.

AAAAAAJAJA!! para peor, a VECES sale que mataste un enemigo loopero en la consola, y nunca son los primeros que salen, siempre son los proceso fantasmas que salen de nuevo los que el say revela su muerte... pero de todos modos no los cuenta en la struct...

Se viene el 2012 @_@

SplinterGU

los procesos estan siempre en running?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: SplinterGU on January 06, 2011, 04:16:06 AM
los procesos estan siempre en running?


nunca en frezee o sleep u otro?

tienen sig_ign ?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2