Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ancho De Banda

Iniciado por zupervaca, 30 de Diciembre de 2005, 01:41:45 PM

« anterior - próximo »

CoLSoN2

Cita de: "Pogacha"... A mi juego lo bajo de 10mb a 7mb en la compresion de recursos, incluso cuando la mayoria son PNGs ;) y luego a 5mb en la compresion del instalador ... tendria que descomprimir los png y pasarlos a tga para luego guardarlos en el instalador de recursos sin comprimir para probar con la compresion del instalador solamente, a ver que resultados tengo, pero es demasiado trabajo para una cosa que en este momento no me traeria beneficios.

Vuelvo a repetir, la compresion de recursos tiene su principal ventaja en la velocidad de carga del juego!, si fuese mas rentable una unica compresion para el ensamblado del instalador entonces lo que se me ocurre seria mas eficiente seria crear el instalador con los recursos sin comprimir y una vez instalado comprimir los recursos.
Este metodo se llama "Metodo de optimización de instalador de Pogacha" todos los derechos reservados.  

Saludos.
Bueno, obviamente depende del tipo de juego que vayas a hacer. Si se trata de un juego que va en un CD y que necesita cargar 300 imágenes de disco cada vez, mejor que las cargue rápido a que pese poco. Pero para un juego casual con pocos recursos, mejor que ocupe 10 MB en vez de 20 aunque eso aumente tres segundos el proceso de carga.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

zupervaca

 
CitarCompara TIFF comprimido, PNG, GIF, o similares, no JPEG.

- BMP 192 KB (196.664 bytes); Setup 359 KB (368.277 bytes)
- GIF 45,7 KB (46.831 bytes); Setup 325 KB (332.980 bytes)
- JPEG 20,2 KB (20.786 bytes); Setup 299 KB (307.035 bytes)
- PNG 40,7 KB (41.756 bytes); Setup 320 KB (327.829 bytes)
- TIFF 207 KB (212.352 bytes); Setup 365 KB (373.984 bytes)

La proporción sigue igual ;)

He subido todo otra vez, podéis descargar las imágenes utilizadas como sus setups desde aquí

CoLSoN2

 Para ser objetivos creo que deberías probar a comprimir un set de imágenes representativo de lo que es un juego (en vez de una sola de unos pocos kb's), por ejemplo, 50 imágenes, la mitad de ellas mayores de 512x512, otras tantas pequeñas, etc. Todas en el mismo formato. Hay batch converters por ahí para ahorrarte el curro de cambiar de formato tantos ficheros.

Si te sirve de algo, conseguí reducir unos 3 MB del setup del Cursed Wheel haciendo eso (pasando PNGs a TGA/BMP y comprimiendo a tope en el instalador).
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

senior wapo

 El problema es que no es la misma imagen. En unos casos esta en 24BPP y en otros cuantizada a 8BPP, por eso se dan esas diferencias, porque en algunos casos se esta comprimiendo una imagen que de por si ya es la tercera parte de tamaño (en bytes).

Estoy haciendo unas pruebas yo mismo, las posteo dentro de un rato.

PD: Al margen de que cada imagen en particular se comprima mejor con un algoritmo que otro.

Pogacha

 Pero aun así la idea es tener muchas imagenes parecidas, una animación o algo así ... que sean png comprimidas contra tga sin comprimir.
Aqui es donde no se que pueda pasar ...

Pogacha

Cita de: "CoLSoN2"
Cita de: "Pogacha"... A mi juego lo bajo de 10mb a 7mb en la compresion de recursos, incluso cuando la mayoria son PNGs ;) y luego a 5mb en la compresion del instalador ... tendria que descomprimir los png y pasarlos a tga para luego guardarlos en el instalador de recursos sin comprimir para probar con la compresion del instalador solamente, a ver que resultados tengo, pero es demasiado trabajo para una cosa que en este momento no me traeria beneficios.

Vuelvo a repetir, la compresion de recursos tiene su principal ventaja en la velocidad de carga del juego!, si fuese mas rentable una unica compresion para el ensamblado del instalador entonces lo que se me ocurre seria mas eficiente seria crear el instalador con los recursos sin comprimir y una vez instalado comprimir los recursos.
Este metodo se llama "Metodo de optimización de instalador de Pogacha" todos los derechos reservados. 

Saludos.
Bueno, obviamente depende del tipo de juego que vayas a hacer. Si se trata de un juego que va en un CD y que necesita cargar 300 imágenes de disco cada vez, mejor que las cargue rápido a que pese poco. Pero para un juego casual con pocos recursos, mejor que ocupe 10 MB en vez de 20 aunque eso aumente tres segundos el proceso de carga.
Acuerdate que el jugador casual tiene poca paciencia ;)

zupervaca

 He hecho un png comprimido a 24bpp y el tga sin comprimer a 24bpp, resultados aquí:

- PNG 441 KB (452.099 bytes); Setup 717 KB (734.377 bytes)
- TGA 768 KB (786.476 bytes); Setup 767 KB (785.439 bytes)

PD: Tambien incluyo en el .rar general el archivo en bmp desde el que he convertido a los demas formatos, lo hice con el photoshop.

