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.
Test de mi gameEngine en processing.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: Test de mi gameEngine en processing.
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.
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.
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
- Hokuto7
- Posts: 1408
- Joined: Mon Aug 28, 2017 10:14 am
Re: Test de mi gameEngine en processing.
¿El 3d es solo para la version opengl?.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: Test de mi gameEngine en processing.
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..
Te dejo un video de como luce el motor de la gameLibZero en 3d, ya con iluminación basica y todo eso..
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
- Hokuto7
- Posts: 1408
- Joined: Mon Aug 28, 2017 10:14 am
Re: Test de mi gameEngine en processing.
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.
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.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: Test de mi gameEngine en processing.
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.
Entonces oa animacion es 1 2 3 4 repitiendo 5 frames cada uno.
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
- Hokuto7
- Posts: 1408
- Joined: Mon Aug 28, 2017 10:14 am
Re: Test de mi gameEngine en processing.
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.
- Nowy
- Posts: 599
- Joined: Sat Oct 04, 2008 11:14 am
- Contact:
Re: Test de mi gameEngine en processing.
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.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: Test de mi gameEngine en processing.
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.
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.
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
- Hokuto7
- Posts: 1408
- Joined: Mon Aug 28, 2017 10:14 am
Re: Test de mi gameEngine en processing.
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.
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.