Penguin PUSH [Pixtudio Android&Windows] Alpha

Started by alicesimu, December 09, 2016, 01:06:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alicesimu

Nada... al final los FPS bajan si o si, con o sin scroll...

no se bien que produce ese bajon de rendimiento de manera progresiva en cualquier parte del juego.

l1nk3rn3l

puedes compartir la parte de carga y descarga los recursos para mirar ..

un prototipo o algo pequeño..



alicesimu

Buenas,

Colge en Google Play la version 0.48 con algunas mejoras de aspecto de juego y mejoras.

Aun asi existe gran diferencia entre la anterior version 0.45 y la 0.48
La version 0.45 es full procesos, no existen map de las dimensiones de la zona y el numero de procesos superan los 130.

En la nueva 0.48 funciona con uso de 2 maps de durezas y otras 2 de pintado estatico de la zona, reduciendo considerablemente el numero de procesos por dejabo de los 10-30 ya que existen procesos que actuan de particulas que se auten destruyen.

Ademas no se usa el scroll, solo para pintar el mosaico de la textura de nieve en el fondo de la zona nada mas.
Todos los elementos del juego son de tipo ctype c_screen.

Se consigue un rendimiento extra es cierto... Pero creo que al programar yo misma el sistema d posicionamiento de elemenos del juego, simulando la camara de scroll...
Por culpa de ello el rendimiento bajo casi de la misma manera que el uso del scroll normal.

Creo que el impacto de rendimiento consiste en el echo de recorrer con uso de get_id(type ...) por cada elemento del juego existente... Aun asi desactivando los procesos de tipo particulas(copos de nieve y sangre), quizas se gane rendimiento ya el numero de procesos es menor a 6 + N.Enemigos.

Bugs que existen en la 0.48:
-Bloque movible por casillas(indestructible); proboca mala interaccion con cualquier pinguino al arrastrarlo, no pudiendolo arrastrar correctamente y auto muerte del mismo pinguino(desaparece dentro de el).

- Hielo des/congelador(processo activo);
Existe un problema a la hora de que si un bloque moblible se queda parado en la misma casilla que este hielo descongelador... A causa de ello, el congelador pinta en el mapa de durezas como pierda solida, machacando el color de bloque movil, a causa de ello, al descongelarse el pinta en negro(vacio) que esta libre... El bloque movil ya no es posible volver a usar fuego con el, por que no existe en el mapa de direzas si color, pero si sigue siendo visible en la zona.

Esta version el hielo descongelador NO atrapa a ningun pinguino dentro de el, siempre podemos escapar(y usar fuego), pero no pasar por encima de el si esta congelado el hielo.
La ventaja para el jugador e enemigos, es que se puede usar fuego estando dentro de el y ningun bloque movil o pinguino enemigo nos puede alcanzar dentro de el mientras este cobgelado el hielo(size_y > 50).

++(Maraton) tengo un nuevo elemento de juego añadido, se trata del TNT mortal, cuidado te puede matarte y matar a los del arrededor.
Existe un ligero cambio grafico para diferenciarlos... Hay que fijarse.

+(Maraton)tambien existe una manera de averiguar la Salida debajo de un bloque blando(azul rompible).
Existe tambien un ligero cambio grafico para saber si esta debajo.

+++Novedades++++
+Mejora del marcador.
+Tiempo de juego añadido(x zonas y mas total).
+texto de zona actual siempre presente.

Ahora podemos jugar a 2 modos de juego:
+Aventura(boton izquierdo)
+Maraton (boton derecho)

https://play.google.com/store/apps/details?id=org.alisim1.penguinpushpix

Podria seguir con el proyecto, pero la bajada de fps seguira existiendo...

Internamente esta preparado ya para cargar zonas editadas con el editor(ver.gemix).
Es compatible.

Falta añadir  boton de jugar a zonas editadas(contenido adicional)
Abria que descargarlas directamente desdel navegador web de nuestro movil:
http://penguinpush.co.nf/EDIT_ZON/index.html

Si no os deja entrar directamente en esta direccion debeis entrar por la principal:
http://penguinpush.co.nf/
Y navegar en Zonas Editadas (Experimental).

Actualmente aun no esta implementado, dentro del editor de zonas(ver.gemix)la subida de zonas.
Pero si confirmo que tengo preparado en un prg aparte el codigo de subida de zonas, con nombre de autor, contraseña y la info de la zona a subir.
Esta actualiza la pagina de descargas de zona directamente gracias a modulo URL por protocolo FTP.

