Bennu Game Development

Foros en Español => Proyectos => Mensaje iniciado por: alicesimu en Diciembre 09, 2016, 05:06:26 am

Título: Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 09, 2016, 05:06:26 am
Ya va siendo hora que haga publico mi proyecto que llevo tanto tiempo si, incluso antes de usar pixtudio... etc etc...

Pido disculpas, por toda la parrafada que debo explicar, ya que tiene historia, para un juego sencillo. pero tiene mucho desarrollo...

Algunos de vosotros ya me conoceis de hace años, y algunos proyectos...

Hablare en concreto de uno muy viejo y esta en el Bennupack avanzado, llamado "PUSH".

PUSH, es un proyecto experimental para sacar el maximo partido al concepto de juego que viene del: "Pingu y No" de Div2 CD-Rom.
http://js.mikedx.co.uk/pingu.html (http://js.mikedx.co.uk/pingu.html)
Sencillamente cuando di con este minijuego de Pingu y no, sabia que habia que sacarle aprobecho al concepto y sus personajes.


Realmente hice como 3 versiones llamado: "PUSH"
Este proyecto lo trabaje en 4 codigos Div: Div2, Fenix/BennuGD , [Pixtudio y Gemix]actualmente .

1ª version: PUSH de Div2,(Version niño pequeño) por los años 2004: fue el primero en tener un editor de zonas, sencillo. contenia modo Aventura con mapas editadas en serie.
90% del motor/codigo Pingu y No.
resolucion 640x480, 8bits a 10FPS
La primera en soportar 4 jugadores(compartir teclado 3 jugadores y un Gamepad 4º jugador)

2º version: PUSH Fenix/BennuGD para Wiz (La version menos seria y loca, la adolecente) 2010-2011
http://forum.bennugd.org/index.php?topic=1127.0 (http://forum.bennugd.org/index.php?topic=1127.0)
http://bennupack.blogspot.com.es/ (http://bennupack.blogspot.com.es/)
resolucion: 320x240(Wiz)/640x480(windows), 16bits, 10FPS - 60FPS(Regulables de forma experimental)
Para Windows y GP32 Wiz
Para Windows tambien soporte multijugador a 4 pantallas divididas.
Se programó de 0, aun asi usando 80% del motor/codigo Pingu y No.
Solo contiene el modo Maraton sin fin, con mapas muy alocados de gran variedad de dificultad!!
No contiene ningun editor de zonas...
un monton de ajustes que te tirabas un buen rato revisarlas!! :o :o
El primero en usar sistema de particulas de sangre y charco
El Unico en usar Temas graficos, sonoros y musicales, para el juego. Contenia el tema basico PUSH y Torture Killer(Gore) opcional.
Modo Zoom, que se podia ajustar % de tamaño del zoom del juego, es muy experimental. :o :o :o :P
Un numero incontable de bugs en el motor, ya que el modo Maratón provocaba situaciones que el propio motor no es capaz de asimilar(no esta preparado).

3ª version: PUSH Gemix 6.5, Windows (Seguia siendo la version alocada, intentando ser mas estable) 2011
Contiene las mismas caracteristicas que la 2º version.
Pero contenia menos bugs y se elimino el codigo GP32Wiz.
usando 75% del motor/codigo Pingu y No.
Aun asi seguia igual de alocada version, aun abiendo serios bugs en el motor.
Se abandono el proyecto, por el alocado codigo,motor inestable....


4ª y última versión: Penguin PUSH Pixtudio y Gemix 7.5 [Windows y Android] (La version seria, madura 2016)
Estoy trabajando actualmente en ello, de hace como 1 año un poco mas.
http://penguinpush.co.nf/ (http://penguinpush.co.nf/)

En este proyecto, empecé a trabajar con Gemix, sobre 2015 en secreto, en 2016 empeze hacerlo mas serio.
Esta programado de 0 practicamente.
por decir que solo conservo el 1% del codigo original del Pingu y No. Solo para coger algun concepto basico como por ejemplo:
Código: [Seleccionar]
IF((X MOD 32)==0);
IF((Y MOD 32)==0);//SI TENEMOS UNA CORDENADA MULTIPLE 32
mantengo el nombre de algunas variables y nombre de proceso:
Código: [Seleccionar]
SWITCH (RAND(0,3));
  CASE 0: play_wav(s_desplaza1,0);END
  CASE 1: play_wav(s_desplaza2,0);END
  CASE 2: play_wav(s_desplaza3,0);END
  CASE 3: play_wav(s_desplaza4,0);END
END

Código: [Seleccionar]
o_bloque, o_jugador, o_enemigo, fuego, bonos.
n_arrastrados
HuboColision
y varaible de id de sonidos siguen siendo los mismos usados en PUSH.

Aun que al principio usaba la lista negra de o_bloque.
Esa lista negra SIEMPRE ha estado en todas las versiones PUSH y viene del Pingu y NO.
No me gusta la idea de esa lista limitada a x pinguinos que puede arrastrar, ademas de consumir bytes de memoria ram x bloque.

Graficamente 100% de 0 NUEVOS, graficos, fuentes, estilo, logo...
Los sonidos aun son de la vieja version de PUSH.

en el 2016, quise mas serio, mas con pies de plomo a la hora de programarlo.
La idea es llevarlo a un diseño más sobrio y moderno.
Al ser un proyecto serio, tenia que quitarme de tonterias de la serie PUSH.
Dejando claro sus modos, estilo grafico y diseño.
-1 jugador exclusivamente
-Diseño nuevo, Logo nuevo, Nuevo nombre.
-Modos de juegos: Aventura(Serie), Maraton(Infinito) y Niveles creados por el jugador/usuario.
-Reestructurar la jerarquía de menus, items, jugador...

Con Gemix pude hacerlo bastante bien, hasta un editor de Zonas hice con mucho esmero, bastante bueno.
Se considera el juego casi terminado, aun puede existir algunos bugs, Actualmente lo tengo pausado.

