Page 44 of 49

Re: Div Games Online en Html5 y Javascript

Posted: Wed Aug 26, 2015 12:43 pm
by CicTec
@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.

Re: Div Games Online en Html5 y Javascript

Posted: Wed Aug 26, 2015 1:21 pm
by OskarG
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.

Re: Div Games Online en Html5 y Javascript

Posted: Wed Aug 26, 2015 11:02 pm
by AmakaSt
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-)

Re: Div Games Online en Html5 y Javascript

Posted: Mon Aug 31, 2015 10:22 pm
by OskarG
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.

Re: Div Games Online en Html5 y Javascript

Posted: Tue Sep 01, 2015 6:55 am
by erkosone
Amaka puedo preguntarte algo?
- Como has montado el sistema de procesos? por array de objetos o por otro sistema?

Re: Div Games Online en Html5 y Javascript

Posted: Tue Sep 01, 2015 9:38 am
by AmakaSt
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.

Re: Div Games Online en Html5 y Javascript

Posted: Tue Sep 01, 2015 10:33 am
by OskarG
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.

Re: Div Games Online en Html5 y Javascript

Posted: Tue Sep 01, 2015 2:40 pm
by OskarG
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

Re: Div Games Online en Html5 y Javascript

Posted: Wed Sep 02, 2015 5:35 am
by erkosone
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:

[Codebox=java file=Untitled.java] 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);
}
} [/Codebox]

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..

Re: Div Games Online en Html5 y Javascript

Posted: Wed Sep 02, 2015 8:57 am
by AmakaSt
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.