La version windows esta pausado de hace una buena temporada, he estado pendiente para desarrollar y estudiar para adaptarlo a android desde pixstudio.

alicesimu

Quote from: l1nk3rn3l on January 23, 2017, 05:19:34 PM
puedes compartir la parte de carga y descarga los recursos para mirar ..

un prototipo o algo pequeño..
Si la version prototipo, solo necesito saber concretamente que recursos graficos/ elementos realmente son necesarios para hacer el test y cazar el problema.

Elementos obligatorios son:
-Carga de recursos graficos minimos
-iniciar nuevo juego en zonas en modo maraton
-pinta la zona en map, y coloca algunos procesos:
Enemigos, jugador, bloque deshielo.
-juego base se inicia, bucle basico de control
-al finalizar la partida, se elimina todos los procesos let_me_alone() y descarga los maps usados en la zona.

Se puede jugar sin enemigos? Si, no hay problema.
Se puede desactivar todos esos procesos tipo particulas sprites? Si tambien.
Se puede omitir la carga de las FNT ,solo se usan 2 en el juego.?? Si se puede.
Se puede quitar el scroll que hace de mosaico? Si ningun problema, se vera negro el fondo.
Se puede quitar el marcador? Si tambien por completo.
Se puede ocultar o la carga grafica del input stick? Si se puede. Sera invisible.

Drumpi

Si el problema lo tienes con el paso de nivel va a ser algo difícil de detectar.
Si lo que quieres ver es qué es lo que te está consumiendo tantos recursos, te recomiendo que hagas varias pruebas, y que en cada una de ellas elimines un elemento del juego. Por ejemplo, en la primera ejecución eliminas a los enemigos, en la segunda los vuelves a poner pero quitas el fondo de scroll, en la tercera lo activas y quitas los mapas del nivel... Cuando notes una mejora sustancial de la velocidad, ya sabrás qué es lo que tienes que optimizar.

Para el cambio de nivel, casi que te recomendaría el mismo método: haz que el nivel se de por superado a los 5 segundos de empezar, y desactívalo todo, hasta la carga de recursos. Luego ve probando a ir añadiendo una cosa nueva en cada ejecución a ver si se ralentiza en algún momento.
Todo esto lleva tiempo, pero es que el debug no es fácil (a menos que domines el lenguaje o te venga una inspiración divina).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

alicesimu

#50
Esa baja de fps no es normal, estando en la zona 1 del modo maraton, solo es cuestion de esperar... Podemos jugar en ella hasta no poder hacer nada mas que caminar, sin salir de la zona.

Es solo cuestion de minutos que bajen los fps, sin necesidad de superar la zona.

Adjunto la captura de pantalla que undica los minutos de la zona y los fps...

A partir de los 9minutos a unos 30fps,perdi el foco del input tactil al juego por completo, se congelo el input el juego seguia ejecutandose con normalidad. Ni los botones de back,Menu(scan_code) hacen efecto para salir del juego. Si o si debo cerrar el juego forzosamente.

Esa version 0.48 usa el frameskip 2 auto. Aun asi se nota mucho si o si esa baja de fps.

Estoy pensando en los procesos en memoria minimos que puede haber;
-juego base(controla marcador, si se supero la zona...)
-jugador(incluye el sistema input)
-2 procesos congelados para mostrar la zona(capa superior e inferior)

Ademas existe un pre procesado adicional para simular la camara de scroll.
Lo unico que hace es reposicionar todos los elementos que pertenecen al juego dentro de la zona.
0- todos los elementos usan coords originales.
1-Prioridad +1 repisiciona los procesos dependiendo de la posicion del jugador.
Frame final. Se muestra el resultado en pantalla simulando la camara de seguimiento de scroll.
2-Prioridad -1, restaura los procesos a su coords originales.
Empieza a ejecutar todos losnprocessos de prioridad normal 0:
-calculos de cordenadas reales de los procesos con nornalidad.

Creo que cuando implemente este sistema fue cuando la caida de fps note.

Aun asi debo ir descartando cosas e ir probando el rendimiento poco a poco.

Claro bajo pc no lo noto siempre va a 60, la prueba de este problema va enfocado para Android.

Quizas hoy me ponga en ello esta tarde.