(https://s20.postimg.org/4yabls8vt/image.jpg) (https://postimg.org/image/4yabls8vt/) (https://s20.postimg.org/csfikx62h/image.jpg) (https://postimg.org/image/csfikx62h/) (https://s20.postimg.org/9muwupng9/image.jpg) (https://postimg.org/image/9muwupng9/) (https://s20.postimg.org/4phc9llh5/image.jpg) (https://postimg.org/image/4phc9llh5/)

(https://s20.postimg.org/65surqoe1/image.jpg) (https://postimg.org/image/65surqoe1/) (https://s20.postimg.org/uatk9g8op/image.jpg) (https://postimg.org/image/uatk9g8op/) (https://s20.postimg.org/imziewjjt/image.jpg) (https://postimg.org/image/imziewjjt/) (https://s20.postimg.org/57chpgb21/image.jpg) (https://postimg.org/image/57chpgb21/)

(https://s20.postimg.org/tp4ldcdmh/image.jpg) (https://postimg.org/image/tp4ldcdmh/)

Hablamos de Aqui en BennuGD/Pixtudio:
Este año, hace poco tiempo decidi investigar, si es posible programar para Android.
Gracias a pixtudio pude hacerlo realidad.

Gracias a la comunidad del foro, me ayudaron para resolver mis problemas, reportar algun bug, y poder trabajar en este proyecto.
No es facil pasar el codigo de Gemix a pixtudio, he tenido que recortar muchas cosas.
No es copiar y pegar de golpe, NO.
Reviso linea por linea y poco a poco añado, y lo adapto...
lo que mas complejo me resulta ha sido el Marcador del juego, aparentemente es algo muy sencillo, pero debia adaptarlo lo maximo.

Por ejemplo no puedo Tintar tipo RGBscale un texto WRITE, para el marcador... Tambien para el propio jugador cuando coje algun powerup, crea un proceso con los mismos graficos que el personaje, y lo tinta rgbscale....
Pero aqui no es posible esas cosas...
Esto es lo maximo que he podido hacer:
Código: [Seleccionar]
SWITCH(inv_col);
CASE 2: f=GSCALE_B;end//bloques
CASE 3: f=GSCALE_R;end//pinguinos
CASE 4: f=GSCALE_RB;end//bloques + pinguinos
end

from i=1 to 9;
if(fpingufx[i-1]>999);map_unload(0,fpingufx[i-1]);end
fpingufx[i-1]=map_clone(0,RAZAS[0].fpingu[i-1]);
grayscale(0,fpingufx[i-1],f);
end

id_tonto[0].graph=fpingufx[id_jug.graph_f-1];

Solo he tenido que modificar un 15% del codigo para pasarlo de un lenguaje a otro.
los recursos graficos tambien cambiar el formato, y las FNT resolver la conversion del ASCII extendido, gracias a la tool FPG Editor V4 pude solucionarlo.
Decidi usar PNG en vez de usar FPG/MAP, por la razon de compresion principalmente para Android.
El Requisito para Android; es tener FPG/MAP/FNT sin comprimir, para que funcione.
La pega de eso, que pesa al 100% los graficos, sin comprimir, eso pesa mas a la hora de instalar la aplicacion en el dispositivo.

PNG siempre esta comprimido, y puede cargarlo en android, sin problema ahorrando espacio,cuando se instala la aplicación.


Resumiendo: este es el resultado:
(https://s20.postimg.org/rlu65odtp/image.jpg)


Y me abri una cuenta(25$) desarrolladora de Google Play, para ir publicando la ALPHA Testing poco a poco:
https://play.google.com/store/apps/details?id=org.alisim1.penguinpushpix
(https://s20.postimg.org/uvd6pvrax/Captura.png) (https://postimg.org/image/uvd6pvrax/)

Version 0.45:
Quiero explicar características técnicas actuales en Android:
-Controles tactiles: stick digital de 4 direciones + Boton de fuego azul
-Vibración en botones, explosion TNT y cuando te matan. (Se puede apagar y encender la vibracion)
-Pantalla rotativa 180º automatico.
-Pesa 10MB instalada la aplicación, solamente!
-Existe archivo de configuración, se puede borrar en "Datos" de informacion de la aplicación.
-Ancho de pantalla se autoajusta depende del aspecto ratio, previene que aparezca bandas negras sin usar.
-Boton "Atras"/"Menu", salimos del juego.

Caracteristica General de juego, Tanto en Windows y Android:
-Definicion de 480p a 60FPS 32bits. 16:9 panoramica.
-3 modos de Audio: Musica+Sonidos, Solo sonidos, OFF.
-Modo Maraton en fase pruebas(aun contiene algunos bugs de pintado de zonas)
-Enemigos de IA regulable (de los que solo se mueven a 4 direcciones, hasta los que empujan bloques por si mismos)
-Marcador operativo (aun contiene algun Bug)
-Se puede superar las zonas Maraton, contra mas alto el numero de Zona mas grande y dificultad hay.
-Es posible que sea imposible superar alguna Zona(no es accesible la Salida, no se puede matar algun pinguino...), carece del boton Saltar zona...
-Sistema de particulas(implementada) temporalmente apagada, para testing de rendimiento... (copos de nieve y particulas de sangre+charco)
-Existe mas de 1 salida en la zona, puede estar oculta debajo de algun bloque blando/movil
-Casi TODOS los elementos de juego Funcionan!
-Controles keyboards: Cursores o/y WASD Mover, Espacio o/y Enter = fuego, ESC/Alt+X = Salir del juego


Caracteristicas que FALTAN: Nueva version: En desarrollo..
-Rediseñar sistema de Menus
-Boton de Pausa: opciones de: Continuar, Saltar zona, salir
-Añadir mensaje mejorado de Game Over: Reiniciar, salir
-Añadir mensaje mejorado de Zona Superada: Siguiente Zona, salir
-Terminar de probar a fondo el Marcador, libre de bugs.
-[Actualmente]OPTIMIZANDO sistema de elementos en la Zona (Convertir procesos inmoviles en pintado en MAP)[GRAN AHORRO DE PROCESOS!!]
-Rediseñar sistema de pintado de Zonas Maraton(que funcione por numero de elementos, NO por % ya que a veces se olvida de pinguinos enemigos y salida(s))
-[Listo!]Implementado adicionalmente control con joystick/gamepad usb, Tambien soporte de keyboard para Android.

-------------------------------
Aclaraciones cuando programo con pixtudio para Android.
Este proyecto va dirigido para Android, si.
pero no quita que tambien funciona bajo Windows(seguramente para Linux tambien)
Por eso tiene implementado controles keyboards/mouse dentro del codigo Android.
La idea es dejar la version Android lo mas igual que Windows(Gemix).
Por que?
Este proyecto lo diseño para Android, principalmente. si tambien empaqueto esta version de pixtudio para windows, aqui... es un clon de la version movil, solo que solo funciona por keyboard/mouse/joystick.

Me gustaria que las zonas editadas con el Editor de Mapas, de la version Windows(Gemix), sea compatible, con esta de android. Tipo Mario Maker.
Creo que es posible. aun asi es muy pronto para ello.

Si la versión Android fuese mejor, algun dia que la Windows(gemix)... probablemente deje un lado esa.

 ??? ??? ??? ??? ???
Esto me hace cuestionar... eso decision mia, que div-like usar para plataforma Windows/linux....
Comparativas y pruebas hare, para saber cuál tiene mejor resultado, en rendimiento y gráficamente...

Me sabe mal tener que mencionar otro div-like que trabajado con este proyecto(está dividido en 2 realmente: Android(pixtudio) y Windows(pixtudio o gemix)).

Pido disculpas por el lio que he explicado, aun asi me gusta la experiencia para programar con pixtudio para android.

Sois libres de cuestionar mi organización con el proyecto.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: josebita en Diciembre 09, 2016, 06:23:25 am
Bueno, ¡menuda parrafada!

¡Felicidades por tu proyecto! Tiene muy buena pinta :)

Una cosa: dices que en pixtudio no existe eso de RGBscale. ¿Eso es modulación de color? Porque si lo es, puedes hacerlo mediante las locales modr, modg y modb de modulación del color, que van de 0 a 255.

Tienes un vídeo aquí:
https://vimeo.com/155582188
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 10, 2016, 11:43:22 am
Yo no puedo criticar la parrafada por motivos obvios, pero mola ver cómo ha ido evolucionando.
Me encanta el lavado gráfico que le has dado al juego, está mucho mejor así que con los gráficos iniciales. Se nota que le has dedicado tiempo y cariño :)
Esperaremos a verlo terminado. Es uno de los juegos que tenía en mi GameGear (Pengo) y le tengo cierto cariño, y siempre he echado de menos aquella mecánica que tenía que, si empujabas la pared, esta "vibraba" y "atontaba" a los enemigos que hubiera pegados a ella (facilitaba mucho la vida, sore todo, cuando en el nivel 50 tenías que elimanr 20 enemigos :P).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 10, 2016, 12:42:00 pm
no pretendo hacer un remake de pengo precisamente.

lo del royo de pegar el golpe en las paredes exteriores para atontar a los monstruos esos...
no lo tengo en mente.

El mio es como una lucha de pinguinos , no hay monstruos raros xD
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: l1nk3rn3l en Diciembre 10, 2016, 02:09:57 pm
excelente proyecto... ;D
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: DCelso en Diciembre 10, 2016, 02:41:27 pm
No se, a mi no me atrae mucho el juego, que no quiere decir que no esté bien.

Pero ... me gusta más la filosofía de kickle cubicle.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Futu-block en Diciembre 10, 2016, 04:06:18 pm
no es por ná pero me pido diseñar un nivel...
si se puede, claro
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 10, 2016, 04:50:23 pm
Bueno, ¡menuda parrafada!

¡Felicidades por tu proyecto! Tiene muy buena pinta :)

Una cosa: dices que en pixtudio no existe eso de RGBscale. ¿Eso es modulación de color? Porque si lo es, puedes hacerlo mediante las locales modr, modg y modb de modulación del color, que van de 0 a 255.

Tienes un vídeo aquí:
https://vimeo.com/155582188
Lo probare para usarlo en el marcador que controla el efecto de powerup sobre el personaje...

no es por ná pero me pido diseñar un nivel...
si se puede, claro
Si se puede, en la pagina web del juego, esta el acceso a la versión Windows, iras a parar a la otra comunidad al hilo del juego/editor.

El editor se incluye en versión Windows.
Esta avanzada y se puede probar lo editado como si fuese un Mario maker.

Los mapas guardados, se guaran en la carpeta independiente, estas se puede guardar para jugar después y compartir con añguien.

Tengo que programar que se pueda cargar estos mapas en la versión Android, se añadiría en la carpeta de almacenamiento externo.
Gracias al acceso de almacenamiento SD(aun que considera la interna)

Se llamaría contenido personalizando para el juego.
También se podrá añadir musica ogg personalizada.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 11, 2016, 12:47:38 pm
Quieros hablaros del trabajo que estoy haciendo actualmente, me puse hace casi 2 dias...

-[Actualmente]OPTIMIZANDO sistema de elementos en la Zona (Convertir procesos inmoviles en pintado en MAP)[GRAN AHORRO DE PROCESOS!!]

Ha sido cambiar radicalmente casi todo el motor de los elementos en pantalla, tambien el funcionamiento de movimientos de los pinguinos y bloques (esos dos son los mas delicados de manejar)

En la version 0.45 usaban por procesos, todo cada uno de los elementos, aun que estubieran congelados s_freeze solo para pintar... pero claro... una zona de unos 15x15 aprox salian unos 150 processos como minimo... contando tambien con otros procesos secundarios del marcador y base(son unos 5-7)
Esto note el rendimiento en mi dispositivo movil que de 60FPS bajan a 45,30FPS.
Tuve que activar el frameskip de set_fps,  a 2.
LA version 45 usa frameskip de 2.

Pues hace 2 dias, decidi por optimizar, cambiar radicalmente el motor.
Quitandome de procesos...
Dejar lo minimo: pinguinos, bloques en movimiento(solo se mueven) y ese bloque congelador(que crece, atrapa cosas y tapa el camino).

El resultado fue:
de pasar de unos 150procesos...
a 15procesos aprox.
un ahorro de un 90%

y se nota el rendimiento.

YA uso menos el TYPE, para referirme algun tipo de proceso vivo, como los pinguinos y bloques vivos(movimiento)
evito usar collision a toda costa.
solo uso GET_DIST si fuese necesario.

casi nunca realmente, solo hago comprobaciones de ese tipo justo cuando es necesario.

meto muchos IFs para controlar cuando y como comprobar algo, aun que sea un color del mapa de durezas.

Por cierto uso 2 capas:
-durezas de altura bloque y items (los bloques pueden llevarse por encima los items)
-durezas de altura suelo - decorativas (placas de hielo, piedras, salida, punto de salida, sangre...)

Con esas 2 puedo controlar a la perfecion con quien tiene relacion cada elemento del juego.

Solo uso esas 2 MAP en memoria en tamaño pixel. si el mapa es de 15x15 es el tamaño del mapa.
DEspues hay el MAP de tamaño real a 32pixeles por cuadro, solo para pintar.

Enseño captura de pantalla, en modo DEbug y modo juego.
gracias a map_get_pixel y map_put_pixel y get_RGB puedo jugar con esos mapas.

(https://s20.postimg.org/l9bckuj95/Screenshot_20161211_150331.png) (https://postimg.org/image/l9bckuj95/) (https://s20.postimg.org/m08o4db09/Screenshot_20161211_201408.png) (https://postimg.org/image/m08o4db09/)
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 12, 2016, 12:44:54 pm
Bueno, 150 procesos no me parece algo que sea alarmante, lo digo por experiencia :D
Wiz me está moviendo algo así... quizás menos, porque tengo el código del scroll tileado muy optimizado en ese aspecto, y apenas hay ralentizaciones. Y pintando a gráfico y usando el scroll de Bennu no he ganado mucha velocidad.

Pero sí, si puedes usar los tiles estáticos dibujados en un map, y usar procesos sólo cuando se mueven, mucho mejor (y más si usas una pantalla estática o un scroll con poco desplazamiento). Muy inteligente por tu parte.
Lo que ya no sé es si usar GET_DIST es más o menos rápido que medir la distancia por coordenadas (if (abs(x - prota.x) < 10)). Según la docmentación, hay una operación raiz cuadrada involucrada, y no es una operación que se realice en un ciclo de CPU (suele llevar muchos más, pero hablamos de centésimas de segundo). Habría que crear un código para comprobarlo.

Y también podrías probar si COLLISION_BOX te da un buen rendimiento o no. ¿Tanto consume la función TYPE?
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 19, 2016, 10:02:35 am
Bueno, 150 procesos no me parece algo que sea alarmante, lo digo por experiencia :D
Wiz me está moviendo algo así... quizás menos, porque tengo el código del scroll tileado muy optimizado en ese aspecto, y apenas hay ralentizaciones. Y pintando a gráfico y usando el scroll de Bennu no he ganado mucha velocidad.

Pero sí, si puedes usar los tiles estáticos dibujados en un map, y usar procesos sólo cuando se mueven, mucho mejor (y más si usas una pantalla estática o un scroll con poco desplazamiento). Muy inteligente por tu parte.
Tenia miedo por abusar de tantos procesos, bajara los FPS y me viera obligada usar Frameskip.
Paso eso la verdad!
Y claro cada bloque movil comprobaba a cada uno de los bloques blandos y los Solidos inmoviles!!!

Cada pinguino(mas el jugador) tambien comprueba cada bloque, exsactamente igual que hace un bloque en movimiento.

Fue necesaria si o si, reemplantear el motor de bloques.
Lo que ya no sé es si usar GET_DIST es más o menos rápido que medir la distancia por coordenadas (if (abs(x - prota.x) < 10)). Según la docmentación, hay una operación raiz cuadrada involucrada, y no es una operación que se realice en un ciclo de CPU (suele llevar muchos más, pero hablamos de centésimas de segundo). Habría que crear un código para comprobarlo.

Y también podrías probar si COLLISION_BOX te da un buen rendimiento o no. ¿Tanto consume la función TYPE?
Sobre todo antiguamente, todo funcionaba por procesos, el impacto era mucho mayor.(como comente anterior mente, por uso de TYPE).

Actualmente: Procesos activos(vivos) cuando se mueven.
-Pinguinos enemigos, 1)comprueban mapa de colores, para durezas, bloques solidos y placa de hielo...
2) Solo tiene un if(id_jugador); que si el numero de identificado es 0, ya dejara de comprobar si el jugador se puede comprobar... para ver si estamos cerca GET_DIST(id_jugador)

-Pinguinos jugador, 1)comprueban mapa de colores, para durezas de bloques solidos, placa de hielo y items del suelo...etc

