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 Sep 02, 2015 9:24 am

erkosone wrote: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..

Hombre, creo que aun no habeis entendido que el gestor de los procesos de DIV consuma muchisimos recursos y no se puede programar en lenguajes como Java, JS o similares, no estan pensados para esos tipos de algoritmos, para tenerlos eficientes hay que programarlos en Assembly, C o C++ (este ultimo tambien hay que programarlo de cierta forma porque la OOP introduce overhead, sino se pierderia de rendimiento).

Lo que se puede hacer con estos lenguajes como Java/JS/etc... es mejorar el engine en cuanto a capacidades, no en cuanto a rendimiento.

Como nota de offtopic, el JDIV no utilizaba un thread para los procesos, sino que cada proceso se creaba en un thread, por ende si tenias 100 procesos eran 100 threads, eso no solo consuma tambien varios recursos, ma crea un monton de problemas de sincronizacion, ademas reduce mucho el numero de procesos disponibles, donde por ejemplo hay plataformas que no soportan mas de 16 threads.
User avatar
CicTec
 
Posts: 16573
Joined: Thu Jul 31, 2008 10:18 pm

Re: Div Games Online en Html5 y Javascript

Postby erkosone » Thu Sep 03, 2015 3:59 am

pues yo no me rindo jeje, haber si encuentro alguna manera de acelerar este proceso, por que la verdad es que salvando esta limitación la cosa se dispararía en rendimiento.

Lo que tengo en mente es analizar como box2D hace para crear tablas de cientos de objetos y recorrerlas tan rapido y procesar sus colisiones, seguro que es complejo pero vamos, que si Jbox2d puede hacerlo en java se debería poder hacer sin problema no que no se es como..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Div Games Online en Html5 y Javascript

Postby CicTec » Thu Sep 03, 2015 8:49 am

Pues yo ya llevo años programando el gestor de procesos de DIV, y años haciendo busquedas y analizando tecnologias para mejorar el rendimiento, y la unica forma es con los lenguajes que te dije, si quieres seguir intentando, adelante, pero para mi vas a perder el tiempo, suerte con eso.
User avatar
CicTec
 
Posts: 16573
Joined: Thu Jul 31, 2008 10:18 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Thu Sep 03, 2015 10:10 am

CicTec tienes razón, es mas optimo usar otros lenguajes para mejorar el rendimiento, pero esto es como las conclusiones que leo siempre para crear apps en móviles: nativo vs webapp.
Hay muchos que prefieren trabajar en nativo por su mejor rendimiento y que corra la aplicación a 1000 por hora, luego están los que prefieren el webapp que aunque vaya a 100 por hora no necesita de mas (hay juegos que se ejecutan en WebView) y puede disponer de la app en cualquier dispositivo sin casi esfuerzo.

Sé que DivGO es más lento que Gemix, no por ello lo considero una pérdida de tiempo, si alguien quiere hacer un juego y publicarlo en Facebook, no queda otra que aguantarse y limitarse al rendimiento permitido por el navegador. Lo programo en Javascript (Ecmascript) porque es el standard web y en el futuro seguirá estando ahí.

Si alguien me dijera que quiere hacer un Rayman Legend a 1080p (en mi caso Panic! 2 8-) ) y me pregunta si con DivGO o con Gemix, lógicamente le diría que Gemix. Y si lo quiere para Web, lógicamente le diría que comparta eso que fuma. :lol:

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

Re: Div Games Online en Html5 y Javascript

Postby CicTec » Thu Sep 03, 2015 10:37 am

Hola Amaka,

Como perdida de tiempo no me referia a tu DivGO, ya se sabe bien que estara siempre limitado en cuanto a rendimiento o features, pero para hacer cosas rapidas esta bastante bien.
Me referia al intento de erkos de montarse con el framework que utiliza en el trabajo creo, que utiliza Java, un sistema de emulacion de DIV, pues no va a obtener nada, al no ser que le sobren programas con pocos procesos, pues, el lenguaje no esta pensado para hacer este tipo de apps.

El caso tuyo con aquello de erkos es diferemte, porque JS es para web casi exclusivamente, Java es principalmente para app nativas, pero si quiere alto rendimiento, no es para ello, debe tirar con Assembly/C/C++.

Un Saludo.
User avatar
CicTec
 
Posts: 16573
Joined: Thu Jul 31, 2008 10:18 pm

Re: Div Games Online en Html5 y Javascript

Postby brujoMX » Fri Sep 04, 2015 5:04 pm

Hola. He sido programador Java por un par de anios, y no estoy para nada de acuerdo con lo que dice CicTec. Pienso que nada es una perdida de tiempo, algo bueno puede salir de lo que uno intenta hacer, tal vez no un motor igual de rapido como el de Gemix, pero seguramente obtendra mucha experiencia atravez de los obstaculos que se le interpongan y eso ya es bastante. Java no es un lenguaje especifica para crear videos juegos, es un lenguaje de "proposito general", que significa esto ?, pues que puedes hacer con el practicamente lo que tu quieras. Si bien es cierto que necesitaras apoyarte de muchas otras librerias nativas esto no es un obstaculo para sacar algo bueno con el.

