Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

- STRINGS en la consola de debug, ahora saca la informacion en la misma.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿He leido bien? ¿dll externas? ¿sin recompilacion y sin usos de los headers? esto hay que celebrarlo.
Es que, si no me he vuelto loco, eso implica no solo el uso de las funciones del sistema para crear ides, o integrarse en el escritorio, tambien el uso de DX, OGL y demás sin necesitar los módulos (salvo para simplificar su uso, claro ^^U) y de librerías libres ya precompiladas que aumentarían exponencialmente la velocidad de los juegos.
Sumo una de karma a Splinter. A este paso, el propio código de Bennu va a quedar a la sombra de todo lo que puede serle compatible XD
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

entendiste bien...

ahora me surge una duda... el codigo de Bennu va a "quedar" a la sombra o va a "dejar" a la sombra a los demas compatibles...?

XD

Saludos y gracias
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg


Quoteahora me surge una duda... el codigo de Bennu va a "quedar" a la sombra o va a "dejar" a la sombra a los demas compatibles...?
el bennu tiene que quedar arriba  :) , y es verdada, otro karma para splinter.

QuoteDe todas maneras, Prg, yo pediría que en el caso concreto del editor Fpg no se hiciera uso de esta funcionalidad, si se quiere que el programa funcione igual para todas las plataformas... Si se meten funciones que manejan dll de windows, se tendría que hacer lo propio para Linux y eso puede ser un follón. La gracia de esto yo lo veo cuando uno quiere hacer un programa para una plataforma concreta, para exprimir sus posibilidades...porque repetir lo mismo para diferentes sistemas operativos repito que puede ser algo tedioso, no?

Es verdad blostec, no te preocupes, no tengo intenciones de hacerlo, por el contrario, tengo otras mejoras que pienso mensionar en el foro. Eh hecho otras mejoras a la gui, y otras cosas que después, quizá en la próxima semana les comente.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

fantastico...

Nuevos avances...

- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);
- Ternary condition fixed... and improved speed in ternary condition when expression is constant.
- Add core's functions bgdrtm_entry and bgdrtm_exit to bgdrtm...
- Now exit code can be return at finish execution of bgdi
- Lib WM now don't exit when close botton are clicked, only set exit_status to true
- EXIT(...) functions now fixed, and use the params
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

HaCkZJuaNN

Quote from: SplinterGU on November 09, 2008, 10:12:27 AM
- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);

TE AMO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Una pregunta sobre esto, entiendo que un float se vuelve infinito cuando dices que es por ejemplo 2/0, y que se vuelve ¿nan? cuando dices que es 0/0, es esto así?. Qué ocurre si un float que es infinito dices say(variable);??

Gracias por todo.

SplinterGU

Quote from: HaCkZJuaNN on November 09, 2008, 10:52:33 AM
Quote from: SplinterGU on November 09, 2008, 10:12:27 AM
- Now division by zero are allow in float expresions, new functions are added:
  int isinf(float x);
  int isnan(float x);
  int finite(float x);

TE AMO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Una pregunta sobre esto, entiendo que un float se vuelve infinito cuando dices que es por ejemplo 2/0, y que se vuelve ¿nan? cuando dices que es 0/0, es esto así?. Qué ocurre si un float que es infinito dices say(variable);??

Gracias por todo.



import "mod_say"
import "mod_math"

Private
    int i;
    float n = 10,n1 = 0;
    int i2=2;
Begin
    say ("n=" + n + " n1=" + n1 );
    say ("");
    say ("n/n1=" + n/n1 + " isinf(n/n1)="+ isinf(n/n1) + " isnan(n/n1)="+ isnan(n/n1)+ " finite(n/n1)="+ finite(n/n1));
    say ("n/0.0=" + n/0.0 + " isinf(n/0.0)="+ isinf(n/0.0) + " isnan(n/0.0)="+ isnan(n/0.0)+ " finite(n/0.0)="+ finite(n/0.0));
    say ("n/2=" + n/2 + " isinf(n/2)="+ isinf(n/2) + " isnan(n/2)="+ isnan(n/2)+ " finite(n/2)="+ finite(n/2));
    say ("(1+n/0.0)=" + (1+n/0.0) + " isinf((1+n/0.0))="+ isinf((1+n/0.0)) + " isnan((1+n/0.0))="+ isnan((1+n/0.0))+ " finite((1+n/0.0))="+ finite((1+n/0.0)));
    say ("n/0=" + n/0 + " isinf(n/0)="+ isinf(n/0) + " isnan(n/0)="+ isnan(n/0)+ " finite(n/0)="+ finite(n/0));

    say ("");
    say ("i2/0.0=" + i2/0.0 + " isinf(i2/0.0)="+ isinf(i2/0.0) + " isnan(i2/0.0)="+ isnan(i2/0.0)+ " finite(i2/0.0)="+ finite(i2/0.0));
    say ("0.0/0.0=" + 0.0/0.0 + " isinf(0.0/0.0)="+ isinf(0.0/0.0) + " isnan(0.0/0.0)="+ isnan(0.0/0.0)+ " finite(0.0/0.0)="+ finite(0.0/0.0));

    say ("");
    n = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; //130 zeros
    say ("n=" + n + " (10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)");
    say( "isinf(n)=" + isinf(n) );
    say( "isnan(n)=" + isnan(n) );
    say( "finite(n)=" + finite(n) );

    say ("");
    n = 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001; //130 zeros
    say ("n=" + n + " (0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)");
    say( "isinf(n)=" + isinf(n) );
    say( "isnan(n)=" + isnan(n) );
    say( "finite(n)=" + finite(n) );

    say ("");
    n = -1;
    say ("n=" + n );
    say ("sqrt(n)=" + sqrt(n) + " isinf(sqrt(n))="+ isinf(sqrt(n)) + " isnan(sqrt(n))="+ isnan(sqrt(n))+ " finite(sqrt(n))="+ finite(sqrt(n)));

    say ("");
    n = 1/0.0;
    say ("n=" + n + " (1/0.0)");
    say ("1.0/n=" + 1.0/n + " isinf(1.0/n)="+ isinf(1.0/n) + " isnan(1.0/n)="+ isnan(1.0/n)+ " finite(1.0/n)="+ finite(1.0/n));
    say ("1.0/0=" + 1.0/0 + " isinf(1.0/0)="+ isinf(1.0/0) + " isnan(1.0/0)="+ isnan(1.0/0)+ " finite(1.0/0)="+ finite(1.0/0));
    say ("1.0/0=" + 1.0/0 + " isinf(1.0/0)="+ isinf(1.0/0) + " isnan(1.0/0)="+ isnan(1.0/0)+ " finite(1.0/0)="+ finite(1.0/0));