-Fuego azul, este lo crea los pinguinos... 1) comprueban el mapa de colores, si hay bloques blandos movibles que mover, Crea el proceso bloque movil activo, en la orientacion y tipo que es.
2) comprobacion: comprueba si existen bloques moviles (procesos uso type), si existieran, comprueba si esta cerca GET_DIST, de ser cierto, cambia la orientacion de movimiento de dicho bloque(efecto tenis).
Fase Beta Nº2.

-Bloques blandos moviles(SOLO moviles).
1)comprueban mapa de colores, para durezas de bloques solidos y items del suelo(se los carga esos items).
2)Comprueba si existen otros bloques moviles activos, si estan cerca, depende de la orientacion de ambos... se reposicionara o no...
Fase Alpha -> Beta(investigacion) Nº2
3)Comprueba si ha dado con algun pinguno enemigo(proceso type) o id_jugador(id) cerca de el, pero solo en la orientacion concreta, lo cazara, lo marca para ser arrastrado.(y futuramente muertos...).
Fase Beta de esta comprobacion Nº3.


-El resto de elementos visible; solo es pintado en un par de MAPs, 2 unicos proceso congelado s_freeze, solo para pintar en scroll la zona. Un Segundo MAP es para elementos del Suelo.
2 capas:
-Capa superior alto: Bloques (equivalente a la aultura de los pinguinos casi)
-Capa inferior suelo: placas de hielo, salida, items, piedras y efectos de particulas pinatadas(Sangre)

