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

Pack overlays support #254

Open
AlexTMjugador opened this issue Sep 26, 2023 · 0 comments
Open

Pack overlays support #254

AlexTMjugador opened this issue Sep 26, 2023 · 0 comments
Labels
bug Something isn't working help wanted Extra attention is needed
Projects

Comments

@AlexTMjugador
Copy link
Member

AlexTMjugador commented Sep 26, 2023

Distribution

N/A (the distribution does not matter; please explain why if it's not obvious)

Bug description

Minecraft 1.20.2 has introduced a new overlay feature for resource and data packs. This feature allows authors to distribute a single pack that works across different versions of Minecraft without compatibility issues, by instructing the game to use a set of the pack files from one or more overlays as appropriate.

I was unaware of this new feature until several Discord users reported it after the 1.20.2 release (thanks for the heads up!), in the context of PackSquash omitting overlay directories because it was not designed with them in mind, and thus breaking their packs.

PackSquash should never break packs, especially considering how fatal this circumstance can be to packs that use overlays, and how quickly users reacted to it. I think pushing a new release with overlay support as soon as possible is warranted.

However, PackSquash is built on the assumption that a pack targets a single version of Minecraft, which is a necessary piece of information to determine which assets to optimize and what optimizations and protection techniques are possible. PackSquash couldn't offer the features it currently does without collecting some accurate metadata about the pack it's dealing with, or bothering the user with additional specific options that have proven time and time again to already have a learning curve. So PackSquash needs to be changed to work with overlays, and that change means reconsidering its internal design, which will take some time.

Reproduction steps

  1. Run PackSquash on a pack that uses overlays.
  2. Observe that the result pack omits overlays entirely, potentially breaking it.

Expected behavior

PackSquash should not break packs and deal with overlays just fine.

Additional context

As workarounds until PackSquash supports pack overlays, users can:

  • Consider not using this new feature, and instead rely on ad-hoc tools to create different versions of a pack for different versions of the game. While this approach has a significant upfront cost, it's my understanding that several established resource pack projects use it, and it's likely that they will continue to use it, because it allows them to distribute a leaner pack to end users with only the content that their version of Minecraft will actually use, in line with the size optimization goals that PackSquash is designed to help implement. Overlays don't simplify the QA process for a pack that targets different Minecraft versions, which is likely to have more significant recurrent costs than dedicated tooling.
  • Use the force_include file-specific option to include overlay directories, at the cost of giving up on optimizations specific to file formats.

To help with the implementation of a lasting solution to this situation, it is possible to:

  • Set up an automated and curated feed of Minecraft changes to packs that's convenient for developers to check, and includes snapshots. Frankly, it's disappointing to find out about breaking changes after an update has been released, when it's a little late and users may expect things to just work. Such a feed would allow development work to begin earlier, minimizing disruption when final Minecraft releases are made.
  • Collaborate with the project to test packs that use overlays once candidate implementations are made, share ideas on how to implement the necessary support, submit a PR with the necessary support, etc. There have always been many ways for to can contribute to PackSquash, and I have always welcomed contributions. Don't be shy, and feel free to join our Discord server if you are interested! 😉
@AlexTMjugador AlexTMjugador added the bug Something isn't working label Sep 26, 2023
@AlexTMjugador AlexTMjugador added this to the PackSquash v0.4.1 milestone Sep 26, 2023
@AlexTMjugador AlexTMjugador pinned this issue Sep 26, 2023
@AlexTMjugador AlexTMjugador added this to Next release backlog in Roadmap Sep 26, 2023
@AlexTMjugador AlexTMjugador added the help wanted Extra attention is needed label Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
Roadmap
Next release backlog
Development

No branches or pull requests

1 participant