Rendimiento muy bajo y autoescalado con PixPlantilla

Started by warrior_rockk, August 26, 2015, 07:09:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

warrior_rockk

Llevaba desconectado del desarrollo de Bennu para Android desde que salió el Packager y lo he estado retomando con la PixPlantilla, que resuelve el problema con las gpu Adreno, es mucho mas estable y permite ver y comprender el proceso de compilado en su totalidad. ¡Gran trabajo!
El problema viene con que me estoy encontrando un rendimiento demasiado bajo, ya que, simplemente seteando el modo gráfico y mostrando los fps, no es capaz de llegar a más de 40-50fps! Incluso seteando la resolución nativa del móvil para que no haga reescalado. Algo debo estar haciendo mal porque me consta que se están desarrollando juegos con este port siendo funcionales. Decir también que el móvil es de gama media-alta.


El otro "problema" que me he encontrado, es que esta versión de Bennu-Android de la plantilla, como se ha comentado por el foro, realiza escalado automáticamente a la resolución nativa del móvil. Esto tiene una desventaja y es que, perdemos el control sobre el reescalado que podíamos hacer vía código. En la anterior versión del Packager, podíamos vía Bennu, hacer el scaleresolution a un tamaño determinado, o incluso el scale2x que es más rápido, y escalar en la "proporción" que quisiéramos ,con lo que, si teníamos un juego en una resolución muy menor a la nativa de la pantalla pero no queríamos reescalar a la total nativa del móvil para no perder frames, podíamos hacer que, por lo menos, ocupara la mitad de la pantalla.
Entiendo que las modificaciones de una versión a otra se engloban en el SDLActivity.java. He intentado comparar la versión del Packager con la de la plantilla pero hay demasiados cambios , sobretodo en la gestión de las superficies de dibujado. Con lo que, mi pregunta es, ¿hay alguna sección de ese código donde se pueda activar/desactivar el autoescalado?




panreyes

Ya no recuerdo el estado de la PixPlantilla, pero puedo asegurarte que se ha quedado muy atrás. De hecho desconozco si es con aceleración gráfica o no.


Sobre lo del escalado, no sé contestarte. Eso quizás Joseba

warrior_rockk

Alguien que esté utilizando la PixPlantilla ¿que rendimiento tenéis?

warrior_rockk

Nada, he estado haciendo diversas pruebas y no consigo un rendimiento superior a 30fps.
¿esta muy desfasada la plantilla y estáis usando la versión compilada con NDK con aceleración GPU o los juegos que estáis desarrollando están por debajo de ese número de frames?


Quería intentar probar la versión acelerada pero estoy en el curro y no puedo preparar todo el entorno. ¿no hay binarios .so compilados de las librerias para Android y así compilarlo con ant?

JaViS

Creo que la plantilla utiliza la ultima version del port de BennuGD para android, Pixel en sus proyectos usa un port diferente basado en SDL2, pero tambien tiene sus problemillas, sobretodo en features no soportadas.


el que puede responder a tus preguntas es Joseba, aunque no creo que se vayas a obtener una version diferente del port de Bennu.
Working on Anarkade. A couch multiplayer 2D shooter.

JaViS

Y si, el rendimiento es bastante malo, por eso Pixel usa un port diferente
Working on Anarkade. A couch multiplayer 2D shooter.

warrior_rockk

Entonces Pixel, ¿vale la pena instalarse el entorno NDK y utilizar la versión acelerada o está aun en pañales y muchas cosas no funcionan?


¿Podríamos resumir el estado de Bennu en Android en lo siguiente?:


-versión Plantilla: funciona correctamente y es bastante estable pero rendimiento FPS muy bajo
-versión GPU:      rendimiento superior pero funciones Bennu por implementar
-versión Packager: quería probar la última versión que arreglaba el bug en Adreno y el bug del admob que tenía la aplicación pero la descarga de Google Code ya no existe. ¿alguien tiene la versión packager-win32-20130826.7z?

panreyes

Podríamos resumir el estado de Bennu en Android en lo siguiente:
- versión Plantilla: no lo recuerdo. Tenía entendido que ya estaba con GPU
- versión GPU: Bastante rota
- versión Packager: parecida a la versión Plantilla
- versión PixTudio: Muy adelantada, pero rota a la vez


Ahora mismo las opciones que tienes son:
- Tener mucha paciencia
- Aprender C y aportar mejoras a PixTudio o Bennu
- Cambiar de engine a otro con mayor soporte


Lo cierto es que últimamente ando algo cansado, entre el curro y otras cosas, y no me pongo mucho con esto, pero quiero sacar una nueva plantilla para facilitar las cosas.
Ahora, también diré que todo lo necesario para poder utilizar PixTudio está publicado en uno u otro sitio.


