Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.dmanifest can be smaller size? #8947

Open
d954mas opened this issue May 18, 2024 · 3 comments
Open

.dmanifest can be smaller size? #8947

d954mas opened this issue May 18, 2024 · 3 comments
Labels
bob Issues related to the bob command line build tool feature request A suggestion for a new feature pipeline Issue related to the asset build pipeline

Comments

@d954mas
Copy link
Contributor

d954mas commented May 18, 2024

Is your feature request related to a problem? Please describe (REQUIRED):
I am looking in size for my new game. This is web game so size is matter.

I found that .dmanifest is 54kb in size(gzip)
Mb it can be smaller.

2024-05-18_10-39-10

Is dmanifest need string with path to resources?
For what it used? To show error with path when resources can't be loaded?

I think in engine and resources you use hashes not strings?

��»ö*X�w�mi¶kß�@øU�Û��#/_generated_47ba238dd02461b8.soundc�ÖÛÌ·´·ùû� 8(ÿÿÿÿ�0��N
�
�«�·Žrp2&<Ž�ô	�„Ñe-ÖT�$/_generated_aeef058129d8c346.spritec�ÆàÔÓÔ‹Éß� r(j0	�P
�
�û�£›�ìß*r�ÓI�¦ ù)g¯q�"/_generated_13f0f1288f3b5fc.soundc�›ìˆâ§Áìì� 8(ÿÿÿÿ�0��O
�
��Bø•K�):¶ÞA³#O�Ïz	Æ&�%/_generated_1363199caf0babca.factoryc�÷ŸžóÎáú‹� .(*0	�O
�
�gåÓ²Sljòƒ)O´”êL¿]�+��%/_generated_a417b774e336ada2.factoryc��üâ�œåܤ� /(+0	�]
�
�×…dkdÇíøÓÉÃÊ*‰Yº¶˜<†�//_generated_2ff3867a4d3de219.collectionfactoryc�¯Šþ‰Óå«°

game0.dmanifest.txt

Describe the solution you'd like (REQUIRED):
if string is not needed it can be removed.

If it need for some cases, mb it can be replaced with "unknown"? With special flag in game.project, for example strip_dmanifest?

If you look in .dmanifest file you can see that about half of the file is string with path.
So mb it can save about 25kb for web game.

It is small value, but make game smaller and load,start faster

Describe alternatives you've considered (REQUIRED):

Additional context (OPTIONAL):
Add any other context or screenshots about the feature request here.

@d954mas d954mas added the feature request A suggestion for a new feature label May 18, 2024
@britzl
Copy link
Contributor

britzl commented May 18, 2024

@d954mas
Copy link
Contributor Author

d954mas commented May 18, 2024

"The manifest file is mainly used for Live Update content on the platforms that support this feature. Each entry in the manifest may have a list of dependants, which is a list of url hashes. The dependants refer to which oother files are required to be loaded in order for the resource itself to be loaded"

This is struct for ArchiveEntry

* An entry that is produced for each resource that is part of the manifest.

In struct i see
required string url = 2;

1)My question is this string url is necessary to be in build?

I tryed to remove strings but it change size of file so file can't be parsed.

But when i replaced part of some names to my values. "blender_location" to "aaaaaaaaaaaaaaaa" the game is correctly load and worked.

2024-05-18.13-35-55.mp4

2)So for example. What happened if replace actual url with empty string?

@britzl britzl added bob Issues related to the bob command line build tool pipeline Issue related to the asset build pipeline labels May 20, 2024
@JCash
Copy link
Contributor

JCash commented May 20, 2024

As you say, there are probably many opportunities to slim down the .dmanifest nowadays.
As you suggested, the paths may not actually be needed for running, and as the liveupdate archive verification is now on the developer, we should also be able to remove the cryptographics hashes.

So two use cases, with two variants:

  • No liveupdate
    • Development
    • Release
  • Liveupdate
    • Development
    • Release

I think it may be useful to keep some strings in development mode, for debugging (e.g. profiling resources).

It's also useful to remember that for certain cases, we might need a dmanifest at all. Before liveupdate, we only used game.arci (the index). So there should definitely be avenues forward here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bob Issues related to the bob command line build tool feature request A suggestion for a new feature pipeline Issue related to the asset build pipeline
Projects
None yet
Development

No branches or pull requests

3 participants