Hello, in the Spanish forum I published things about ZIP, Silver Streak tells me that Gdevelop cannot read ZIP with events or others (only if I program a decompressor using JavaScripts and PiskSJ)
So can Gdevelp add events to create or read ZIP files?
I think that already covers everything possible that ZIP contains (I know it is very ambiguous and requires colossal work, so forgive those who are already making such progress)
Hi,
Can you explain why you want this feature, how you would use it, how other people might want to use it?
Cheers
The main function in ZIP is to compress tiles, sprite sheets and others to make the game lighter, but I want to see more… The example is:
I want to put animation (2 minute video or small animation using objects) and that in use I specifically want a lot of items or PC resources, and at the same time I want to load the game in the background to make “when the (video) ends, continue the game immediately”.
The normal method (I believe is…); I need a lot of options so that Gdevelop can “read” the video (mp4 or other file) and a lot of objects and events.
Experts perhaps that is difficult but it is possible.
Beginners or mediums I see in many publications (I use 10,000 objects and the animation or the game has lag or delay) and does not add videos…
So why do you need Gdevelop ZIP? To make the selection and distribution of game files (in memory, time and files) easier and more efficient.
But not everything is a happy story…
ZIP has clear advantages and disadvantages.
Advantages: Compressing files improves performance, transport, space, and is more private preventing your game from being “hacked” a little more.
Disadvantages: A reliable decompressor that does not give errors or another, if a part of the ZIP is corrupted it can damage the whole ZIP, JPG and MP3 are not very “efficient” to compress.
Taking all this into account, ZIP is one more tool available to the Gdevelop user and he must take into account the benefit/risk of using ZIP.
Something I want to highlight is the backups [ People complain that they lost Autosaves in Gdevelop and that is why it is recommended to have external backups ] If users of large games use this tool, both the game and the backups will see reduced its size.
Look up information about ZIP to answer, and look at the posts to think “where can ZIP help?” Thanks for reading me.
As a general heads up, it is up to you as the requestor to actually present how this feature would benefit you or help the engine, you shouldn’t be directing others to do research on your behalf. Please refer to the stickied post on what is normally required to on feature requests: ⭐ Welcome to the User Feedback channel!
To speak to some of the items in your post:
-
There appears to be some confusion here. Using compressed files does not improve performance. Compressing files only helps with reduction of file size, and only in some cases. In many cases, such as video files and some audio files, their formats are already compressed and putting them into a zip file will not further reduce their size noticeably.
-
Using compressed files will in fact reduce performance, because in order for the files to be used, they either need to be decompressed beforehand (leading to long load times) or decompressed on the fly (leading to heavily increased CPU usage)
-
If the files are using zip or zip compression, there is no additional protection against being hacked. Zip compression is an exceptionally well document and known format, and does not provide any type of encryption for your game.
-
As a side note, games that you’ve built/compiled to exe will already have all of your resource files bundled into a single .asar file, which is an electron bundle file. So even if you have thousands of image, audio, and video resources in your project, you’ll still only have the one resource file once built.
I see that I am wrong. I knew that unzipping a ZIP file in real time has a performance cost, but I thought it was less costly than having objects loaded or stored in the background.
Even so, thanks for taking the trouble to answer me with detailed explanations so that I understand it, and thanks for the example at the end, I’ll keep it in mind.