Y por si os sirve, aquí van unos binarios de hace mes y medio:
https://www.dropbox.com/s/oseakv5f1ckssxt/pixtudio-bin.zip?dl=0

JaViS

Pregunta, porque no entiendo:


- Cual es la version GPU??




Quote
Ahora mismo las opciones que tienes son:
- Tener mucha paciencia
- Aprender C y aportar mejoras a PixTudio o Bennu

- Cambiar de engine a otro con mayor soporte




Parece que lo mas logico seria ir por la tercer opcion..


El problema es que ahora no parece haber un horizonte claro en lo que respecta al futuro, no solo de Bennu, si no de la comunidad misma.
Hace un año parecía que Splinter estaba con Bennu 2, que ahora o va muuuuuy lerdo o esta directamente abandonada. Si entiendo bien, Joseba y tu tienen PixTudio, que esta mas o menos en la misma situacion ( o me equivoco?). Y por otro lado hay otros esfuerzos en proyectos similares, pero tambien independientes, sin deadlines ni compromisos claros.


Que quede claro que no digo todo esto por reclamar nada, por supuesto que ni yo ni nadie tiene el derecho de hacerlo, y nadie esta en la obligacion de responder por el proyecto tampoco.


Pero es cierto que no existe un punto de referencia como para tener expectativas en un proyecto determinado. Empezar un proyecto hoy en Bennu es casi una perdida de tiempo, porque no hay actualizaciones, no hay soporte a nuevas tecnologias, no hay bugfixes, y casi que ni hay comunidad, hay que reconocer que nunca fue muy grande, pero hoy ni siquiera se compara a los tiempos de Divsite.


Yo estoy utilizando Bennu porque estoy trabajando en un juego que empece hace 2 años, y lamentablemente ya no me conviene pasarme a otra tecnologia, asi que no tengo otra alternativa que apañarmelas con las ultimas actualizaciones, que deben tener por lo menos un año, pero la verdad es que laburar en Bennu se siente bastante solitario hoy en dia.









Working on Anarkade. A couch multiplayer 2D shooter.

l1nk3rn3l

#9
hemos regresado a colocar un grano de arena.. en el trabajo que los demas aportaron pixel y splinter y demas

nuestras metas a corto plazo :
=== crear un ide para el proyecto  divgo(de amakasoft) para exportar a android(arm_apk) y windows (exe) == (en 2 semanas lo tenemos)
similar a este...
http://www.mediafire.com/download/vq3oe3dzegcn220/setup.zip

dado lo dificil que es asimilar entornos como unity o gamemaker para los no iniciados ...

a mediano plazo:


=== terminar el trabajo que empezo pixel con android terminando el port y creando nuevas dlls android (3d ,publicidad, multiplayer, camara , otros...)
=== usar el port sdl2 y crear nuevas versiones del bennupack pero con (exportacion a windows, html5 ,android y linux)
===segun hablamos con pixel y javis los avances sobre aceleracion sdl2 ...desabilitan muchas funciones que usaban funciones que ralentizaban los juegos en concecuencia no se usaran funciones que no se puedan usar en sdl2(aceleracion sobre gpu), las librerias 3d y de red se portaran a android para potenciar los juegos y siempre con la facilidad div/bennu, posiblemente usaremos photon para red pero solo es un comentario del grupo...

===no se soportara IOS , MACOS por que no tenemos una MAC para probar .....(de pronto en un futuro con wmware pero ahora no hay tiempo)
nosotros tenemos embarcadero c++ de pronto si alguien tiene una mac o un linux para pasarle el ejecutable bennugd haber si funciona?




para terminar tenemos muchas expectativas ya que pixel libero el codigo del port sdl2 (que usa aceleracion)   hacer juegos android sera mas
facil incluso que gamemaker/unity ya que muchos aportaran codigo  para que otros incluyan en sus juegos android (codigo publicidad, stats,red, ia, etc)
cualquiera podra subir sus apk a la tienda y podra monetizar sus creaciones asi sea por hobbie..
calculamos que el bennupack con exportacion a android(no requerira el sdk de google)  pesara por mucho 30mb


bueno enhorabuena pronto mas noticias...

panreyes

Guay, un paso adelante l1nk :)


Javis: La versión GPU es el principio de fork de BennuGD de Joseba. PixTudio es el nombre actual del fork, que rompe bastante con el funcionamiento de BennuGD y compatibilidad Divera, con el objetivo de hacer un engine mucho más limpio.


La cosa es que con el bajón del Kickstarter fallido, pues el ritmo es mucho más tranquilo, además de que estamos bastante ocupados, pero eventualmente creo que saldrá algo muy bueno.

FreeYourMind

