FAQ sobre PixTudio

Started by panreyes, September 14, 2015, 12:23:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

panreyes

Hola a todos.
Escribo aquí en representación de Joseba, para echarle una mano en su fork.

¿Qué es PixTudio?
PixTudio es un fork de BennuGD creado por Joseba, con el objetivo original de crear una versión con aceleración gráfica OpenGL, que permitiese crear juegos 2D muy fluídos en plataformas móviles (Android, iOS, OUYA, etc...).

¿Qué diferencias tiene con BennuGD?
- Renderiza por GPU a partir de las rutinas disponibles en SDL (es decir: no usa OpenGL directamente sino SDL).
- Plataformas: Windows, Linux, MacOS X y Android. Existe una versión preliminar para iOS. Sin embargo y dado que el código aún no funciona bien cuando se compila en modo nativo para sistemas operativos de 64bits, no se pueden subir aún aplicaciones a la App Store de Apple.
- Nueva gestión de gamepads estandarizados de SDL
- No soporta 8bpp
- No soporta modo 7
- Se ha eliminado mod_blendop
- Eliminado soporte de CD, FLI y FLC
- Eliminado soporte para FLAGS=4, dado que su comportamiento se solapa con la variable local alpha.
- Tiene algunas funciones nuevas (por documentar)
- Se han eliminado los alias de compatibilidad con DIV/Fénix.
Por ejemplo: put_screen es ahora screen_put, load_png es ahora png_load, etc... Esto ya existía en BennuGD, pero Bennu permitía la utilización de las funciones con sus nombres originales por compatibilidad.
- La compatibilidad hacia atrás no es una razón para mantener/incluir características.
- Soporte para vídeos en formato OGG/Theora.
- Soporte nativo para fuentes renderizado de fuentes TTF mediante FreeType.

¿Cuándo será publicada una versión estable oficial?
Lo desconozco, posiblemente nunca.

¿Y qué hacemos mientras esperamos?
Pues podéis trastear con unos binarios compilados por mí mismo, ofrecidos bajo el precepto de "son tal como son, si fallan os aguantáis". Si os urge alguna mejora, no dudéis en descargaros MinGW, Tortoise-Git, los sources y hacedla vosotros mismos.

¿Cuál es su página web?
Hay una página web muy preliminar en http://pixtudio.divhub.org

¿Dónde puedo encontrar el código fuente?
http://www.bitbucket.org/josebagar/pixtudio/commits/all

Bugs conocidos
- Al crear y destruir bastantes scrolles, el juego se ralentiza.
- No funciona la fnt integrada
- mod_blendop compila, pero no funciona
- scroll a mapa funciona muy lento
- get_real_point no tiene en cuenta angle a la hora de devolver las coordenadas
- Al minimizar y restaurar la ventana, se queda la ventana en negro
- Al hacer set_mode, se descargan todos los FPGs y mapas cargados anteriormente
- Se hace escalado nearest neighbour por defecto, en lugar de escalado lineal.
- Los caracteres con tildes dan problemas en Android.
- A pantalla completa en monitores 4:3 no se ve todo el juego
- fgets falla en Android
- screen_get se cuelga a pantalla completa
- No funciona la carga de recursos gzipeados
- graph_collision no funciona correctamente si el graph es más pequeño
- dir_open y glob fallan
- Más bugs aquí

Ideas pendientes de implementar
- 64 bits
- curl
- Soportar overloading de funciones/procesos
- Spine
- Chipmunk
- Nueva librería de sonido basada en OpenAL / OpenSL ES
- Reinventar una librería tipo mod_blendop pero pensando sobre SDL (OpenGL)

¿Dónde puedo seguir los avances?
En el diario de desarrollo.

Descarga de los binarios actuales
Windows - https://pixtudio.divhub.org/downloads/pixtudio_win32_20160217.7z (actualizada 17/02/2016)
Android - Pendiente de preparar una nueva "plantilla pixjuegos"
Linux - http://www.panreyes.com/pixtudio-linux32.zip
MacOSX - No compilado.