y 2 mini MAPs de durezas de colores RGB.(32bits)
-Capa superior: Son durezas, por bloques.
-Capa inferior: son para determinar que tipo de suelo pisa y el item conseguido.

-------------------------------

Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 19, 2016, 04:27:33 pm
Pero si todos esos tiles móviles los metes en un array bidimensional, puedes saber su posición exacta y no necesitas usar get_dist, ni collision ni nada por el estilo. Además podrías usarlo de mapa de durezas, o si en lugar de guardar el ID en un int metes un type que definas tu, puedes almacenar el ID, un valor de dureza, e información extra que necesites. Y es posible que consultar ese array bidimensional sea hasta más rápido que MAP_GET_PIXEL :P

Pero vamos, eso es si andas corta de potencia. Si ya te funciona con el nuevo motor, sigue con él (a no ser que te aburras mucho y quieras ponerte a investigar y explorar :D ). Optimizar puede ser complicadísimo y requerir muchísimas pruebas que pueden no llevarte a nada ^^U

PD: obviamente, este esquema no te sirve para los bloques en movimiento, pero reduces el número de comprobaciones y cálculos, pues difícilmente tendrás más de dos o tres bloques en movimiento por jugador simultaneamente, en contraste de los posibles 150 que tenías antes :)
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 20, 2016, 03:38:26 am
S pensé hacer esa tabla bidimensional durezas[][]
Y elegir el tipi de dato que necesitaría byte,word,int...

Pesa mas en memoria un map de 32bits rgba, que esa tabla bidimensional, claro

Solo que hay elementos del juego que tiene un atributo, una variable que almacena para saber el tipo de bloque, o el numero de casillas del bloque movilbe solido, o algún ítem en concreto.

No solo almacenar solo un numero de elemento que es menos del numero 255 con tipo byte tengo suficiente si.
Pero me falta la variable atributo del elemento.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 20, 2016, 06:35:44 am
Pero si todos esos tiles móviles los metes en un array bidimensional, puedes saber su posición exacta y no necesitas usar get_dist, ni collision ni nada por el estilo. Además podrías usarlo de mapa de durezas, o si en lugar de guardar el ID en un int metes un type que definas tu, puedes almacenar el ID, un valor de dureza, e información extra que necesites. Y es posible que consultar ese array bidimensional sea hasta más rápido que MAP_GET_PIXEL :P
Aah vale para procesos móviles!!
Pensaba que hablas de los que no se mueven.

En procesos móviles tenemos estos elementos
-bloques móviles(duros o blandos)
-pingüinos enemigo
-pingüino jugador

Los pingüinos se atraviesan entre si, no cambian de orientación si chocan con un compañero.
Cada raza de enemigo tiene una velocidad diferente:
2px x frame
2.1
2.2

Por ahora hay 3.
Me puede suponer un problema si deseo que los pingüinos se choquen entre si,no pudiendo dejar paso a cualquier pingüino. Es muy delicado controlar eso.
Aun así si todo se basa en una grilla de juego, y se sabe que todos los elementos están en x casilla,
Podría dejar de usar esos diminutos maps 32bits rgba, para solo usar arrays(me gusta llamarlos tablas) se ganaría mucho mas rendimiento y ahorro de memoria.

Sobre lo que se mueve si se podría controlar las posición es de cada proceso, por el array bidimensional, para saber en que casilla esta realmente, pero desconoce los píxeles reales de desplazamiento... Pero creo que no importa eso ultimo.

Para lla bloques que se mueven debe comprobar si hay otro bloque cerca concretamente en menos de 32pix, se considera colisión y se reposicióna o incluso cambia de orientación depente del atributo del bloque.
Siguiendo hablando del bloque en movimiento, creo que seria muy factible comprobarlo por array bidimensional, me ahorraría dolores de cabeza para programar la lógica de posiciones y orientación de ambos bloques que se han chocado y reposicionarlos correctamente.

También para cuando el bloque pilla un pingüino, tambien puede usarlo...
Y si un pingüino se topa con un bloque que se mueve en horizontal, pero el pingüino esta subiendo, se considera un muro solido y topa con un bloque que estaba pasando por delante del pinguino., como de un autobús fuera.

El pingüino enemigo mataría al jugador, si se encuentra en la misma casilla, así de sencillo.

Estos días me planeare de re-mejorar el sistema, dejando de lado esos 2maps de durezas. Y programarlo por array bidimensional.
Y poco a poco implementarlo por array el control de colisiones entre bloques y pingüinos. Y evitar usar type, mal_get_pixel get_rgb mal_put_pixel.

Es bastante interesante tu teoría, investigare.

Por cierto no se usar los datos de tipo TYPEque declaras arriba con global,local...etc
Tampoco se usar las PUBLICS parece una fusión de local y private.
Me cuesta entender su funcionamiento y beneficios.

Aun estoy a la antigua con uso de structs, local. De forma tradicional div2.

Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 20, 2016, 05:23:51 pm
Bueno, y me refería más a meter los tiles (móviles o no) en un array bidimensional. Bueno, yo te dejo la idea y luego tu la valoras :D

Si quieres crear un tipo definido por tí, tienes que usar TYPE de la misma manera que usas STRUCT con dos diferencias: no puedes crear un array con el tipo directamente (es decir, puedes hacer STRUCT mi_struct[3], pero no hacer TYPE mi_type[3]), y debe declararse antes de cualquier tipo de variable, fuera de las zonas de declaración de variable.
Te pongo un ejemplo:

Código: [Seleccionar]
PROGRAM test_type:

type mi_tipo    //declaración de tipo
    int id_proceso;
    byte atributo;
    byte dureza;
end

GLOBAL
    mi_tipo array_de_tipos[3][4];    //Creo un array bidimensional usando mi_tipo
END

LOCAL
END

PRIVATE
END

process proceso_tile()
begin
    signal(id, s_freeze); frame;
end

BEGIN
    //Guardando un valor en una variable
    mi_array[2][1].id_proceso = proceso_tile();
    mi_array[2][1].atributo = 3;
    mi_array[2][1].dureza = 1;
END

Así, tu tipo puede contener tantos datos como quieras, de cualquier tamaño, incluso puedes definir arrays dentro del tipo. Antiguamente se usaban arrays de INTs o de BYTEs y se usaban máscaras de bits para almacenar, por ejemplo, el número de tile en los tres primeros bits, la dureza en los dos siguientes, y los atributos en los restantes. Aquí puedes definir tu tipo como 4 bytes y guardar una cosa diferente en cada una sin marearte con números binarios ;)

Las variables públicas son básicamente variables privadas que se pueden leer desde cualquier proceso, pero no las uso porque entonces, el ID del proceso, en lugar de guardarlo en una variable de tipo INT, debe guardarse en una variable cuyo tipo es el nombre del propio proceso que quiere almacenar. Es por un problema interno de Fenix a la hora de direccionar la memoria al espacio de las variables públicas.[/code]
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 21, 2016, 02:55:34 am
Genial!!
gracias por el ejemplo y la explicación, se parece una struct, pero algo diferente no se.

la unica pega de usar el array bidimensional es que debo establecer un limite(una constante) de dimensiones x casilla de la zona.

99x99 o 999x999  por ejemplo...

lo malo que contra mas grande sea, mas bytes de memoria ram consume... es un sencillo calculo, ademas con sizeof te dice el total de elementos que contiene.

