Reduce the bundle size

Hey everyone,
I try to create a bundle HTML5 for an web plateform.
The problem is that my initial download is so heavy. (he advises - 15Mb) .
image

How reduce the size of file ?
I’ve heard an lazy/progressive loading, but i don’t know how use.


Are you using texture compression?
Have you stripped unused functionality from the engine? (See Defold App Manifest generator)

Edit: I see it’s mostly the fmod sound banks taking up space? Not sure what setting fmod provides?

4 Likes

Ok, I lost 2kb with app manifest.


image

I’m going to discover compression texture on Defold and research with fmod.


And i’ve this, but I don’t know what it can do for me.

Have you used an app manifest before?
2kb frankly seems a little small, after removing the two physics engines :thinking:

That show that you have large textures. Either look into texture compression, and/or making your textures smaller.


I never use app manifest.

I try to compress image.

What size screen you recommended for mobile and HTML5 ?
For the moment I’m in 1280x720.

But did you add it to game.project in the Native Extension section?

1 Like

Yes, he’s in my game project.

Strange. Like @JCash wrote I too would have expected the size to be reduced more when you removed the physics engines.

:expressionless: :expressionless:
I wish it had been reduce the size.
I try to reduce the size image.

Start with the texture compression first!

What you recommended tinyjpg, in Defold or other ?

No, we unpack the images anyways when we create the atlas texture.

What I’m referring to is the use of GPU texture compression.
You configure it using texture profiles.
Use the UASTC compression type, and set up rules for your RGB/RGBA textures accordingly.

1 Like

Ok, i’ve made this, but i don’t see of big difference.


When you open your atlas in the editor, you should see which texture profile it’s using?
It should be displayed at the top left of the viewport.

Here I have mapped the paths like so:

path_settings {
  path: "/level_1/**/*_rgb.atlas"
  profile: "Basis_RGB"
}

And I have a profile called Basis_RGB:

profiles {
  name: "Basis_RGB"
  platforms {
    os: OS_ID_GENERIC
    formats {
      format: TEXTURE_FORMAT_RGB
      compression_level: FAST
      compression_type: COMPRESSION_TYPE_BASIS_UASTC
    }
    mipmaps: true
    max_texture_size: 0
    premultiply_alpha: true
  }
}

ANd, in my project, when opening an atlas under my “level1” folder, with the ending “_rgb.atlas”, it gets properly mapped:

Also note that often it’s enough to use the same settings on all platforms (i.e. using OS_ID_GENERIC).

6 Likes