Test de mi gameEngine en C++

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.

Re: Test de mi gameEngine en C++

Postby CicTec » Sun Dec 09, 2018 12:32 pm

Hokuto7 wrote:El test gamelibzero c++ me da 84 objetos en pantalla("EL PROXIMO TEST RESOLUCION 640X480 A 30FPS")

Como estaba aburrido he realizado mas pruebas de rendimiento en otros engine.

Gamemaker:
.60 fps 100 objetos ,30 fps 150 objetos

Cdiv:
-60,0 fps 300 objetos,30,0 fps 900 objetos

Didx:
aqui tuve que crear un sprite simple en el programa, porque no se como meter el sprite en el fpg y puede que el test no sea fiable
-60,0 fps 880 objetos,30,0 fps 1400 objetos

Bennugd:
-60,0 fps 2700 objetos,30,0 fps 6000 objetos
-60,1 fps 3200 objetos,30,1 fps 6800 objetos
-60,2 fps 3600 objetos,30,2 fps 7400 objetos

En bennugd me ocurrio una cosa curiosa,cuantos mas frames le restaba menos aumentaba el rendimento.Pero esta claro que el engine mas rapido en mi ordenar y con diferencia es bennugd.

Resumiendo:
Gemix:
set_fps(60,0) 1000 procesos,set_fps(30,0) 2000 procesos
Bennugd:
set_fps(60,0) 2700 procesos,set_fps(30,0) 6000 procesos

Otra cosa que me olvide anteriormente, DIVDX y GameMaker no debes probarlos desde el entorno abierto porque pueden tener modo debug, tienes que generar el ejecutable (exportar o lo que sea), cierrar el entorno y probar el ejecutable, asi es el mismo ejemplo de los otros engines, sino la comparacion no es exacta.

Sobre DIVDX, la comparacion la puedes hacer solo con Gemix Legacy y BennuGD siendo por CPU y tienes que hacerlo por 8bits, porque es el solo modo soportado por DIVDX, no por 32bit.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby OskarG » Sun Dec 09, 2018 12:35 pm

Me expresas citec si esta bien escrito...

Source Code (Gemix) [ Download ] [ Hide ]
  •  
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  •  
  • program test;
  •        
  • begin
  •     write(0, 5, 115, 3, "FPS........: "); write(0, 78, 115, 3, &fps);
  •         mode_set(640,480,32);
  •         set_fps(0,0);
  •         graph = image_load("grafico.png");map_new(800,800, rgb(255, 0, 0));
  •         x = 100;
  •         y = 100;
  •         loop
  •                 rotation.z += 3500;
  •         scale.x=50;
  •         scale.y=50;
  •                
  •         frame;
  •                
  •         end
  •        
  •  
  • end
  •  
  •  
  •  
  •  
  •  



//////////////////////////////////////////////////////////////////////////////////////

COn esta version me da 1100 frames...


SI le quito la primera linea compiler_options _gmxsystem_graphics = gmxgraphics_modern; ME DA 3500 frames..
ES decir la version modern en mi ordenador no funciona adecuadamente
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Test de mi gameEngine en C++

Postby CicTec » Sun Dec 09, 2018 12:42 pm

OskarG wrote:Me expresas citec si esta bien escrito...

Source Code (Gemix) [ Download ] [ Hide ]
  •  
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  •  
  • program test;
  •        
  • begin
  •     write(0, 5, 115, 3, "FPS........: "); write(0, 78, 115, 3, &fps);
  •         mode_set(640,480,32);
  •         set_fps(0,0);
  •         graph = image_load("grafico.png");map_new(800,800, rgb(255, 0, 0));
  •         x = 100;
  •         y = 100;
  •         loop
  •                 rotation.z += 3500;
  •         scale.x=50;
  •         scale.y=50;
  •                
  •         frame;
  •                
  •         end
  •        
  •  
  • end
  •  
  •  
  •  
  •  
  •  



//////////////////////////////////////////////////////////////////////////////////////

COn esta version me da 1100 frames...


SI le quito la primera linea compiler_options _gmxsystem_graphics = gmxgraphics_modern; ME DA 3500 frames..
ES decir la version modern en mi ordenador no funciona adecuadamente

No, estas haciendo mal algo, set_mode en modern no necesita parametro BPP y los WRITE van despues el SET_MODE, aqui los tests correctos:

Gemix Legacy:
Source Code (Gemix) [ Download ] [ Hide ]
  • program test_01;
  •  
  • Global
  •         int img;
  •         int i = 0;
  • begin
  •         mode_set(640, 400, 32);
  •         set_fps(60, 0);
  •         img = image_load("data/images/00.png");
  •         write(0, 10, 10, 3, &fps);
  •         write(0, 200, 10, 3, &i);
  •         loop
  •                 if(fps > 58)
  •                         proc();
  •                         i++;
  •                 end
  •                 frame;
  •         end
  • end
  •  
  • process proc()
  • begin
  •         graph = img;
  •         x = 320;
  •         y = 200;
  •         scale.x=scale.y = 50;
  •         loop
  •                 rotation.z += 1000;
  •                 frame;
  •         end
  • end
  •  


Gemix Modern:
Source Code (Gemix) [ Download ] [ Hide ]
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  • program test_01;
  •  
  • Global
  •         int img;
  •         int i = 0;
  • begin
  •         mode_set(640, 400);
  •         set_fps(60, 0);
  •         img = image_load("data/images/00.png");
  •         write(0, 10, 10, 3, &fps);
  •         write(0, 200, 10, 3, &i);
  •         loop
  •                 if(fps > 58)
  •                         proc();
  •                         i++;
  •                 end
  •                 frame;
  •         end
  • end
  •  
  • process proc()
  • begin
  •         graph = img;
  •         x = 320;
  •         y = 200;
  •         scale.x=scale.y = 50;
  •        loop
  •                 rotation.z += 1000;
  •                 frame;
  •         end
  • end
  •  
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby OskarG » Sun Dec 09, 2018 12:57 pm

gracias por la explciacion....

Source Code (Gemix) [ Download ] [ Hide ]
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  •  
  • program test;
  •        
  • begin
  •    
  •         mode_set(640,480);
  •          write(0, 5, 115, 3, "FPS........: "); write(0, 78, 115, 3, &fps);
  •         set_fps(0,0);
  •         graph = image_load("grafico.png");
  •         x = 100;
  •         y = 100;
  •         loop
  •                 rotation.z += 3500;
  •         scale.x=50;
  •         scale.y=50;
  •                
  •         frame;
  •                
  •         end
  •        
  •  
  • end
  •  


Me da 282 fps.....y quitando el modern unos 3500 fps . es problema de mi grafica...
rectifico
ahora me da 1200 fps en modern y 4000 en normal .he cerrado todas las aplicaciones y creado ejecutable.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Test de mi gameEngine en C++

Postby CicTec » Sun Dec 09, 2018 1:06 pm

OskarG wrote:gracias por la explciacion....

Source Code (Gemix) [ Download ] [ Hide ]
  • compiler_options _gmxsystem_graphics = gmxgraphics_modern;
  •  
  • program test;
  •        
  • begin
  •    
  •         mode_set(640,480);
  •          write(0, 5, 115, 3, "FPS........: "); write(0, 78, 115, 3, &fps);
  •         set_fps(0,0);
  •         graph = image_load("grafico.png");
  •         x = 100;
  •         y = 100;
  •         loop
  •                 rotation.z += 3500;
  •         scale.x=50;
  •         scale.y=50;
  •                
  •         frame;
  •                
  •         end
  •        
  •  
  • end
  •  


Me da 282 fps.....y quitando el modern unos 3500 fps . es problema de mi grafica...

Que no, sigue comparando mal :P, si quitas el compiler_options, el set_mode es interprato como el DIV original, o sea te esta funcionando a 8bit no 32, para el test real:
1) scale.x y scale.y van fuera del loop, porque estas haciendo operaciones inutiles en un bucle y esto afecta rendimiento en interpretacion.
2) En la version Legacy debes comentar COMPILER_OPTIONS y poner MODE_SET(640, 400, 32), espcificando 32 como tercero parametro para indicarle de ir en modo 32bit (sino arranca en 8 por default).
3) En la version Modern debes descocomentar COMPILER_OPTIONS y poner MODE_SET(640, 400), sin especificar los 32 como tercero parametro ya que es la unica modalidad (32bit) soportada dal Modern.

Siguiendo esos 3 puntos puede probar ambas las versiones y obtener una comparacion real.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby CicTec » Sun Dec 09, 2018 2:10 pm