aun asi, me lo mirare cual es la mejor estrategia
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 21, 2016, 09:32:36 am
Lo del tamaño fijo también tiene fácil solución: usa CALLOC para crear un array dinámico de memoria, con tantas posiciones como casillas haya en el juego.
Luego, para saber qué posición leer sólo tienes que buscar en:
mi_array_ptr[(posy * CTE_N_COLUMNAS) + posx]

Donde:
· posx y posy son las coordenadas de la posición que buscas, desde 0 a CTE_N_FILAS-1 o CTE_N_COLUMNAS-1.
· CTE_N_COLUMNAS es el número de elementos que hay en una fila. Puedes usar una constante o una variable.

Y lo dicho, haz tus cálculos. Hay un mapa de uno de mis juegos que mide 893x22 tiles (una WORD por cada posición) y me cabe en GP2X. Creo que tu mapa cabe de sobra en una Raspberry Pi Zero :D
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 21, 2016, 11:08:34 am
estoy documentandome: http://wiki.bennugd.org/index.php?title=Calloc

es que me hago un lio, me es nuevo para mi, esto de usar TYPE, Calloc....
disculpa si soy lenta.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 23, 2016, 08:28:16 am
No hay nada que disculpar, estás aprendiendo, igual que lo hacemos todos. Unas cosas se aprenden antes y otras después :)
Ten en cuenta que aquí te damos consejos en función de los problemas que propongas, igual que algunos te los pediremos luego de lo que estás investigando por tu cuenta (es decir, que ya me cobraré los favores preguntándote por Android, PixTudio y todas esas librerías que estás usando :D :D :D).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 26, 2016, 11:50:02 am
Aun ando haciendo test de prueba,
Con la versión por map_get_pixel get_RGB.

Aun no lo deseo publicar en google play, pero si puedo subir el Apk por separado solo con fines de test de rendimiento, aun esta versión contiene algunos bugs de lógica con la nueva implantación del modo mal_get_pixel...
Una pequeña corrección de la tipografía de texto medio(aun por ajustar la altura y).

En este apk deseo enfocarme en Rendimiento en fps, sin uso de frameskip.
Puede que me vuelva loca, pero los fps parecen una montaña rusa de ir al principio a 60, y a los pocos segundos a 60-50
Al minuto 55_45
A los 5min a 50-35
A mas de 7mim 45-25.

Aun no entiendo este comportamiento, calculo que hay aproximadamente 5-7 procesos activos(proceso juego base, proceso de input, pingüinos, marcador) y 5-7congelado s_freeze

Deseo que los que tengáis físicamente un dispositivo android, smartphone y/o tablet.
Me pongáis el modelo y la ver de android s.o.
Y claro los fps, probarlo durante unos minutos, como si jugáis o dejarlo sin tocar(dejar que corra el juego)

(https://s20.postimg.org/abmn3j94p/Screenshot_20161226_201948.png) (https://postimg.org/image/abmn3j94p/)

Yo ya digo, yo en 5min a llegado a los 45-30aprx.

Quien vota por insertar frameskip a 1-2.(sin modificar la velocidad original de 60 y sus elementos)
Quien vota por dividir por 2 la velocidad de fps. Pasar de 60 a 30, eso es multiplicar la velocidad de los pingüinos,bloques por 2.

Tengo sospechas que se trate de un comportamiento "normal" en android... Por temas de servicios en segundo plano(wapsap, google servicios,...etc)

El Apk es la versión 0.46 no publicada en google play.
Podéis descargarla e instalarla.
Este Apk se salta el menú principal(ni carga esos recursos)va directo al modo maratón.
Contiene sistema de particulas activado(copos de nieve al caminar los pingüinos y sistema de sangre).

https://www.dropbox.com/s/iuj70y8t41glrhp/base.apk?dl=1
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 27, 2016, 05:54:02 am
Haces bien en intentar mejorar el rendimiento sin frameskip ¡así es como debería hacerlo todo el mundo! El FS es el último recurso. Podrías intentar bajar los FPS, pero tampoco lo recomiendo, mientras puedas mejorar el rendimiento.
La caida progresiva de frames, en casos normales, suele deberse a la acumulación de procesos que no se han muerto. ¿Has abierto el debuger en PC para comprobarlo? A veces pensamos que tenemos 5 procesos pero no hemos visto que alguno no se ha muerto cuando debiera.
Si no, es cosa de memoria, que se van acumulando datos sin liberarlos y al final... La única forma que se me ocurre de mirarlo es con:
http://wiki.bennugd.org/index.php?title=Memory_free
Pero no sabrás quién se está quedando con la memoria.

Yo intentaré mirártelo en una tablet que he conseguido para estos menesteres. Es antigua, una dual core con Android 4.1, creo, que tiene problemas con el chip de video y hace cosas raras en la pantalla. Lo que no sé es cuando, porque hace dos semanas que tendría que haber emepezado mi web-blog y aun no tengo abierta ni la cuenta de hosting ^^U
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 27, 2016, 07:57:00 am
si la que esta subida en google play 0.45 usa frameskip 2.
Puro por procesos esa funciona. sobre 115 - 170...

Pues las pruebas que hago ahora, son mas optimizadas,
uso dentro del bucle del juego_base, este contador de procesos(sin importar que esten congelados,dormidos...)

while(GET_ID(0));procesos++;end
Con esto controlo el numero de procesos en memoria.

A esto me puse a unificar y eliminar procesos...
unifique algún proceso en segundo plano, aunque sea de pintado...
por ejemplo, el marcador usaba 3 procesos 1 activo 2 congelados...
ahora el marcador, esta dentro del proceso juego_base, ahorrandome 3 procesos mas.
y el graph que muestra juego_base es parte del marcador, generado con new_map al principio.

Tambien tenia un proceso en segundo plano, que controla el input del jugador(teclado o/y touch android), este pintaba 3 elementos en pantalla para el input de android: stick direccional, elector rojo de dirección + boton fuego de la derecha.

Ahora esta unificado al proceso jugador pinguino directamente. otro proceso ahorrado.
El jugador tiene presente el boton de fuego azul que rota que es un proceso congelado tonto.(esta se puede desactivar en el futuro menu de opciones)

Actualmente....
solo hay en memoria de 6 procesos minimos,
y maximos puede ser ... dependiendo del numero de enemigos, placa hielo descongelante si hay, y bloques en movimiento)(hasta chocar) y otros procesos de efectos especiales que duran muy pocos segundos o menos de un segundo(sistema de particulas, fuegos, explosiones...).

cuenta: (Numero de procesos, minimos - maximos) - elemento descripcion.
(1-x)-pinguinos (cuenta tambien el jugador por supuesto)
(1)-juego base(controla el marcador, y logro superar o no la zona, control de animacion de powerup)
(2)-proceso congelados solo para pintar dentro del scroll (2 capas del map del tileado de bloques e items inmoviles)
(0-X)-placa de hielo, que se congela y descongela por tiempo(tiene un contador y aplica size_y + alpha)

Siempre que finaliza la zona:(por victoria o gameover...)
Paro el scroll stop_scroll, esto mata cualquier proceso metido dentro de el.
elimino cualquier proceso con let_me_alone(); un clasico de div
elimino todos los textos write
descargo en memoria los MAP generados de la Zona(son 4 en total: 2 de pintado de title, y 2 de durezas)

reseteo variables globales para la nueva zona.

Y ejecuto el juego_base(son) y se autoelimina el viejo padre(father).
prefiero cargarme el proceso que estaba usando como base y crear uno nuevo de 0, me quedo mas tranquila(la razon por las variables privadas y locales, no tengo ganas de resetearlas una a una)

Esto me pasa tambien, cuando el jugador muere por algun enemigo o bloque que nos aplasta.
prefiero que el jugador se autodestruya(return;), ajustando alguna variable global(vidas,poweup..) y crear un nuevo proceso jugador.