Por cierto erkos, hasta donde se, JBox2d es solo un wrapper a box2d, osea son llamadas nativas hacia C, java no lo procesa realmente, solo recibe los resultados de C.
Les dejo un intento de FlappyBird que hice en Groovy y Swing, que al final no mas que Java.

https://www.youtube.com/watch?v=TdUQGWkOPfY

Saludos!!

Edit:

Amaka, DivGO esta genial, ya quisiera yo poder hacer algo asi. Necesito hacer un par de cosas y voy a usar DivGO, estaba pensando usar libgdx pero DivGO me basta y sobra y es mucho mas facil, felicidades por el proyecto ya hacia falta algo asi, facilidad de div sobre html5, muy buen trabajo.
brujoMX
 
Posts: 321
Joined: Thu Jan 12, 2012 9:10 pm

Re: Div Games Online en Html5 y Javascript

Postby CicTec » Fri Sep 04, 2015 6:13 pm

brujoMX wrote:Hola. He sido programador Java por un par de anios, y no estoy para nada de acuerdo con lo que dice CicTec. Pienso que nada es una perdida de tiempo, algo bueno puede salir de lo que uno intenta hacer, tal vez no un motor igual de rapido como el de Gemix, pero seguramente obtendra mucha experiencia atravez de los obstaculos que se le interpongan y eso ya es bastante. Java no es un lenguaje especifica para crear videos juegos, es un lenguaje de "proposito general", que significa esto ?, pues que puedes hacer con el practicamente lo que tu quieras. Si bien es cierto que necesitaras apoyarte de muchas otras librerias nativas esto no es un obstaculo para sacar algo bueno con el.

Por cierto erkos, hasta donde se, JBox2d es solo un wrapper a box2d, osea son llamadas nativas hacia C, java no lo procesa realmente, solo recibe los resultados de C.
Les dejo un intento de FlappyBird que hice en Groovy y Swing, que al final no mas que Java.

Lo de la perdida de tiempo me referia al intentar emular un sistema con un lenguaje que no esta pensado para eso y intentar obtener ademas rendimiento, y bueno, ya que indicas que JBox2D procesa llamadas nativas a C es la confirma de lo que decia, lo vee rapido porque esta hecho con un lenguaje que permite optimizacion, si hubiera sido en Java puro, no hubiera sido asi rapido, no es tambien un caso que el autor de JDIV tuvo que utilizar como ultima alternativa los thread para sacar rendimiento.
User avatar
CicTec
 
Posts: 16573
Joined: Thu Jul 31, 2008 10:18 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Sat Sep 05, 2015 1:34 pm

Ya disponible online la versión 0.76, esta es para realizar testeos antes de sacar las descargas, aquí las novedades:

funciones 3d:
- clear_texture(); color_object3d(); video_in_object3d();

variables:
- xgraph, stroke_size, stroke_round

bugs y mejoras:
- [FIX] corregido problema con signal al eliminar varios procesos de distintos tipos con all_process
- [FIX] corregida la posición de los puntos de control de los archivos map
- [ADD] palabra reservada dup para duplicar valores incluidos entre paréntesis
- [CHANGE] cambios en el compilador para que no de error declaración de variables nuevas con variables definidas de las structs
- [FIX] map_block_copy, map_xput, map_put, map_put_pixel y screen_copy, no manejaba el punto de control de la imagen
- [FIX] realizado varias correcciones en el compilador

brujoMX wrote:Amaka, DivGO esta genial, ya quisiera yo poder hacer algo asi. Necesito hacer un par de cosas y voy a usar DivGO, estaba pensando usar libgdx pero DivGO me basta y sobra y es mucho mas facil, felicidades por el proyecto ya hacia falta algo asi, facilidad de div sobre html5, muy buen trabajo.


Gracias brujoMX, me alegra saber que DivGO pueda ser útil. :)

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 » Sun Sep 06, 2015 9:05 am

hola amaka,una cuestion,cuando pongo stroke_size=10 sin la coma,el compilador no detecta tal error.
Otra cuestion,hay alguna manera de pegar las primitivas graficas a un fondo?¿?lo expreso porque si quiero utilizar cientos de lineas o puntos ,son cientos de procesos y no me sirve entonces para hacer lo que busco.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Sun Sep 06, 2015 11:23 am

OskarG wrote:hola amaka,una cuestion,cuando pongo stroke_size=10 sin la coma,el compilador no detecta tal error.
Otra cuestion,hay alguna manera de pegar las primitivas graficas a un fondo?¿?lo expreso porque si quiero utilizar cientos de lineas o puntos ,son cientos de procesos y no me sirve entonces para hacer lo que busco.


Vale miro de corregir lo del punto coma y añadir en esta versión una función para pegar las primitivas al fondo, algo así como draw_stamp(id);

A ver si lo puedo tener en un rato o para los próximos días. :P

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 3 guests

cron