Navigation

Multi and Compressed Texture Support

Published on 5th August 2016

image

There is no new Development Progress report this week, because both myself and Felipe are taking a well earned rest. Below is the report from last week included again, because it's really important in case you missed it. If you've read it already, sorry about that; here's a Dilbert cartoon on Agile Programming for you :)

The Previous Update

Easily the biggest thing to happen to Phaser this week (or indeed, ever) is that we've landed multi-texturing support into the dev branch.

I wrote a detailed article about what multi-texturing is, how it will benefit your games, and how to implement it. So I'd absolutely recommend you read it, and test out the dev build if you can. This feature will land in Phaser 2.7.0 final, along with WebGL tilemaps.

Compressed Texture Support

We've been hard at work implementing support for compressed textures. The first iteration of this has landed in the texture-compression-webgl branch on GitHub. This will allow you to use PVRTC, DDS, ETC1 and S3TC texture formats.

Using compressed textures allows the GPU to decode, and access, the texture data much faster than traditional image compression schemes such as JPEG. iOS devices in particular benefit greatly from using PowerVR Texture Compression (PVRTC). The resulting textures take up less memory than their traditional counterparts, and when it comes to iOS, every bit of memory helps!

It's also possible to achieve better compression rates in some cases. Lots of popular tools support export compressed textures, including the invaluable Texture Packer.

The Phaser Loader will be adapted to support multiple formats. For example you'll be able to load an image, or an atlas, and provide an object of texture formats. The first one Phaser comes across that the GPU supports will be the one loaded, falling back to good-old PNG / JPG if needed. Internally it will then parse the compressed texture, extract the data needed from it, and set it up so that WebGL can use it. All you will need to worry about is providing the files and slightly tweaking your loader calls, everything else happens behind the scenes.

This, along with multi-texturing, and WebGL tilemaps, are fundamental features in my mind, and I'm really excited to see them in Phaser. We've a few more core updates coming, which I'll talk more about next issue. Until then, keep your eye on the dev branch, because things are getting hot around here!