Despues de eliminar todo en memoria y estar con el nuevo proceso juego_base
solo crea en memoria los 4 MAPS de durezas y tiles
a esto... prepara la zona,y coloca solo los procesos activos:pinguinos, placa hielo descongelador.
añade 2 procesos congelados de pintado para el scroll.
pinta los textos write.
y ya se inicia el juego.

por ahora aun no declaró nuevas variables y espacios de memoria uso de calloc, type....
solo creo los procesos minimos y se eliminan.

no lo veo normal que al cabo de los 5min este por 30FPS aprx.

probare de consultar la memoria con memory_free gracias por la idea, eso me ayudara.

Si este caso no se soluciona, me vere forzada activar el frameskip y aun asi... podras jugar unos 10-15min mas de forma semi rapida... pero si o si creo que los FPS va abajo... al colapso.
considero que ya es problema del motor de pixstudio en android, algun bug de memoria podria tener algo...
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 27, 2016, 07:11:53 pm
Puede ser, pero no creas que por reducir el número de procesos vas a mejorar el rendimiento. No he hecho un estudio, supongo que tu sí, pero creo que el cambio de contexto de un proceso a otro podría ser menos costoso que las comprobaciones que añades a un proceso para unir su código al de otro. Recalco lo de PODRÍA.
Lo que ya no sé es cuánto usas el comando PUT o los DRAW. Aunque no lo parezca, estas funciones son muy costosas... al menos en Fenix y Bennu. No me hagas mucho caso, pero creo que un simple map_get_pixel equivalía a unas 7 sumas (tendría que hacer una comparativa para confirmarlo).

Y si, es posible que haya una fuga de memoria en el port de Pixtudio a Android, pero como he dicho en más de una ocasión: el 95% de los fallos del programa los comete el usuario, no el programa en sí. :D
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 28, 2016, 05:33:27 am
Son mínimas las comprobaciones sencillas y intento usar menos las funciones del lenguaje.

Mal_get_pixel y get_RGB es lo que mas se usa en tiempo real, Solo cuando se mueven en el mapa. Pingüinos y bloques en movimiento.

Pues no uso DRAW,ni PUT. No hago operaciones de pintado en pantalla, solo pinto dentro de mapa, pero poco.

A todo esto no conozco otro juego hecho con pixtudio para android y se haga un test, en 5min a cuantos fps tira...

Sabes algo?

Aun asi voy trabajando en otros aspectos para avanzar y no quedarme atrás.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: l1nk3rn3l en Diciembre 28, 2016, 08:13:33 am
Hay una prueba de rendimiento
llamada en ejemplos 02_advance/benchmark

haber como va en android...
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 28, 2016, 02:13:08 pm
El benckmark al ser 1600 procesos activos, es evidente que va lento en mi son y xpiera sp con android 7.1. CM14.1
A 13-11FPS

Mi caso no son por procesos, uso una media de 12 procesos que la mitad están congelados.
5 son básicos, mínimos.

Zonas de tamaño medio de 37x25 aprox no es un problema.
Tampoco el numero de pingüinos en el mapa que pueden llegar a 16-20... No mas.
Zonas con un solo enemigo hasta docenas ...

Testeando los fps es una montaña rusa. De pocas veces llega a los 60 y tiene picos hasta de 30.
Pero la media es de 50
Ese comportamiento cuando estamos en la misma zona, se mantiene un rango de fps...

El problema serio viene al pasar a otra zona, esta la libera de la memoria, matando a todos los procesos y descargar los maps.
Se nota una bajada de unos 3-5fps, cada vez que superamos o no la zona.
El rango de fps baja de 60-30 a 45-28, 37-26, 32-25...
Así sucesivamente al cambiar de zona, sin importar las dimensiones de la zona y el numero de procesos.

Tengo 2 soluciones:
Usar frameskip a 1-2.
O
Dividir por 2 la velocidad de juego, y multiplicar por 2 los movimientos de pingüinos y bloques en movimiento y los sprites.

Por lo que veo tira a que funcionara de forma constante a 30Fps aprx.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 28, 2016, 02:29:50 pm
Puede que exista un problema de eliminación de recursos en memoria/CPU en pixstudio.
Si los fps bajan cada vez que elimino y creo una zona nueva...
-stop_scroll(0)
-let_me_alone()
-delete_texto(0);
-map_unload (descargo los 4 mapa que se han usado para la zona).

Después se crea la nueva zona:
-Start_scroll
-Pinta_zona(crea los 4 mapa, y pinta en ella, también crea procesos: pingüinos)
-pinta los write de texto.
Y empieza el bucle del juego.

En algún proceso, debe provocar esa bajada de fps, baja el rango de fps por cada zona eliminada/cargada


No entiendo donde esta el fallo.
Haré un benckmark concretamente con esto, solo la creación y destrucciónde zonas.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 29, 2016, 04:55:25 am
Map_get_pixel pertenece a la familia de las funciones PUT. Todas las operaciones con los pixels de los mapas, tanto de lectura como de escritura, usan un código parecido y, teóricamente, son lentas (lentas en comparación con la lectura de un valor de memoria, por ejemplo, tampoco es que vaya a tardar 5 años en hacer la comprobación ^^U).

Pero veo que estás hilando muy fino. No creo que sea problema de número de procesos, porque si 1600 te van a unos 12 FPS, es raro que sólo 16 te consuman tanto. Ya te diría que comprobases dump_type y restore-type, a ver si es que estás usando valores incorrectos para tu juego, que es donde más rendimiento se te puede ir, pero aparte de eso, y sin ver el código, sólo te puedo decir cosas como que acceder a variables públicas es más lento que acceder a locales, y a su vez las locales son más lentas que las privadas (sin demostrar).

Si estás completamente segura de que entre nivel y nivel lo has descargado todo y has liberado la memoria, ya sólo puede significar que haya un bug en el port de Pixtudio, es lo único que se me ocurre. Eso, siempre que realmente se hayan descargado las cosas, es posible que le estés pasando un ID de imágenes no válido sin darte cuenta, porque se haya modificado por cualquier cosa (asegúrate con un SAY, por si acaso).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 29, 2016, 05:51:45 am
Ahora me haces pensar en esas variables locales, no uso publicas.
Pero si debería mirara al detalle sobre el uso de variables locales creo que me sobra alguno.

No he tocado las restore y dump esos modos de restauración de pantalla, se que existe. Las tengo por default.

Me asegurare usando say que se descarga todo todob y elimina los procesos.

Seguro que me planteare de dejar usar el sistema mal_get_pixel map_put_pixel y get_RGB
Y pasarme al uso de arrays. Como hablemos anteriormente si o si debe ser mas rápido.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 29, 2016, 08:29:37 am
Tengo algunas pruebas...

Código: [Seleccionar]
PixTudio Blender 1.0.0 (Dec 15 2016 16:09:14)
Pixtudio comes with ABSOLUTELY NO WARRANTY
See COPYING for copyright details


File D:\MEGA\PP\Penguin-PUSH_PXT\Penguin-PUSH.dcb compiled (172639 bytes):

  Processes                    24
  Global data                2828 bytes
  Local data                  236 bytes
  Private data               1088 bytes
  Public data                   0 bytes
  Code                      65348 bytes
  System processes            328
  Globals vars                112
  Locals vars                  34
  Private vars                247
  Publics vars                  0
  Identifiers                1030
  Structs                      10
  Strings                     137 (1754 bytes)

************** START ZONE MODE: 0 ********************
AV_ZON/Alice Simulator1-1.zon
15x13
70
Alice Simulator1-1
1057
1058
1059
1060
PINTA AUTOMURO
INICIO PINTA ZONA
FIN PINTA ZONA
PLAY ZONE:1
AV_ZON/Alice Simulator1-1.zon
15x13
70
Alice Simulator1-1
INICIO PINTA ZONA
FIN PINTA ZONA
FINALIZADO EN:00:21
TOTAL TIEMPO:00:21
PROCES:1
1057
1058
1059
1060
************** START ZONE MODE: 0 ********************
AV_ZON/Alice Simulator1-2.zon
18x12
68
Alice Simulator1-2
1061
1062
1063
1064
PINTA AUTOMURO
INICIO PINTA ZONA
FIN PINTA ZONA
PLAY ZONE:2