Saludos!

everbill

#1
en la seccion de descargas de bitbucket presenta una la deescarga del repositorio... ese esta actualizado hasta el ultimo commit? es que me quiero evitar instalar git
GAWASY PROJECT: Construyendo Videojuegos para una Sociedad Libre. http://gawasy.ga/

panreyes

Quote from: everbill on September 14, 2015, 04:19:34 PM
en la seccion de descargas de bitbucket presenta una la deescarga del repositorio... ese esta actualizado hasta el ultimo commit? es que me quiero evitar instalar git
Desconozco cada cuánto lo actualizan, pero lo acabo de comprobar y está actualizado al último commit.

De todas formas, suele ser más cómodo instalar git e ir actualizando el repositorio que descargarlo entero cada vez.

darío

En bitbucket puedes descargar los sources empaquetados de cualquier rama sin necesidad de tener git.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

La momia que fuma

Estoy probándolo un poco intentando adaptar esto, a pesar de algún bache y lógicos cambios que tuve que hacer (por ejemplo, estaba usando paletas) va muy muy fino y muy suave :)

everbill

lo q pasa es q no tengo internet en casa, y en el trabajo no puedo instalar git
GAWASY PROJECT: Construyendo Videojuegos para una Sociedad Libre. http://gawasy.ga/

La momia que fuma

Se contempla implementar rotación/escalado filtrado?


Yo (desde la mas bendita de las ignorancias xD) imagino que con openGL esto a lo mejor será mas fácil, no?

josebita

Quote from: La momia que fuma on September 17, 2015, 01:46:34 PM
Se contempla implementar rotación/escalado filtrado?
Yo (desde la mas bendita de las ignorancias xD) imagino que con openGL esto a lo mejor será mas fácil, no?
Dame más detalles, porfa.

Pequeño detalle: yo pinto con SDL que, a su vez, usa OpenGL. No pinto directamente con OpenGL.

PD: Id apuntando estas cosas todas juntas, así tengo una lista de cosas para entretenerme cuando me ponga.

panreyes

Momia, hasta donde tengo entendido se filtra todo con el método "linear".

Joseba, fíjate en la lista de bugs en el primer post :)

La momia que fuma

Quote from: PiXeL on September 17, 2015, 04:31:24 PM
Momia, hasta donde tengo entendido se filtra todo con el método "linear".


Seguro? No es que entiendo mucho de filtrados, pero el tipo de escalado/rotación simple que siempre he visto en divlikes (pixstudio incluido) lo he visto alguna vez definido como "point", y al que me refiero yo como filtrado como "linear"...


Quote from: josebita on September 17, 2015, 03:44:52 PMDame más detalles, porfa.


Como me explico fatal, mejor una imagen xD






A la izquierda, rotaciones y reescalados (La fila de abajo es reescalado reduciendo tamaño) de divlike de toda la vida, a la derecha con filtrado linear.


Quote from: josebita on September 17, 2015, 03:44:52 PMPequeño detalle: yo pinto con SDL que, a su vez, usa OpenGL. No pinto directamente con OpenGL.

Ah, yo al oir openGL ya me estaba imaginando los sprites pintados en poligonos y las de dios xD (Que se hace mucho ahora en motores 2D, que en realidad son texturas en rectangulos)

FreeYourMind

#10
es que son pintados en poligonos, en open gl los sprites de toda la vida son representados en 2 poligonos creando un cuadrado, por eso con opengl todo es tridimensional creado con poligonos, y modelos 3d cohabitan con sprites y texturas de toda la vida movidos por hardware.


El unico incoveniente es que los graficos tienen que ser multiplo de 2, si haces un grafico que no lo es se nota mazo su adaptación al poligono por lo que te aconsejo partir ya de graficos corregidos en lugar de esperar a que sean estirados dentro del poligono.

La momia que fuma

Quote from: FreeYourMind on September 17, 2015, 06:30:59 PM
es que son pintados en poligonos, en open gl los sprites de toda la vida son representados en 2 poligonos creando un cuadrado, por eso con opengl todo es tridimensional creado con poligonos, y modelos 3d cohabitan con sprites y texturas de toda la vida movidos por hardware.


