Test de mi gameEngine en processing.

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.
Post Reply
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Test de mi gameEngine en processing.

Post by erkosone »

La verdad es que esta quedando bastante bien, y funciona muy fino tio.
Ya te digo, sabiendo economizar con la iluminación y las sombras y aprobechando bien el sistema de batch de shapes puedes hacer muchas cosas con buen rendimiento.
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Test de mi gameEngine en processing.

Post by erkosone »

Avances y performance..
Acabo de añadir una nueva feature que es la bomba, realmente nos permite crear contenido dinamico muy facilmente en los juegos 3d..

Se trata de la distancia de visión.. ajustando la distancia de visión podemos tranquilamente lanzar 50.000 procesos, si! has leido bien.. CINCUENTA MIL PROCESOS EN 3D! sin un apice de ralentización, java, al igual que c o c++ son lenguajes extremadamente optimizados en lo que a recorrer listas de objetos se refiere, estan creados basicamente para esto, y crear una lista de varios cientos de miles de objetos y recorrerla a cada frame practicamente lo deja indiferente..

Así que.. simplemente basta con añadir esto al proceso 3d:

[Codebox=java file=Untitled.java]dist = getDist(idPerso);

if(dist>100){
visible = false;
}else{
visible = true;
}[/Codebox]

Y como bien se puede ver, heredado de gemix como no, da exactamente igual la cantidad de objetos que esten funcionando.. el framework se va a basar en el valor de la variable local predefinida "VISIBLE" para renderizar o no el modelo..
Pero ya no solo renderizarlo.. si no que basicamente no aplica ni transformaciones a la matriz general del motor grafico, así que realmente se vuelve una solución ultra fast.

La verdad es que me esta sirviendo mucho Gemix como inspiración para dejar fino a este motor, he de reconocer que el lenguaje Gemix tiene aspectos muy elaborados como este que supongo que en Gemix hace exactamente lo mismo.


Con esto en 3d lo que pretendo es evitar la carga dinamica de procesos y modelos.. simplemente se genera todo el contenido pues java puede con grandes listas de objetos y procesos sin despeinarse, y el framework hace el trabajo sucio.. obteniendo una gran tasa de FPS ahun teniendo varios miles de procesos con modelos 3d en memoria ejecutandose.
You do not have the required permissions to view the files attached to this post.
User avatar
Hokuto7
Posts: 1408
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Post by Hokuto7 »

¿El 3d es solo para la version opengl?.
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Test de mi gameEngine en processing.

Post by erkosone »

Hola Hokuto, si tio, solo para openGL acelerado por hardware, tanto para Desktop "Windows linux y macosx" como para Android.

Te dejo un video de como luce el motor de la gameLibZero en 3d, ya con iluminación basica y todo eso..

User avatar
Hokuto7
Posts: 1408
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Post by Hokuto7 »

Entonces tendre que esperar a que implementes el 3d en la version de raylib.
Aunque lo que realmente me interesa es que metas la funcion para cargar los mapas hechos con szener y el poder manejar desde el codigo los objetos colocados desde el szener.

Una pregunta que puede que no tenga solucion.
[Codebox=gemix file=Untitled.gemix]
int animacion[] = {1,1,1,2,2,2,3,3,3};
[/Codebox]

Me gustaria saber si hay alguna forma de indicarle al array el numero de repeticiones que quiero que tenga cada numero,es para no tener que estar poniendo muchas veces el mismo numero.

Si no se puede con array,hay alguna otra forma.Es decir,pongo un numero y con alguna funcion que tenga el lenguaje decirle que ese numero tenga ciertas repeticiones.
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Test de mi gameEngine en processing.

Post by erkosone »

Hola hokuto. Pues se puede de muchas maneras. Puedes hacerlo haciendo que el array de la animacion se tenga que leer a pares y que el primer numero sea el frame y el segundo el numero de repeticiones. Osea . Int[] animation = { 1,5, 2,5, 3,5, 4,5 };
Entonces oa animacion es 1 2 3 4 repitiendo 5 frames cada uno.
User avatar
Hokuto7
Posts: 1408
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Post by Hokuto7 »

Asi de primeras no lo entiendo,porque si recorro ese array me va a leer primero el sprite 1 luego el 5 despues el 2,y no lo va a recorrer seguido para que tenga una animacion seguida.
User avatar
Nowy
Posts: 599
Joined: Sat Oct 04, 2008 11:14 am
Contact:

Re: Test de mi gameEngine en processing.

Post by Nowy »

recorres ese array pero el primer valor que encuentras se lo asignas al grafico, y el segundo a las veces q tienes que repetir esa asignacion(o esperar para leer el siguiente) en bucle.
User avatar
erkosone
Posts: 10656
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.
Contact:

Re: Test de mi gameEngine en processing.

Post by erkosone »

Aber almas de catarus que podemos leer tantos datos como queramos del array a cada iteracion..

for( int i=0; i<tamanio; i+=2 ){

}

entonces i indica el gráfico, y de igual manera "i+1" indica las veces que hay que repetirlo.
User avatar
Hokuto7
Posts: 1408
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Post by Hokuto7 »

Depues de realizar algunas pruebas comento.

Nowy!!, esta muy bien lo que comentas,pero si recorres ese array lo hace seguido y no veo la forma de decirle desde un bucle que repita 5 veces el primer numero antes de pasar al segundo,si tu lo sabes dimelo.

Erkozone!!,esta muy bien tu teoria pero en la practica no funciona porque no explicas como recorrer 5 veces un numero antes de pasar al siguiente,tu me estas diciendo que vaya de 2 en 2 con i += 2,pero eso lo que hace es primero el 1 despues el 2,vamos que se salta en cada iteracion el 5.

Pero ese 5 como lo uso o para que sirve,si no le veo ninguna utilidad,tu dices que es para decirle que lo repita 5 veces,pero como lo usas.Pon un ejemplo,si no,es imposible entender esto.He mirado por internet y no hay nada sobre esto que comentas.
Post Reply

Return to “Offtopic”