analizando, al crear la nueva zona:
crea los 4 maps:
1057
1058
1059
1060

juego funciona al llegar: PLAY ZONE:1

al matar a todos los pinguinos, necesita colocar la salida del mapa, accede de nuevo al archivo de la zona:
AV_ZON/Alice Simulator1-1.zon
solo para colocarla, no crea ningun map, solo la salida.

despues el juego finaliza al llegar a la meta:
FINALIZADO EN:00:21
TOTAL TIEMPO:00:21

despues elimina la zona de la memoria:
let_me_alone();
compruebo los procesos existentes:
PROCES:1  Solo existe 1 proceso en memoria, el juego_base
1057  Descarga los map_unload(0,mapa1);
1058  ..
1059  ..
1060  ..

y nos ponemos a cargar otra zona: Alice Simulator1-2.zon
Código: [Seleccionar]
************** START ZONE MODE: 0 ********************
AV_ZON/Alice Simulator1-2.zon
18x12 dimensiones en casillas de la zona
68 numero de elementos que contiene
Alice Simulator1-2
1061
1062
1063
1064
PINTA AUTOMURO
INICIO PINTA ZONA
FIN PINTA ZONA
PLAY ZONE:2
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: l1nk3rn3l en Diciembre 29, 2016, 08:42:55 am
tengo un movil con procesador Mediatek a 1.3GHz de cuatro núcleos

y si de 50 fps cae a 30 fps ....   hay algo mal en el codigo ...

mira ver .. de pronto vuelves a llamar a set_fps en otro lugar...

o intenta colocar set_fps(60,0) antes de cada cambio de nivel...

o aun mas .. un set_fps y luego un set_mode


la verdad es raro he hecho varias pruebas y en mi movil corren otros ejemplos
muy rapido.. pero el tuyo siempre cae a 30fps... el de benchmark siempre es 60fps hacia arriba

la verdad ni idea...

post data: puedes compartir el codigo del control del joystick en android
para adicionarlo en el proximo pack como un ejemplo nuevo , claro los créditos serán incluidos? 
 teclas de direccion mas el boton fire .. 



Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 29, 2016, 10:42:02 am
Si desean ayudarme con la programación del proyecto, les estaria muy agradecida.
Reconozco que puede ser un poco caótico el programa, pero intento ordenar todas las cosas.
Ademas dentro del codigo contiene una clave de seguridad, para que no puedan añadir mapas de modo Aventura(AV_ZON), editadas por cualquier usuario. Para eso esta la carpeta probia de EDIT_ZON.
Ademas el porpio formato de los ficheros de las zonas.

Si estáis interesados en ayudarme, os añadiré como colaboradores del proyecto, os tendré en una lista del Team de confianza.

A Drumpi me esta ayudando mucho, si tienes tiempo libre te apetece analizar mi proyecto de las entrañas, te lo agradeceria.
y Linkernel por el soporte concreto a Android que da gracias a pixstudio, pude hacer este proyetco.
Tambien me ayudas mucho!

Me gusta testear la capacidad de ello.

Tengo una carpeta de trabajo en la nube, en mega. siempre dispongo de una copia de seguridad, por si deseo trabajar en otro equipo.

Os enviaria el Link de la descarga del paquete por privado, contiene el juego completo(compatible con windows)(sin menus) y la carpeta preparada para empaquetar a android apk.

--------------------------------------------------------------
Te adjunto el codigo + grafico del stick digital de 4 direciones  + boton juego.
de fondo aparece un pescadito se tiene control de el con el imput.

Este codigo soporta de 2 dedos maximos.
Tiene un sistema que evita de forma acidental pulsar el segundo dedo, cuando el primer dedo ya tiene el stick digital abierto.

la parte izquierda es para el stick digital, la derecha mitad inferior la del boton de fuego.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 29, 2016, 11:36:46 am
Pues mira, dos cosas:

- He probado el juego (por fin), la apk que subistes, en una tablet Intenso TAB 814 (doble núcleo a 1.5GHz, con 1GB de RAM y Android 4.1) y la he tenido abierta durante más de 20 minutos funcionando (o sea, me he pasado dos niveles y en el tercero lo he dejado quieto tras matar a todos los enemigos) y no ha bajado de 60FPS (ocasionalmente ha pasado a 59 o 61 FPS, pero nada, apenas un segundo)... hasta que accidentalmente le he dado a atrás y se ha salido ^^U
 Luego he intentado pasarme tantos niveles como he podido. Soy un negado con los controles táctiles (^^U), y que la cruceta cambie de posición, personalmente, no me ayuda. Aparte de que no me dejaba moverme y atacar a la vez, sólo me reconocía un dedo cada vez (o eso me ha parecido ^^U). Tras cinco o seis niveles, los FPS se han mantenido estables a 60. Los únicos bajones de velocidad se han dado al construir el nivel y justo en el momento de la colisión con la puerta.

- Lo segundo. Puedo echarle un vistazo al código, si no es muy grande y está medianamente comentado :P No te prometo nada, porque no tengo el entorno para hacer pruebas y no sé lo que podría tardar, ya que llevo unos días de locos :D :D :D O con que me señales dónde están la carga y descargas de recursos, lo puedo mirar ;)
Ya lo de los créditos como tu quieras. Yo suelo añadir a los creadores de los DIV-like como "programación adicional" y doy las gracias a la comunidad en general por su ayuda... pero como nunca nadie se pasa el juego (o al menos no se leen los créditos... :D :D :D).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 29, 2016, 12:12:36 pm
Aaahh que bien, genial tus pruebas.

Quizás sea dependiendo del S.O. android. Es lo único diferente que podría tener en rendimiento.
El mio es un doble núcleo de 1,7Ghz de 1Ram, pantalla de 720p y el android 7.1 custom ROM de cyanogenmod 14.1

Y si te confirmo que se puede pulsar 2 dedos a la vez, ir a una dirección y pulsar fuego a la vez.
Colge el ejemplo del stick digital anteriormente, para quien quiera.

Si se necesita preparar la mesa de trabajo para compilar y pasar el juego a apk android.
Es entretenido.
Si el código es largo, muchas variables de control, algunas temporales para rápidas operaciones.
Globales hay unas cuantas, locales solo 3.

Yo te puedo indicar las lineas o nombre de un proceso y de variables.

El juego contiene:
Proceso juego_base es el mas importante, llama a la función de pintado de zona(por archivo o aleatorio)
Proceso jugador es único
Proceso enemigos pingüinos

Yo en mi juego además de añadir un leeme.txt con toda información del juego y el team.
Y añadir un botón de información, para visitar la web, facebook, este hilo, y ver el team.

El menú principal aun no lo tengo terminado, esta en pañales.
Ahora deseo enfocarme en el motor base del juego, el por que esa bajada de fps...
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: l1nk3rn3l en Diciembre 29, 2016, 12:44:12 pm
Gracias ... seria genial ayudar..

y lo del gamepad virtual esta interesante... lo habia visto en construct2 y unity ... pero ya que te lo
has currado esta muy bueno... para compartirlo.. y mejorarlo... se daran creditos gracias Alicia
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: DCelso en Diciembre 29, 2016, 01:23:20 pm
pero si viene en el pixtudiopm, pff, verás pixel cuando se entere ...
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Diciembre 30, 2016, 05:30:27 am
¿¿¿Android 7.1??? Si creía que el último era el 5.1 ^^U
Supongo que la numeración de los custom kernels es diferente a la oficial :D