El unico incoveniente es que los graficos tienen que ser multiplo de 2, si haces un grafico que no lo es se nota mazo su adaptación al poligono por lo que te aconsejo partir ya de graficos corregidos en lugar de esperar a que sean estirados dentro del poligono.


Yo lo que vi en un motor de hmtl5 (No se si es aplicable a openGL) es que (internamente) te monta los gráficos en rectángulos de tamaño potencia (no múltiplo) de 2, y era recomendable tenerlo en cuenta: Por ejemplo, si metes un grafico de 257x256, usa un rectangulo de 512x512 derrochando recursos por un miserable píxel.


Si se implementa el filtrado este que digo, quizá estaría bien, de ser posible, que sea opcional mediante una global de configuración, para proyectos retro/pixel-art en los que sea preferible el estilo clásico.


Y también quiero la Ps4 y un pony (Venga! Carta a los reyes magos! xD)

SplinterGU

muy bueno! adelante con esto!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Vale, creo que te entiendo.
El modo de escalado debería ser lineal:
https://bitbucket.org/josebagar/pixtudio/src/f832f1192af18143ae0d9dba2b5f0a0ac0f72492/modules/libvideo/g_video.c?at=bigmap&fileviewer=file-view-default#g_video.c-339

Y gracias, Pixel, por la lista. Tenedla actualizada y cuando vaya sacando ratos voy tirando de ella..

Quote from: La momia que fuma on September 17, 2015, 06:17:17 PM
Quote from: PiXeL on September 17, 2015, 04:31:24 PM
Momia, hasta donde tengo entendido se filtra todo con el método "linear".


Seguro? No es que entiendo mucho de filtrados, pero el tipo de escalado/rotación simple que siempre he visto en divlikes (pixstudio incluido) lo he visto alguna vez definido como "point", y al que me refiero yo como filtrado como "linear"...
Quote from: josebita on September 17, 2015, 03:44:52 PMDame más detalles, porfa.



Como me explico fatal, mejor una imagen xD






A la izquierda, rotaciones y reescalados (La fila de abajo es reescalado reduciendo tamaño) de divlike de toda la vida, a la derecha con filtrado linear.


Quote from: josebita on September 17, 2015, 03:44:52 PMPequeño detalle: yo pinto con SDL que, a su vez, usa OpenGL. No pinto directamente con OpenGL.

Ah, yo al oir openGL ya me estaba imaginando los sprites pintados en poligonos y las de dios xD (Que se hace mucho ahora en motores 2D, que en realidad son texturas en rectangulos)

La momia que fuma

Quote from: josebita on September 21, 2015, 10:04:58 PM
Vale, creo que te entiendo.
El modo de escalado debería ser lineal:
https://bitbucket.org/josebagar/pixtudio/src/f832f1192af18143ae0d9dba2b5f0a0ac0f72492/modules/libvideo/g_video.c?at=bigmap&fileviewer=file-view-default#g_video.c-339


Pues a no ser que por algún motivo Pixstudio no se lleve bien con mi gráfica o algo así (Que es una ati superviejuna de toda la vida, pero con lo gafe que soy bien podría ser xD) de verdad que no está usando filtrado linear...


Adjunto un programilla junto a un png por si quieres comprobarlo. Funciona también en Bennu sin modificarle nada, para poder comparar: Visualmente las rotaciones y escalados se ven igual.


Eso si, en Bennu "temblequea" un poco el gráfico (Se nota sobre todo en la rotación) como si hubiese cierta imprecisión al colocar el centro. En Pixstudio en cambio no, como si lo hubieses clavado con una chincheta :P


También he reproducido el ejemplo sobre html5 para ilustrar la diferencia:


-Con filtro linear
-Sin filtro linear (Igual o muy parecido a Bennu y, de momento, Pixstudio)


Podrás comprobar que la diferencia vale la pena ;D