Регистрация
PackSquash

Создавайте больше. Меньше беспокойтесь о тонкостях распространения и хранения.

Скачать последнюю версию (v.0.4.0)

Оптимизатор ресурсов и наборов данных, который направлен на достижение наилучшего возможного сжатия, производительности и защиты, улучшая распределение пакетов, хранение и время загрузки в игре. Неофициальные данные показывают, что с параметрами по умолчанию версия v0.2.1 смогла уменьшить размер ZIP-файла Witchcraft & Wizardary от Floo Network (версия 1.6.2) со 118 МБ до 57 Мб, что на 51,69% меньше, и по времени загрузки он стал лучше.

Обзор 🔎 
PackSquash просматривает файлы наборов, которые он распознает в каталоге, применяет для каждого файла настраиваемые методы сжатия с потерями и без потерь и создает ZIP-файл, который может быть непосредственно использован игрой. В настоящее время PackSquash может применять следующие конкретные методы:

  • Для изображений в формате PNG: квантование цвета для создания цветовой палитры, битовая глубина без потерь, сжатие и уменьшение цветотипа, удаление метаданных и уменьшение размера одноцветных текстур. Квантование, хотя оно довольно тонкое или даже ненужное для обычных размеров текстур, может быть отключено, если требуется качество без потерь. Уменьшение размера также можно отключить. Некоторые из этих оптимизаций выполняются с помощью хорошо известных библиотек imagequant (используется в pngquant) и oxipng.
  • Для файлов Ogg (.ogg и .oga), MP3, M4A, FLAC и WAV: микширование каналов, понижающая дискретизация, перекодирование с помощью современного кодера Vorbis, изменение высоты тона, удаление тегов, а также двухпроходная оптимизация и проверка с помощью OptiVorbis. Настройки по умолчанию должны быть достаточно хороши для внутриигровой музыки, чтобы большинство слушателей подумали, что качество хорошее и не отвлекает. Поскольку микширование каналов может изменить способ вычисления позиционных эффектов звуковым движком Minecraft (см. MC-146721), PackSquash не будет делать этого по умолчанию.
  • Для файлов JSON (.json, .jsonc, .mcmeta и .mcmetac; если включена поддержка OptiFine mod, также .jem, .jemc, .jpm и .jpmc): минимизация путем удаления ненужных пробелов. В качестве дополнительного бонуса, поскольку для минимизации сначала требуется синтаксический анализ, PackSquash также действует как строгий валидатор JSON-файлов. Комментарии - единственное допустимое расширение синтаксиса, и по умолчанию они отбрасываются, хотя они также могут быть отклонены в файлах, расширение которых не заканчивается буквой “c”. Выполненная проверка не выявляет все возможные ошибки, которые могут сбить с толку Minecraft.
  • Для шейдерных файлов (.vsh, .fsh и .glsl): минимизация путем удаления ненужных пробелов, а также разрешение и расширение директив препроцессора. Как и в случае с файлами JSON, PackSquash выполнит для них базовую проверку. Пожалуйста, обратите внимание, что из-за ограничений в текущем дизайне PackSquash некоторые шейдеры могут потребовать настройки. Эти ограничения будут устранены в будущем.
  • Для устаревших языковых файлов (.lang; используется в Minecraft 1.12.2 и более поздних версиях): минимизация, удаление пустых строк и комментариев. Повторяющиеся ключи и непустые строки, которые не являются комментариями и не содержат разделителя ключ-значение, рассматриваются как ошибки, что помогает выявлять ошибки и поддерживать порядок в ваших файлах.
  • Для файлов свойств OptiFine (Java .properties; только если включена поддержка OptiFine mod): минимизация путем удаления ненужных пробелов. Как и в случае с файлами JSON, для выполнения минимизации требуется синтаксический анализ файла, поэтому PackSquash покажет основные ошибки проверки.
  • Для файлов моделей BlockBench (.bbmodel; только если включена поддержка Minecraft Transit Railway 3): минимизация путем удаления ненужных пробелов и ключей. Минимизация также может улучшить конфиденциальность, поскольку удаляются некоторые ключи, содержащие метаданные, относящиеся к конкретной среде.

В дополнение к этим методам файлы, которые еще не сжаты по замыслу (а именно, файлы Ogg и PNG), сжимаются без потерь с использованием алгоритма Zopfli, который представляет собой современный ДЕФЛЯЦИОННЫЙ кодировщик, созданный Google. Он настроен на очень высокую экономию места за счет производительности и при этом совместим со всеми декодерами DEFLATE. Для еще большей экономии можно сжимать уже сжатые файлы и увеличивать количество итераций сжатия, хотя это значительно замедляет процесс. И наоборот, если допустима меньшая экономия в обмен на более быстрое выполнение, можно уменьшить количество итераций сжатия или вообще пропустить его.

PackSquash также способен выполнять следующие действия, хотя по умолчанию они отключены, поскольку требуют принятия пользователем обоснованных решений:

  • Повторное использование ранее сгенерированных ZIP-файлов позволяет пропустить сжатие файлов, которые не изменялись между выполнениями, что значительно ускоряет его для инкрементных рабочих процессов, где каждый раз меняется всего несколько файлов.
  • Дедупликация идентичных файлов в сгенерированном ZIP-файле: содержимое файлов, повторяющихся несколько раз, будет сохранено только один раз.
  • Защита сгенерированных ZIP-файлов, затрудняющая их чтение большинством программ для манипулирования ZIP.

🔗 Загрузка и использование

PackSquash - это приложение командной строки, распространяемое для множества операционных систем и сред. Ознакомьтесь с руководством по началу работы для получения подробной информации о том, как начать свое путешествие с PackSquash.

В качестве альтернативы, вас могут заинтересовать сторонние интерфейсы для PackSquash, такие как:

Quiver, создатель и менеджер наборов ресурсов. На момент написания статьи Quiver использует более старую, неподдерживаемую версию PackSquash, поэтому она может не соответствовать опыту работы с текущими версиями. Если у вас есть время, желание и ноу-хау, возможно, вы захотите помочь этому проекту обновить его интеграцию!

✉️ Контакты и поддержка

Как указано в лицензии, это программное обеспечение предоставляется без каких-либо гарантий, в надежде, что вы найдете его полезным. Но это не значит, что я не приветствую конструктивные отзывы, предложения, поздравления или помощь вам в использовании PackSquash (если я могу и хочу). Если вы хотите написать мне по какой-либо причине, связанной с PackSquash, вы можете связаться со мной в Discord: alextmjugador.

Вы также можете присоединиться к серверу Discord нашего сообщества Comunidad Aylas, на котором есть специальные места для общения в англоязычном чате PackSquash и поддержки, среди прочих тем. Не забудьте представиться!

Скачать с нашего сайта:

packsquash_cli_executable_aarch64-unknown-linux-musl.zip
packsquash_cli_executable_universal-apple-darwin.zip
packsquash_cli_executable_x86_64-unknown-linux-musl.zip
packsquash_cli_executable_x86_64-pc-windows-gnu.zip
Исходный код - packsquash-0_4_0.zip