@erkosone, tu ejemplo de codigo de libreria tiene algo raro:
Source Code (Gemix) [ Download ] [ Hide ]
  •             if(GetFPS() > 58){
  •                 for(int i=0; i<10; i++){
  •                     cosa* a = new cosa();
  •                     a->x = GetRandomValue(0,640);
  •                     a->y = GetRandomValue(100, 400);
  •                     a->size = 50;
  •                     a->graph = img;
  •                     a->visible = true;
  •                 }
  •                 //st = 20;
  •             }
  •  

Cada ves que llamas la funcion y la condicion del case es verdades, si los FPS son mayor de 58, creas 10 "procesos", esto no es preciso en comparacion con los tests para los otros engine, porque si llegas a 59 y creas 10 objetos de clase, puede haber una diferencia de 9 "procesos" mas respecto a los otros engine, el codigo correcto para comparar deberia ser:
Source Code (Gemix) [ Download ] [ Hide ]
  •             if(GetFPS() > 58){
  •                     cosa* a = new cosa();
  •                     a->x = 320;
  •                     a->y = 200;
  •                     a->size = 50;
  •                     a->graph = img;
  •                     a->visible = true;
  •                 //st = 20;
  •             }
  •  

Asi cada vez que se ejecuta el bucle principal que llama Draw() y la condicion del switch y de los FPS se cumplen creas un nuevo "proceso", asi la comparacion en test aspecto es precisa con los tests para los otros engines.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby Hokuto7 » Sun Dec 09, 2018 4:31 pm

He probado lo que me ha dicho cictec en bennugd y los resultados son:
-60,0 fps 300 objetos y 30,0 fps 500 objetos

Tambien he probado mi ejemplo de gemix en la version modern,gracias a estos archivos("libglapi.dll,opengl32.dll") he podido probar la version modern y el resultado es:
-60,0 fps 150 objetos,verion modern
-60,0 fps 1000 objetos,version legacy

Ahora comento los ejemplos de erkozone:
-test gemix 177 objetos
-test gamlibzero_c++ 71 objetos

Tambien he probado el mismo ejemplo en la version java
-test gamelibzero_java 42 objetos
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en C++

Postby Hokuto7 » Sun Dec 09, 2018 4:41 pm

mitest.PNG
testjava.PNG
testgemix.PNG
testc++.PNG
imagenes por si alguien tiene dudas.
You do not have the required permissions to view the files attached to this post.
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en C++

Postby CicTec » Sun Dec 09, 2018 5:12 pm

Hokuto7 wrote:He probado lo que me ha dicho cictec en bennugd y los resultados son:
-60,0 fps 300 objetos y 30,0 fps 500 objetos

Entonces resumiendo, ejecutando el test CPU en las mismas condiciones los resultados son:
Gemix (Legacy):
-60,0 FPS 1000 procesos y 30,0 FPS 2000 procesos
BennuGD:
-60,0 FPS 300 procesos y 30,0 FPS 500 procesos

Correcto ?

Hokuto7 wrote:Tambien he probado mi ejemplo de gemix en la version modern,gracias a estos archivos("libglapi.dll,opengl32.dll") he podido probar la version modern y el resultado es:
-60,0 fps 150 objetos,verion modern
-60,0 fps 1000 objetos,version legacy

Ahora comento los ejemplos de erkozone:
-test gemix 177 objetos
-test gamlibzero_c++ 71 objetos

Tambien he probado el mismo ejemplo en la version java
-test gamelibzero_java 42 objetos

Pues para ejecutar la version Modern te faltaban archivos instalados en el sistema, no era en realidad un problema de Gemix en si.

Sobre el rendimiento, pues veo que tu tarjeta no es amigable con OpenGL de hecho te da resultados muchos mayores Gemix Legacy (CPU) que Gemix Modern (GPU) a pesar que todavia la Modern tiene mejor rendimiento respecto a todos los otros engines con GPU que has probado, incluso todas las versiones de la lib de erkosone en todos los lenguajes implementados.


En definitiva podemos decir que Gemix es lo que mejor rendimiento te da en tu maquina.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby erkosone » Sun Dec 09, 2018 5:48 pm

Hola CicTec, voy a compilar para modern con el ejemplo que has compartido, la verdad es que pensaba que la versión modern era otra que habia que descargar a parte.
Voy a compilarlo para ver la comparación en mi maquina.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 12 guests