BennuGD Android

Started by gecko, March 08, 2010, 01:59:34 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

#90
Quote from: FreeYourMind on July 28, 2011, 10:15:31 PM
Los recursos es facil, estando en una carpeta dentro de res.
Eso tenía entendido. ¿Has probado si funciona?. Hasta que no lo pruebe no me lo creeré del todo :)
Quote from: FreeYourMind on July 28, 2011, 10:15:31 PM
Pero a ti el apk se genera al terminar el ant no ?
Sip. Se genera en el directorio "bin" dentro de la carpeta del proyecto android. Se crean dos: uno con zipalign y otro sin él.
Quote from: FreeYourMind on July 28, 2011, 10:15:31 PM
Lo de la pantalla, hay que controlar el protector de pantalla y la rotación, esto se hacerlo en java, pero nose si se pueden programar partes en cada lenguaje, porque pensaba que el dcb lo buscabas en la parte java y tambien lo haces en la parte c, y estaba pensando en hacer la lectura de un ini de conf externo en la parte java para leer valores de configuracion, que permitieran varios juegos bennu en el mismo android.
Casi seguro que el dcb sólo se lee desde C. Lo que se hace desde java es iniciar la actividad, hacer el binding de los eventos apropiados Java<->C y llamar a la función main del código C (lo que vendría a ser el bgdi).

Es el tema de la resolución en sí lo que no va bien: Por lo que me han comentado en la lista de SDL, en android SDL siempre crea la ventana con la resolución nativa del dispositivo pero bennu asume que si no se le dice nada la resolución es 320x240 (¿no?) así que lo que hace es crear una mini-"región" dentro de la ventana SDL a esa resolución.
Lo que me gustaría hacer es pasar completamente de la capa de compatibilidad con SDL 1.2 (cuando el código se compila contra SDL 1.3, que recuerdo que el código de mi versión monolítica debería compilar con funciones nativas tanto con SDL 1.2 como con 1.3) que ahora ya sólo uso para establecer el modo gráfico y establecer directamente la ventana con las nuevas APIs. Una vez hecho eso, haría que bennu tomara el tamaño de esa ventana como el tamaño total de dibujado, vamos que mi idea es que la funcionalidad sea como siempre se hiciera un set_mode a la resolución nativa del dispositivo.

Eso forzaría al programador (al usuario de bennu) a tener que comprobar cuál es la resolución de la pantalla al principio del juego y actuar en consecuencia puesto que probablemente se van a ignorar las llamadas a set_mode()...

Lo que cada vez tengo más claro es que para poder alcanzar una cierta independencia de la resolución puede ser más que útil tener un buen módulo de renderizado de SVGs.

Y esta parrafada es -basicamente- lo que tenía en mente hasta ahora sobre el port a android :) Si a alguien se le ocurren más cosas que las comente. El código está ahí para que lo mejoreis.

FreeYourMind

1 - En proyectos java funciona, es donde van todos los recursos como sonidos o imagenes. Lo que todavia no se es hasta que punto hay conectividad entre código java y c.

2 - Ok, el problema es que desconfio que en el ide me a compilado la parte c, porque ya tenia los objetos compilados antes con cygwin, pero me falta probar de cero a ver si a traves del ide me hace toda la faena, con mi conf actual.

3 - El java inicia la actividad, ok, pero no se le pueden pasar parametros al iniciarlas ? Con esto ya estaria solucionado.

4 - Sobre la resolución, no habria forma de que la resolucion por defecto que crea sea la de Android ? Con esto ya tendriamos un gran avance de momento.

5 - Yo si puedo compilar y que el mio funcione ya trastearia alegremente, pero de momento tengo que ver si resuelvo mis problemas.


Fede

¡Leches! Lo que me estoy perdiendo. ¡Enhorabuena!
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

FreeYourMind

josebita te cuento:

He configurado el eclipse en Linux, he podido compilar a la primera por linea de mandos, esta vez sin ningun error.

El fichero ocupa exactamente lo mismo que la compilación en Windows, veo que tu lo has compilado en MAC.

Pues bien, este tampoco funciona, apuesto que tienes algo en tu MAC, alguna configuración o cosa rara que no esta en el CVS.
Si puedes, compilalo tu mismo en Linux y comprueba el apk.

josebita

Quote from: FreeYourMind on July 29, 2011, 03:40:57 PM
josebita te cuento:

He configurado el eclipse en Linux, he podido compilar a la primera por linea de mandos, esta vez sin ningun error.

El fichero ocupa exactamente lo mismo que la compilación en Windows, veo que tu lo has compilado en MAC.

Pues bien, este tampoco funciona, apuesto que tienes algo en tu MAC, alguna configuración o cosa rara que no esta en el CVS.
Si puedes, compilalo tu mismo en Linux y comprueba el apk.
Yo lo he compilado tanto en linux como en mac sin problema, pero siempre desde la consola (lo intenté un rato con eclipse pero luego decidí que no me apetecía discutir con otro IDE más, que pillar el Xcode ya me llevó un tiempo).
Si lo compilas desde la consola, además, puedes ver lo que está compilando.

En fin, cuando pueda lo probaré en una instalación limpia de linux pero ya digo que esto va despacio porque ando mucho más ocupado en la vida real que de costumbre para ser julio.

