Aviso de avances port a iOS

Started by josebita, June 09, 2011, 03:46:59 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

* Para que funcione la versión de 32 bits he añadido (y completado) los parches de DCelso BGR<->RGB.
* Todo el código nuevo está basado en el API de SDL 1.3 dejando atrás la capa de compatibilidad, aunque el código se sigue pudiendo compilar contra SDL 1.2.
* Resuelve (creo) el problema que había con la resolución del iPad.
* Añade mod_multi para soporte multitouch.
* Añade mod_curl para soporte web.
* Añade (opcionalmente) mod_fmodex para mayor control sobre el sistema de audio.
* Añade los últimos cambios del Bennu oficial.
* Un cambio de comportamiento respecto de Bennu oficial es que ahora el modo gráfico no se establece automaticamente al iniciar el juego sino cuando se hace un set_mode o se utiliza alguna rutina gráfica. Diría que ésto es lo que estaba causando los problemas con la resolución del iPad y estaba causando crashes en Android. Ahora al menos se podrá hacer un primer set_mode en Android.
* Se elimina el soporte para SCALE_2X y otros modos de escalado en iOS (no así en Android ni en ningún otro sistema) dado que parece que es código GPL y eso hace que el binario sea GPL, lo cual es incompatible con la licencia de FMOD y con la licencia de la App Store de Apple.



Creo que nada más. Aviso que es una versión preliminar y todavía hay unos cuantos bugs conocidos y las librerías todavía necesitan refinarse más.


Me gustaría comentar contigo sobre qué crees que debe hacerse con las resoluciones de dispositivos que sólo admiten una resolución.
Me refiero a dispositivos como Android en los que la resolución del aparato es una única y cambia entre dispositivos. La opción que estoy tomando de momento es poner el modo gráfico a la resolución nativa del aparato y que luego sea el usuario quien deba manejarse con la resolución que se le da, pero quizás hacer un scale_resolution implícito tampoco sería mala idea.

SplinterGU

creo que es tiempo que incluya un archivo de configuracion para ciertas cosas... como ser scale_resolution...

te digo por que no fijo, simplemente porque tendrias que estas haciendo una version por dispositivo, cuando en el caso de Android con un binario para android ya es suficiente... mantener versiones diferentes siolo por el scale_resolution no lo vale... en cambio, tener un archivo de configuracion, podria hacer que el programador establezca ya de antemano las resoluciones validas (u otros parametros)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Lo del fichero de configuración la verdad es que me parece buena idea. Aunque ahora muchas cosas se pueden hacer mediante variables de entorno, en muchas de las plataformas que me resultan de interés o bien no existen o no es posible definirlas.

En cuanto a lo de la resolución, no sé si te he entendido bien. Mi idea es dejar alguna forma de que el usuario pueda decir a Bennu que quiere poner la pantalla a la resolución nativa del dispositivo y luego encargarse él de adaptar el comportamiento del juego a la resolución a la que se haya puesto el sistema. Ahora eso es lo que ocurre siempre en Android (símplemente se ignora la resolución que se le dé y siempre se establece la resolución nativa del cacharro).

josebita

Primera versión binaria enviada a la gente que donó para el iPad. Si alguien tiene problemas con la versión binaria que está publicada ahora mismo y cree que necesita la versión más nueva para poder sacar su juego, que me lo diga y le paso el enlace.

SplinterGU

Quote from: josebita on December 22, 2011, 02:55:31 AM
Lo del fichero de configuración la verdad es que me parece buena idea. Aunque ahora muchas cosas se pueden hacer mediante variables de entorno, en muchas de las plataformas que me resultan de interés o bien no existen o no es posible definirlas.

En cuanto a lo de la resolución, no sé si te he entendido bien. Mi idea es dejar alguna forma de que el usuario pueda decir a Bennu que quiere poner la pantalla a la resolución nativa del dispositivo y luego encargarse él de adaptar el comportamiento del juego a la resolución a la que se haya puesto el sistema. Ahora eso es lo que ocurre siempre en Android (símplemente se ignora la resolución que se le dé y siempre se establece la resolución nativa del cacharro).

lo tengo muy en claro que se pueden hacer por variables de enviroment, tan claro como que las agregue yo... pero eso implica tener que crear un script o llamarlo desde una aplicacion que setee dichas variables... pero si todo estuviera en un .ini, todo seria mucho mas facil..

si se puede asegurar que siempre se obtenga la resolucion nativa, perfecto... pero no se si siempre se puede asegurar eso... me refiero en todas las plataformas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

