Div Games Online en Html5 y Javascript

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

Re: Div Games Online en Html5 y Javascript

Postby CicTec » Wed Aug 26, 2015 12:43 pm

@OskarG, no es posible aumentar el rendimiento en manera considerable, ni ahora, ni posiblemente en futuro, no porque Amaka no sepa hacerlo, sino porque DIVGO esta escrito en JS que es un lenguaje que no permite eficiencia y optimizaciones de performance, por eso han planteado crear un nuevo standard llamado WebAssembly (puse un thread siempre en offtopic), porque se han dado cuanta que este lenguaje no tiene futuro en cuanto a rendimiento para juegos complejos o medio/grandes.
User avatar
CicTec
 
Posts: 16575
Joined: Thu Jul 31, 2008 10:18 pm

Re: Div Games Online en Html5 y Javascript

Postby OskarG » Wed Aug 26, 2015 1:21 pm

Gracias Citec por la duda uhmmm.....sera cuestion de ser paciente y ver como se van desarrollando los diferentes proyectos para elegir el mas conveniente.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Wed Aug 26, 2015 11:02 pm

Lo que dice CicTec es cierto, no es por el engine, JS para desarrollar juegos es más lento que C/C++ o C#, y si tiene un sistema de procesos como Div pues ayuda a que sea todavía más lento. Pero no por ello no se pueden crear juegos como muchos que aparecen por Steam o en móviles (muchos de ellos son juegazos), en ordenadores y móviles más modernos apenas se aprecia tanta lentitud (si quieres hacer juegos como los que hay en la PS4, XONE o WiiU a 1080 y 60fps... difícil sin un monstruo de ordenador). En ese aspecto DivGO siempre ira más lento que Gemix o Bennu.

Lo de WebAssembly tengo curiosidad y bastantes dudas, a ver en que queda y cuanto tardaran en lanzar algo estable. 8-)
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby OskarG » Mon Aug 31, 2015 10:22 pm

Hola amaka,paseando por los foros he encontrado GAMEPOWER,es clavadito a div2 :lol: me ha hecho gracia,ahora estoy trasteando con el y viendo que diferencias hay entre tu proyecto y este y cual corre mas rapido :mrgreen: .Espero que la competencia haga que divgo se supere asi mismo y tengamos un programa para hacer juegos en html gratis y potente.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Div Games Online en Html5 y Javascript

Postby erkosone » Tue Sep 01, 2015 6:55 am

Amaka puedo preguntarte algo?
- Como has montado el sistema de procesos? por array de objetos o por otro sistema?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Tue Sep 01, 2015 9:38 am

OskarG wrote:Hola amaka,paseando por los foros he encontrado GAMEPOWER,es clavadito a div2 :lol: me ha hecho gracia,ahora estoy trasteando con el y viendo que diferencias hay entre tu proyecto y este y cual corre mas rapido :mrgreen: .Espero que la competencia haga que divgo se supere asi mismo y tengamos un programa para hacer juegos en html gratis y potente.


Hola OskarG,

La competencia siempre es buena para el usuario, y en este caso para los desarrolladores en lenguaje Div, cuantas más opciones donde poder elegir da más seguridad de que esto tiene futuro, de que si uno detiene su desarrollo con hacer pequeños cambios de código a nuestros proyectos se puede saltar a otro sin necesidad de aprender un nuevo lenguaje de 0. :)
También esto hace que los que desarrollamos un Div-like nos de la venilla de mejorarlo y no dejarlo atrás. ;)

erkosone wrote:Amaka puedo preguntarte algo?
- Como has montado el sistema de procesos? por array de objetos o por otro sistema?


Hola erkosone,

Con array de objetos y prototipos. Es lo que da mejor resultado al realizar pruebas de benchmark. :P

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby OskarG » Tue Sep 01, 2015 10:33 am

Pues si,la verdad que con divgo me ha picado el gusano de hacer cosas,viendo que prospera y surge competencia :D ,pues implica que tiene futuro y este lenguaje de leguas es el mas sencillo de utilizar.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Div Games Online en Html5 y Javascript

Postby OskarG » Tue Sep 01, 2015 2:40 pm

Hola,no logro que con el set_center cambiar el centro de rotacion del grafico 2,da igual lo que ponga que siempre rota en el mismo punto.
PROGRAM ejemplo_map_block_copy;

PRIVATE
x_destino, y_destino;
x_origen, y_origen;
ancho, alto;
fichero1;

BEGIN
set_fps(0,0)
set_mode(320,200);

fichero1= load_fpg ("graficos/tutorial0");
file=fichero1;
set_center(file, 2,320,200);

graph=2;
x=160;
y=120;


LOOP
x_destino=rand(0, 320*2);
y_destino=rand(0, 200*2);
ancho=rand(1, 32);
alto=rand(1, 32);
x_origen=rand(0, 32-ancho);
y_origen=rand(0, 32-alto);