En mi opinion visto que splinter y joseba ya no tienen mucho tiempo o motivacion para seguir con el bennu oficial, tanto para android como para pc, linkernel seria en mi opinion el grupo que deberia seguir con el tema, tambien creo que el problema principal es seguir con bennu, porque a nivel de ide's o packages creo que hay mas gente que puede aportar lo suyo, donde me incluyo, pero la principal desmotivacion por lo menos de mi parte es ver que el proyecto principal esta estancado, si no lo estuviera las demas tools saldrian porque habria motivacion, pero es que yo compilar para android no me mola, porque hay muchos cacharros android y configuraciones, pero en los demas ports puedo aportar algo como he hecho hasta ahora

warrior_rockk

Javis, llevas parte de razón todo lo que dices, pero creo que lo importante es centrarse en conocer las limitaciones de lo que queremos utilizar y de lo que el lenguaje nos ofrece.
A mi me encanta desarrollar en Bennu, me permite avanzar mucho mas rápido que con otros API y es muy portable en términos de entorno de desarrollo. Ahora bien, conozco sus limitaciones y sé que ciertos proyectos no están hechos para Bennu. Considero Bennu perfecto para proyectos 2D en no muy alta resolución, preferiblemente en 8/16bits y obligado a estar perfectamente optimizado a nivel de código. Tengo la suerte de que lo que más me interesa del desarrollo de juegos son los juegos "retro" y en en ese campo, Bennu no me limita, me posibilita.
Están de maravilla los diversos ports a otras plataformas que los usuarios se han currado y los mods que permiten 3D etc.. pero es importante saber hasta dónde llegan para ver si se ajustan al proyecto que tenemos en mente.
Por eso quería saber el estado actual de las distintas ramificaciones de ports de Android para saber si , lo que ofrece actualmente, me es suficiente para desarrollar lo que tengo en mente.
Sobre el futuro incierto de Bennu, es como bien dices, incierto... Yo creo que el futuro pasa en poder tener Bennu con aceleración. Para mí es la clave y lo único que limita el desarrollo. Pero su presente , la verdad es que no está nada mal :)




JaViS

Quote from: warrior_rockk on August 29, 2015, 10:58:19 AM
Javis, llevas parte de razón todo lo que dices, pero creo que lo importante es centrarse en conocer las limitaciones de lo que queremos utilizar y de lo que el lenguaje nos ofrece.
A mi me encanta desarrollar en Bennu, me permite avanzar mucho mas rápido que con otros API y es muy portable en términos de entorno de desarrollo. Ahora bien, conozco sus limitaciones y sé que ciertos proyectos no están hechos para Bennu. Considero Bennu perfecto para proyectos 2D en no muy alta resolución, preferiblemente en 8/16bits y obligado a estar perfectamente optimizado a nivel de código. Tengo la suerte de que lo que más me interesa del desarrollo de juegos son los juegos "retro" y en en ese campo, Bennu no me limita, me posibilita.
Están de maravilla los diversos ports a otras plataformas que los usuarios se han currado y los mods que permiten 3D etc.. pero es importante saber hasta dónde llegan para ver si se ajustan al proyecto que tenemos en mente.
Por eso quería saber el estado actual de las distintas ramificaciones de ports de Android para saber si , lo que ofrece actualmente, me es suficiente para desarrollar lo que tengo en mente.
Sobre el futuro incierto de Bennu, es como bien dices, incierto... Yo creo que el futuro pasa en poder tener Bennu con aceleración. Para mí es la clave y lo único que limita el desarrollo. Pero su presente , la verdad es que no está nada mal :)
Esa es una opinión muy positiva de la situación actual. Yo tenía exactamente la misma hace dos años atrás, por las mismas razones.

Pero en el camino nos dimos con bugs que no van a ser arreglados, algunos importantes, como el de los joystick en android, y otros que se pudieron sortear de alguna u otra forma.

También nos dimos con el problema del rendimiento, nuestro juego no corre en HD, y sin embargo, estamos luchando para llegar a los 30 fps continuos (en android y linux)

Puede que Bennu sea adecuado para Windows entonces! Pero por cuanto tiempo? Acaba de salir una nueva versión de windows y Bennu es compatible, pero no porque se haya trabajado en ello, sino por pura suerte.

Que punto tiene empezar un juego que más adelante no va a funcionar ?

Enviado desde mi Nexus 7 mediante Tapatalk

Working on Anarkade. A couch multiplayer 2D shooter.

warrior_rockk

Hombre, el tema de futuras compatibilidades, en principio, no me asusta. Siendo que la base de bennu es SDL, siempre que SDL se mantenga vivo, será posible hacer funcionar bennu. Aunque también es cierto que como Bennu no se adapte a SDL2 quizás sí nos quedemos atrás.
Como mínimo siempre nos será útil Bennu para probar prototipos rápidamente jajaja