End


output:

n=10 n1=0

n/n1=1.#INF isinf(n/n1)=1 isnan(n/n1)=0 finite(n/n1)=0
n/0.0=1.#INF isinf(n/0.0)=1 isnan(n/0.0)=0 finite(n/0.0)=0
n/2=5 isinf(n/2)=0 isnan(n/2)=0 finite(n/2)=1
(1+n/0.0)=1.#INF isinf((1+n/0.0))=1 isnan((1+n/0.0))=0 finite((1+n/0.0))=0
n/0=1.#INF isinf(n/0)=1 isnan(n/0)=0 finite(n/0)=0

i2/0.0=1.#INF isinf(i2/0.0)=1 isnan(i2/0.0)=0 finite(i2/0.0)=0
0.0/0.0=-1.#IND isinf(0.0/0.0)=0 isnan(0.0/0.0)=1 finite(0.0/0.0)=0

n=0 (10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
isinf(n)=0
isnan(n)=0
finite(n)=1

n=0 (0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)
isinf(n)=0
isnan(n)=0
finite(n)=1

n=-1
sqrt(n)=-1.#IND isinf(sqrt(n))=0 isnan(sqrt(n))=1 finite(sqrt(n))=0

n=1.#INF (1/0.0)
1.0/n=0 isinf(1.0/n)=0 isnan(1.0/n)=0 finite(1.0/n)=1
1.0/0=1.#INF isinf(1.0/0)=1 isnan(1.0/0)=0 finite(1.0/0)=0
1.0/0=1.#INF isinf(1.0/0)=1 isnan(1.0/0)=0 finite(1.0/0)=0


Recordar, solo para expresiones flotantes, si se hace una division por cero de numeros no flotantes, vamos a recibir el mensaje ya conocido de "Division by zero".
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

No me acorde de agradecer en la nueva consola debug.... el que cuando cambias valores de X, Y, Z, angle, size, write_int y supongo que un largo etcétera, lo cambia al instante! sin tener que hacer un frame global (F10) o pasar a otro proceso (F11), es algo que ayuda mucho a la hora de ir haciendo pruebas y buscar errores en tiempo real y que particularmente me ha gustado mucho también aparte de todo lo que me gusto de la nueva consola debug.

Gran trabajo.

Ahora quiero plantear un duda que tengo.... y es que... a veces como todos sabemos Bennu al dar un error estilo: Procedimiento no activo Pepe(65578) se sale de la ejecución... y me preguntaba... si en vez de que salga de la ejecución... podría abrirse la consla de debug y dar el error ahí.... y con esto poder localizar el error dado, viendo que línea de código produjo el error, y poder hacer pruebas para localizar el error desde consola... lógicamente si haces un Frame (F10) podría llegar a entender que Bennu se cerrará a causa de ese Procedimiento no activo, pero ya tienes la oportunidad de investigar un poco en la consola debug antes de cerrarse Bennu. Igual estoy diciendo una barbaridad... no lo sé.

Si no se entiende... lo intento explicar mejor.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

Se entiende, es una buena sugerencia, ahora hay que ver de que forma se puede implementar esto sin hacer que el core dependa de un modulo externo como es el debug.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Un momento, creo que me he flipao, ¿ahora se le puede meter opengl a bennu?
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

kim-elet-o

mas o menos creo que si, y algunas cosillas mas. :D :D :D
|/
|\im-elet-o el yayo programador.

Zardoz

Quote from: SplinterGU on November 07, 2008, 03:24:55 AM
Nuevo modulo interface portable de funciones externas... (importar cualquier dll/so a bennu)...

Esto implica poder usar OpenGL, OpenAL, o lo que a uno se le ocurra ??

SplinterGU

si, pero obviamente no de la forma automatica de render (por ejemplo), pero si llamar a las funciones de OpenGL y de esta forma hacer los renders...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Goku jr

Vamos que incluso se podria crear juegos 3d usando motores externos,si necesidad de que la gente creara dll especificas?


Drumpi

La bennu 3d no iba ya sobre openGL? es que me parece raro que la gente se sorprenda a estas alturas lo de poder usar otras lib gráficas: ya se dijo hace tiempo que se podía mediante los módulos que fueran saliendo ¿o hay algo que no he pillado?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)