manowar

Quote from: manowar on December 21, 2011, 02:26:57 PM
La verdad es que desconozco que sucedia... he rehecho de nuevo el fpg usando el FPG Edit a 32 bits y ha vuelto a funcionar sin problemas, el caso es que no recuerdo haber tocado nada del fpg anterior para que dejase de funcionar.

Tengo quemirar los fps que consigue pero anoche al traspasar esta nueva version me dio la sensacion de ir demasiado lento, esta tarde le meto que saque la variable por pantalla a ver que esta haciendo.

He tardado mas de lo esperado en poder retomar el tema pero por fin lo he probado, le he metido un texto con los fps y lo he traspasado de nuevo al dispositivo, iPhone 4S de 16Gb. Cuando no se mueve los fps esta siempre en 60 ahora, cuando comienzo a mover el personaje y empiezan a aparecer enemigos la cosa baja al 50% o menos... no alcanza mas de 25fps.

En realidad el programa no es muy pesado un fondo ciclico del doble de largo que la pantalla, es decir 960px ya que estoy trabajando a 480x320 y unos sprites (7 u 8 simultaneos) pequeños de unos 60x30 aprox por la pantalla y poco mas. Me sorprende que el rendimiento caiga tanto. Podria tener algo que ver el estar ejecutando a 320x480 en un dispositivo de mas resolucion?, entiendo que estara reescalando internamente todo. En caso negativo se os ocurre alguna solucion?. Estoy en 32bits. Musica de fondo y efectos sonoros.

SplinterGU

tengo entendido que josebita puso un reescalado automatico si no es la resolucion exacta... pero eso lo dira mejor el...

compara contra 16bits a ver que se ajusta mejor a tu dispositivo...

en pc, por ejemplo, si vos tenes un modo nativo (escritorio) de 32 bits, los programas hechos en 32 bits van mas rapidos que los de 16 y lo mismo a la inversa...

prueba variantes a ver que resultados obtienes... serian datos interesantes para la comunidad...

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

josebita

No hay reescalado automático. Yo diría que funciona igual que el código oficial.
Le he enviado a manowar los nuevos binarios, a ver cómo van.

SplinterGU

pero no habiamos hablado que ponias un scale_resolution por defecto? o me estoy confundiendo?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on December 29, 2011, 10:52:16 PM
pero no habiamos hablado que ponias un scale_resolution por defecto? o me estoy confundiendo?
Comenté que quizás sería buena idea hacerlo, pero la verdad es que no tengo una idea clara de cómo tratar las resoluciones en dispositivos Android.
En iOS no hay mayor problema porque hay unas pocas resoluciones preestablecidas y compatibles entre dispositivos pero en Android no y no sé muy bien qué hacer dado que la resolución puede ser basicamente cualquiera, de forma que en general lo que se pase a set_mode no será lo que el dispositivo pueda soportar.

Un scale_resolution implícito puede parecer una buena idea, pero si el juego se programa para una resolución pequeña y se ejecuta en una muy grande (tableta) la calidad se va al garete.

Por eso comenté lo de que creo que la única solución realmente válida es poner el dispositivo en su resolución natural y que la gente debería programar sus juegos para que se vean bien en una cierta gama de resoluciones, dentro de un orden. Eso complica la programación, nauralmente...

SplinterGU

vale, ahora entendi... gracias por la aclaracion y disculpa por la confusion.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

He liberado el código fuente de la versión antigua del código (la que todavía usa el API de SDL1.2) con algunos cambios sobre las versiones anteriores:
* mod_curl actualizada hasta los cambios de hoy.
* compilada contra la última libpng
* Debería arreglar los problemas que aparecían en el iPad 2 con iOS 5.

Aunque sea una versión de código fuente, se usa de forma idéntica a como se hace con las templates, así que os animo a probarlo directamente desde aquí. De todas formas, cuando compruebe que funciona como debe y haga un par de añadidos a la mod_curl sacaré templates actualizadas.

Erkosone

Buenas, voy a comenzar un juego para iOS y veo que la versión actual incluye muchas features nuevas, algún link donde descargar los últimos templates?
Me he pasado por tu blog Joseba, pero veo que no corresponden las fechas de los templates con la fecha de los post´s con los updates aquí en el foro, supongo que son los antiguos, puedo descargar los nuevos de algún sitio?


Bueno, gracias de antemano.

josebita

Esta tarde subo una template nueva.

Erkosone