map_block_copy(fichero1, 2, x_destino, y_destino, 1, x_origen, y_origen, ancho, alto);

FRAME;
angle+=1000;
END
END
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Div Games Online en Html5 y Javascript

Postby erkosone » Wed Sep 02, 2015 5:35 am

Hola Amaka, así leyendo el tema de performance he recordado una conversación que tuve con Codemaster "El tipo que creó Jdiv y Cdiv" donde me comentaba que el para aumentar rendimiento lo que hacia es crear un thread por cada objeto PROCESS y que subian los FPS mucho.

Te lo comento por que en su día esto dió una subida importante al numero de procesos que se podían ejecutar en Android con Jdiv.
Yo en cuanto estudie los threads los implementaré en mi engine, llevo ya unos meses haciendo un Div para Processing y también he tenido que ir a morir al array de objetos, pero eso es un cuello de botella muy grande, la función que devuelve la instancia del objeto n de un array es super lenta tio, y si es así en java no quiero pensar en javascript. :oops:

No se si me explico vamos, yo lo hago tmb como indicas:

Source Code (Java) [ Download ] [ Hide ]
  •   Collections.sort(draws, new drawComparator());
  •   // recorrer el array de draws y procesar su rendering..
  •   for (int i = draws.size ()-1; i >= 0; i--) {
  •     tempDraw = draws.get(i);
  •     tempDraw.render();
  •     if (tempDraw.delete()) {
  •       //Items can be deleted with remove().
  •       draws.remove(i);
  •     }
  •   }
  •   //######################################################################
  •   Collections.sort(sprites, new spriteComparator());
  •  
  •   // recorrer el array de sprites y procesar su rendering..
  •   for (int i = sprites.size ()-1; i >= 0; i--) {
  •     tempSprite = sprites.get(i);
  •     tempSprite.render();
  •     if (tempSprite.delete()) {
  •       //Items can be deleted with remove().
  •       sprites.remove(i);
  •     }
  •   }
  •  
  •   //######################################################################
  •   Collections.sort(writes, new writeComparator());
  •   // recorrer el array de textos y procesar su rendering..
  •   for (int i = writes.size ()-1; i >= 0; i--) {
  •     tempWrite = writes.get(i);
  •     tempWrite.render();
  •     if (tempWrite.delete()) {
  •       //Items can be deleted with remove().
  •       writes.remove(i);
  •     }
  •   }


Lo malo es que encima yo uso 3 listas de objetos, una para los writes, otra para los draws, y otra para los sprites... es super super lento..
Si quieres podemos comentar como hace uno y otro que cosa y así quizá se nos ocurra como mejorar el rendimiento, a mi es un tema que me carcome desde siempre XD.. si te apetece debatir sobre como mejorar esto..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Wed Sep 02, 2015 8:57 am

OskarG, lo del punto de control con map_block_copy(), map_put(), map_xput(), map_put_pixel() y screen_copy() ya está arreglado para la próxima versión. :)

Erkosone es muy similar a lo que hago yo. También uso un bucle de array para cada tipo de objeto (write, process, draw, object3d...) y en el caso de los procesos hay 2 bucles: uno para actualizar todas las instrucciones al proceso hasta el siguiente frame, y otro para dibujar los cambios.

Code: Select all
var total = DivGO.numero_process.length;
for (var i = 0; i < total; i++){
   var pr = DivGO.numero_process[i];
         
   for (var e in DivGO.numero_scroll){
      if (scroll[e].camera == pr && pr.ctype == 0) pr.ctype = c_scroll;
   }

   for (var e in DivGO.numero_mode7){
      if (m7[e].camera == pr && pr.ctype == 0) pr.ctype = c_m7;
   }
         
   for (var e in DivGO.numero_scene3d){
      if (scene3d[e].camera == pr && pr.ctype == 0) pr.ctype = c_scene3d;
   }
   
   //para pintar y controlar los procesos dentro del scroll
   if (pr.ctype == c_scroll){
      var binaryData = '1111111111';

      if (pr.cnumber != 0){
         binaryData = ('000000000' + pr.cnumber.toString(2)).slice(-10);
         binaryData = binaryData.split('').reverse();
      }

      for (var e in DivGO.numero_scroll){ //opcion mas optima para este caso
         if (binaryData[e] == 1){ //esto pintara el proceso en el scroll indicado
            pr.region = DivGO.numero_scroll[e].region;
            pr.PAINTprocess();
         }
         
         ......
      }

      ......
   }

   ......
}

var total    = DivGO.numero_draw.length;
num_drawing = total; //variable global para obtener totales en DivGO
for (var i = 0; i < total; i++){
   DivGO.numero_draw[i].PAINTdraw();
}
   
var total = DivGO.numero_texto.length;
num_text = total;
for (var i = 0; i < total; i++){
   DivGO.numero_texto[i].PAINTtexto();
}



Lo de los thread en javascript creo que no era posible o por lo menos lo que leí sobre ello comparándolo con otros lenguajes.

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 5 guests

cron