senior wapo

 No tengo ningún lugar donde subir las imágenes, pero las pruebas han sido hechas con una imagen de fondo renderizada con PovRay de un paisaje (con alpha) y 3 secuencias de animación de sprites de 32 fotogramas cada una rotando a lo largo de los 3 ejes (wings3d->PovRay, con alpha).

Si alguien me puede facilitar un alojamiento para subir los archivos, que me mande un PM.

Resultados:


Imágenes sin comprimir en formato TGA 24 bits RGB + 8 bits alfa

        1.024.018 chopper1_strip.tga
        1.024.018 chopper2_strip.tga
        1.024.018 chopper3_strip.tga
          271.277 landscape.tga

Imágenes comprimidas en formato PNG 24 bits RGB + 8 bits alfa

           87.638 chopper1_strip.png
           99.388 chopper2_strip.png
          101.719 chopper3_strip.png
          125.141 landscape.png

Imágenes comprimidas en formato JPEG 24 bits RGB

           44.799 chopper1_strip_color.jpg
           36.857 chopper2_strip_color.jpg
           31.583 chopper3_strip_color.jpg
           21.254 landscape_color.jpg

       Componente alfa sin comprimir, en formato RAW 8 bits

          256.000 chopper1_strip_alpha.bin
          256.000 chopper2_strip_alpha.bin
          256.000 chopper3_strip_alpha.bin
           76.800 landscape_alpha.bin


Resultados de los instaladores:

          172.216 setup_jpg.exe  ( *.JPG + *_alpha.bin )
          320.135 setup_tga.exe  ( *.tga )
          445.253 setup_png.exe  ( *.png )



Claramente, y como era de esperar, jpg+alpha sin comprimir da mejor resultado, seguido de TGA sin comprimir, y el peor, PNG.

Todos los instaladores han sido generados con la opcion "Best Compressor" de NSIS, que comprime con los distintos compresores y sólo se queda con el mejor resultado para ese conjunto de archivos.

Pogacha

 Que estadisticas tan controversiales ...
Eso era lo que yo queria ver, de todos modos habrá variaciones según algunos datos ... lo que si desde ya el JPEG no me gusta para nada por la perdida de calidad.

Saludos.

PD: Muchas gracias por el trabajo de investigación  (ole) . Zupervaca y senior wapo trabajaron duro para suplir los experimentos que los flojos como nosotros nunca haremos  :P

zupervaca

 ¿Senior wapo que instalador estas usando? es que estoy buscando la opción que mencionas y no la veo.

senior wapo

 Utilizo el NSIS de NullSoft (opensource)

Si que es verdad que esa imagen se comprime sensiblemente mejor con PNG, que con los algoritmos del instalador. Los filtros o reordenamientos (previa compresión) que aplica PNG parecen tener mucho efecto en esta imagen porque el compresor es el mismo que usa el ZIP (deflate) y no comprime tanto a pelo.

@Pogacha: No descartes tan rápido JPG, porque no se nota tanto en la mayoria de las imágenes, sobre todo si son renderizadas (en las fuentes de letra, dibujos con pocos colores hechos a mano, y similares puede que sii).

Un detalle interesante sobre los bordes: Si usas imagenes compiladas como tiras RLE o simplemente usas alpha, da igual que los bordes cambien, porque el propio alpha/RLE recorta sobre la imagen original, no la leída desde JPG. Evidentemente, esto requiere que precalcules el RLE sobre la imagen original y lo guardes aparte, o bien, que el alpha lo guardes sin pérdida.

Además puedes ajustar el grado de calidad individualmente en cada imagen. Sin ir más lejos, "Ricochet" y "Wik & The Fable of Souls" usan JPG y se ven de miedo. Algunas imágenes se guardan al 60% de calidad, la mayoria 95% o asi. Abre su editor y podrás verlo.

Después de estas pruebas me parece que voy a integrar libjpeg en mi motor.

fiero

 Aparte de las imágenes, para el programa y dlls lo que más comprime (según mi experiencia) es el CAB. He comparado ZIP y RAR y siempre me ha dado mejores resultados el CAB. Imagino que los instaladores  utilizarán compresión cab para las DLL, ¿o quizás ZIP?

Para el instalador de mi plugin hice mi propio proyecto, metiendo los ficheros DLL del plugin comprimidos en CAB como resources en Visual Studio. Después los descomprimo y copio utilizando la API de cabinet.dll que está en todos los sistemas Windows. Calculo que el instalador ocupa unos 35KB de los 210KB totales del plugin. Lo podeis ver aqui: http://www.devalvr.com/install

Por cierto, creo que la gente está respondiendo la encuesta en Kbits y no Kbytes. Una cosa que poca gente sabe es que KB significa KBytes y Kb significa Kbits, lo digo porque yo me enteré tambien hace no mucho.

un saludo
www.videopanoramas.com Videopanoramas 3D player

Pogacha

 Yo ya tengo la jpeglib en mi framework, hice unas pruebas hace un tiempo y para dibujos como los del dylo lamentablemente reduce muy poco sin que se note la perdida ...  pero es sabido que para fotos o imagenes fotorealisticas (entiendase complicadas ) es la mejor  opción.

Saludos.

zupervaca

 He probado con archivos de texto plano y se comprimen que da gusto, ocupa menos comprimido con el rar un formato 3d en texto que en binario.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.