Tengo el entorno de Android, pero el oficial, de cuando empecé a estudiarlo (y lo dejé tras la primera lección, dichoso lenguaje de etiquetas :P). Supongo que añadir el resto para que funcione Pixtudio no será difícil. Lo difícil será seleccionar lo que necesito del Pixtudio Pack ^^U
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 30, 2016, 08:04:59 am
Bueno, es la ultima que hacian los del cyanogenmod 14.1 pero esta empresa cierran y se mudan a una nueva con otro nombre.

Android 7 esta verde...
Prefiero la version 6, es estable, CM13

Grave un video gameplay(sin audio) de una partida en modo aventura
https://youtu.be/I8EruOcTB-s
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 30, 2016, 08:57:55 am
He subido tambien el ultimo APK con la maxima optimizacion, pero activando el sistema de particulas, sonidos, musica, y visible los controles tactiles.

Es el mismo del video que he subido el gameplay.

Aqui esta el APK.
https://mega.nz/#!RQs2xD4A!KmMTSaMag2yNgOnuCgdsAL8TuMA7geBP30WyfKJPJag
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 31, 2016, 04:38:24 am
Use una app para monitorizar la cpu
Y no llega al 100% como mucho al 50% en algunas ocasiones.

Es multinucleo los juegos que hacemos con pixstudio? Parece que solo use un core...
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Diciembre 31, 2016, 09:16:14 am
Descubri que tiene un fuerte impacto de rendimiento al usar SCROLL.

Desactive el scroll por completo, ahora todo se pinta en pantalla normal c_screen.
A esto, me quede sin fondo tileado texturizado, claro se ve toda negra. y sin seguimiento de camara(por que no existe)

pero el rendimiento es de 60-58FPS!!! en todas las ZONAS! pero en un 75% esa en 60,  25% esta en 58FPS.

Es constante al 100% todo el rato que quiera!

los procesos, van minimos de 6 hasta 40aprx(activado las particulas de copos de nieve, sangre)...
esas particulas se autodestrullen al terminar de su animacion.

Ahora me falta programar un fondo de terreno tileado, la textura... como la repito en el fondo de pantalla?
y como programo el movimiento de camara como si fuese un scroll?

ahora no tengo camara automatica, ni fondo tileado.
(https://s20.postimg.org/a9cerk16h/Screenshot_20161231_180920.png) (https://postimg.org/image/a9cerk16h/)
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: SplinterGU en Diciembre 31, 2016, 11:24:22 am
Use una app para monitorizar la cpu
Y no llega al 100% como mucho al 50% en algunas ocasiones.

Es multinucleo los juegos que hacemos con pixstudio? Parece que solo use un core...

tengo entendido que 1 solo core.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Enero 02, 2017, 05:06:37 am
Hasta donde sé, si Pixtudio hace uso de código Bennu, sólo se usa un núcleo. Creo que las optimizaciones van por el lado de la aceleración gráfica, es decir, el pintado por pantalla y manejo de gráficos.

El scroll... No es particularmente rápido, pero ¿Tanto como para que te de los problemas que te está dando? Sé que tanto en Fenix 0.84 como en los inicios de Bennu, se le dio un buen lavado de cara porque el rendimiento era peor que coger una imágen fija, asignarla a un proceso, y moverla por la pantalla (mira, puedes usar eso, haz un mapa del tamaño de la pantalla, lo rellenas de los tiles, y le añades una fila y una columna extra, después sólo tienes que irla desplazando y cuando llegue al final, colocarla en su posición inicial y hecre de nuevo el desplazamiento). Diría que incluso mi motor de scroll tileado original era más rápido que el scroll de Fenix 0.83b

Pero me extraña que ahora consuma tanto, a menos de Josebita le haya hecho algo y tengamos que castigarlo de cara a la pared :D
De hecho, ya digo, el añadir los fondos de scroll al "juego del chavalín de 7 años" sólo me ha supuesto perder entre dos o tres FPS en Wiz.

Ahora que caigo ¿estás poniendo todos los procesos dentro del scroll? ¿Para qué? Ponlos en pantalla, y crea un proceso que modifique los valores de scroll[0].x0 y scroll[0].y0. A lo mejor el ctype=c_scroll es lo que te consume tantos recursos (aunque no debería).

Si aun así quieres dejar el fondo fijo, tendrás que usar un bucle doble, para recorrer filas y columnas, y usar alguno de los comandos PUT para ir rellenando la pantalla.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Enero 02, 2017, 08:03:15 am
la cosa del rendimiento, creo que es por 2 cosas:
1-las dimsiones del grafico que tiene el proceso metido en c_scroll.

o bien...2- el numero de procesos por cientos o mas...

aun asi, los fps han ido a peor igualmente... por usar SCROLL sencillamente ir creando procesos y eliminandolos, asi de sencillo.

y si, todo elemento metido en scroll: pinguinos, bloque moviles(solo cuando se mueve), partículas y 2 procesos congelados(que pinta la zona, con el map tileado).
son pocos procesos... aun asi el rendimiento baja en cuestion de tiempo y numero de zonas cargadas...

Sinceramente note un rendimiento brutal cuando elimine el scroll.
y ahora todo son procesos normales c_screen.

y el rendimiento es bastante bueno, 60-58FPS.

Si solo me queda crear mi sistema de "camara" para simular el deslpazamiento(hay que mover todos los elementos de juego, hasta el terreno de zona)

el terreno de zona, siguie siendo 2 procesos: 1- bloques solidos, 2-elementos de suelo:punto de salida, salida, sangre,items...

no tengo problema con ello, soy consciente de todos los procesos que existen en todo momento.
PEro ya no es un problema cuando me quite el scroll....

lo probare eso:
Ahora que caigo ¿estás poniendo todos los procesos dentro del scroll? ¿Para qué? Ponlos en pantalla, y crea un proceso que modifique los valores de scroll[0].x0 y scroll[0].y0. A lo mejor el ctype=c_scroll es lo que te consume tantos recursos (aunque no debería).
actual mente ya los tengo en pantalla tradicional, me falta de terminar de programar "un camara"
para que tenga el efecto de que siga el jugador(siempre en medio de pantalla), el resto de elemento se deben colocarse en las coordenadas finales.
despues del FRAME
debo restaurarlas, a las cordenadas reales... y no liarla...

recomiendas usar cordenadas locales definidas por ti: X1,Y1
para esos procesos, serian las cordenadas reales

y las cordenadas de pantalla final x,y se aplican al final.
El resto de operaciones del rollo GET_DIST (necesitan un ID) tendre que cambiarlas por FGET_DIST (coordenadas X,Y).

a veces los pinguinos y bloques moviles, necesitan comprobar las cordenadas entre ellos, no solo la orientacion.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Enero 02, 2017, 10:54:47 am
Será que no he avanzado lo suficiente en el juego, pero siempre he visto pantallas estáticas (o me ha parecido verlo). Por eso te decía, que no me parece lógico que procesos que se mueven dentro de una pantalla estática se metan dentro del scroll.

Prueba a crearte tu scroll manual a ver qué tal funciona. Lo mismo te llevas una sorpresa y todo :D :D :D
No es difícil mientras tengas un proceso cámara que modifique unas variables (coordenadas) que puedan leer todos los procesos (recomiendo globales) y que se ejecute después del movimiento del proceso a seguir (prota, que se mantendrá en el centro) y antes que el resto (para que aparezcan en su posición actulizada, su posición real se calcula con una simple suma/resta respecto su X1/Y1 y las variables coordenadas de la cámara, de ahí que se tenga que poder leer desde fuera del proceso cámara).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Enero 21, 2017, 03:52:15 pm
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.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: l1nk3rn3l en Enero 23, 2017, 09:19:34 am
puedes compartir la parte de carga y descarga los recursos para mirar ..

un prototipo o algo pequeño..


Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Enero 23, 2017, 12:40:48 pm
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.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Enero 23, 2017, 02:31:51 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.
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: Drumpi en Enero 23, 2017, 05:05:40 pm
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).
Título: Re:Penguin PUSH [Pixtudio Android&Windows] Alpha
Publicado por: alicesimu en Enero 24, 2017, 03:45:27 am
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.