Working with MPQ archives can be tedious, adding support for loading assets from standard zip files would make adding and managing games assets easier. Possibly via physfs (by implementing MPQ support for it). This would would give us many of the same benefits as MPQ currently does, but be supported by a much wider range of tools.
Benifits to MPQ that should be mirrored in a zip based solution:
It easy for end users to check if they have all the right data (update/hash on file)
Easy to overwrite parts of it with local files
Easily reverting back to the original files (delete local files)
Compression (MPQ 1.0 with is all we support uses PKWARE)
Path separator handling (\ vs /)
Case insensitive paths
Note that, if implementing this via physfs, it would be beneficial to unify the MPQ code for accessing the game data and loading/creating/updating save games (which are also mpq archives).
@efedo I have created a task for adding ZIP support, hope this helps with getting an overview of the task. Feel free to ask questions if something isn't clear.
Working with MPQ archives can be tedious, adding support for loading assets from standard zip files would make adding and managing games assets easier. Possibly via physfs (by implementing MPQ support for it). This would would give us many of the same benefits as MPQ currently does, but be supported by a much wider range of tools.
Benifits to MPQ that should be mirrored in a zip based solution:
\
vs/
)Note that, if implementing this via physfs, it would be beneficial to unify the MPQ code for accessing the game data and loading/creating/updating save games (which are also mpq archives).
Originally posted by @AJenbo in https://github.com/diasurgical/devilutionX/issues/2488#issuecomment-902166784