Otra cosa, Splinter, ¿has probado si te funciona el apk en tu tablet?.

FreeYourMind

En linux lo compile desde la consola, ni siquiera he abierto el proyecto con el eclipse. Lo compilaste con el ultimo SDL ? Veo que tu ultimo cambio fue esto, quizas lo compilaste antes...

josebita

Anduve tocando algo de las resoluciones pero la verdad es que no me acuerdo.
Puede que hiciera algún cambio después de crear el apk que te he puesto pero no suelo subir código salvo que medio-funcione. Intentaré averiguar a ver qué pasa y te cuento, pero no este finde que me marcho por ahí, a partir del martes.

FreeYourMind

Ok, gracias, de todas formas me bajaré la version anterior y probaré de nuevo.
Puede que sea esa la diferencia de los pocos Kb.

SplinterGU

Quote from: josebita on July 29, 2011, 07:03:09 PM
Quote from: FreeYourMind on July 29, 2011, 03:40:57 PM
josebita te cuento:

He configurado el eclipse en Linux, he podido compilar a la primera por linea de mandos, esta vez sin ningun error.

El fichero ocupa exactamente lo mismo que la compilación en Windows, veo que tu lo has compilado en MAC.

Pues bien, este tampoco funciona, apuesto que tienes algo en tu MAC, alguna configuración o cosa rara que no esta en el CVS.
Si puedes, compilalo tu mismo en Linux y comprueba el apk.
Yo lo he compilado tanto en linux como en mac sin problema, pero siempre desde la consola (lo intenté un rato con eclipse pero luego decidí que no me apetecía discutir con otro IDE más, que pillar el Xcode ya me llevó un tiempo).
Si lo compilas desde la consola, además, puedes ver lo que está compilando.

En fin, cuando pueda lo probaré en una instalación limpia de linux pero ya digo que esto va despacio porque ando mucho más ocupado en la vida real que de costumbre para ser julio.

Otra cosa, Splinter, ¿has probado si te funciona el apk en tu tablet?.

no lo probe, pero dime que tengo que hacer y lo hago hoy a la noche... (links, pasos, etc)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Splinter te lo dice en hilos anteriores....
Bsjste el pkg del megaupload que pone, y en la SD/data pones el main.dcb en el cual no uses set_mode.

Josebita: Estoy mirando que efectivamente hiciste cambios en la resolucion, y lo raro es que estaba un fichero log en data que apuesto que ponia 'SDL_GL_MakeCurrent' en el, cambio que hicste en el codigo.
Voy a compilar ahora la version anterior a ver si es esto.

FreeYourMind

Bueno, de momento me dejo ya de compilar tus versiones, he compilado unas cuantas y ninguna va:

r295: Compilacion incompleta, problemas de joys
r296: Compilacion incmpleta, problemas de audio
r297: compila todo, 671,6 kb, tampoco funciona en el movil

Cuando ya no este sumergido en el aburrimiento probaré a debuggear a ver si localizo el problema.

SplinterGU

Quote from: FreeYourMind on July 29, 2011, 08:30:54 PM
Splinter te lo dice en hilos anteriores....
Bsjste el pkg del megaupload que pone, y en la SD/data pones el main.dcb en el cual no uses set_mode.

Josebita: Estoy mirando que efectivamente hiciste cambios en la resolucion, y lo raro es que estaba un fichero log en data que apuesto que ponia 'SDL_GL_MakeCurrent' en el, cambio que hicste en el codigo.
Voy a compilar ahora la version anterior a ver si es esto.

esperaba que me evites tener que leer todo el hilo... bueno, luego con tiempo lo hare...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

O sea, te lo tenemos que repetir para que no lo leas xD

josebita

Quote from: josebita on July 27, 2011, 11:47:34 PM
Quote from: FreeYourMind on July 27, 2011, 11:11:16 PM
josebita tienes algun avance en relación al tema ? Mañana le voy a dedicar un par de horas al tema, si tienes algo avisa please.
Thanks.
Algo funciona, pero no va bien: tiene problemas con el modo gráfico. Parece que la gente de la lista de SDL empieza a interesarse y han empezado a salir cosas útiles por allí pero de momento lo que tengo no es útil.
Dejo el enlace a un apk de Bennu tal y como está ahora (no incluye los últimos cambios de Splinter). Para que "funcione" hay que instalar el apk y poner el main.dcb (se tiene que llamar main.dcb) en el directorio data de la tarjeta SD (/sdcard/data/main.dcb).

http://www.megaupload.com/?d=9NTEX9SL

Por lo menos parece que ya va en dispositivos con GPU...
Versión mínima de android: a saber.
Abstenerse de usar set_mode()
Hay que cambiar el directorio de trabajo al del dcb a mano al principio de la ejecución, que si no creo que no encuentra nada.
Las teclas del teléfono se leen como teclado, pero no recuerdo los scancodes específicos.
El sonido parece funcionar, pero creo que lo he compilado sin soporte para formatos de módulo.

Así que ya digo: aún no vale de gran cosa más allá de ser una prueba de concepto.

[Edito] Por supuesto, todo el código está en la página del proyecto en google code y debería compilar sin más que instalar el SDK y el NDK de Android.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2