Minecraft в QR-коде: вызов программированию

Уместить игру Minecraft в один QR-код оказалось возможным благодаря кропотливой работе и использованию нестандартных подходов. Изначальная Java-версия Minecraft4k, выпущенная в 2009 году, весила 2581 байт, но требовала Java Applets, что ограничивало её использование. Современная реализация размером всего 2952 байта умещается в QR-коде максимальной версии и запускается под Linux.
Minecraft в QR-коде: вызов программированию
Изображение носит иллюстративный характер

Процесс разработки включал обратную разработку оригинальной Java-версии, портирование на C++, а затем на C. Использовались различные техники, такие как генерация текстур на основе алгоритмов, маршевый метод трассировки лучей и оптимизация кода, для сокращения размера. Для дополнительного уменьшения размера применялись сжатие gzip, ShaderMinifier, удаление отладочной информации и нестандартное использование функции _start. Кроме того, были реализованы собственные функции sin и cos, а также загрузка функций OpenGL через dlopen и dlsym.

Финальное уменьшение размера было достигнуто за счет обрезки неиспользуемых секций ELF, сжатия констант с плавающей точкой и удаления некоторых графических элементов, например, теней под травой. Эта работа демонстрирует, что можно преодолеть ограничения в размере, сочетая знания архитектуры процессоров и необычные подходы к программированию.


Новое на сайте

19180Почему операционная непрерывность становится единственным ответом на перманентную... 19179Критические уязвимости в популярных расширениях VS Code угрожают миллионам разработчиков 19178Как внедрить интеллектуальные рабочие процессы и почему 88% проектов ИИ терпят неудачу? 19177Критическая уязвимость нулевого дня в Dell RecoverPoint открывает злоумышленникам полный... 19176Notepad++ внедряет механизм двойной блокировки для защиты от атак группировки Lotus Panda 19175Новые угрозы в каталоге CISA: от критических дыр в Chrome и Zimbra до возвращения червя... 19174Использование чат-ботов Copilot и Grok в качестве скрытых прокси-серверов для управления... 19173Троянизированный сервер Oura MCP атакует разработчиков через поддельные репозитории GitHub 19172Способен ли искусственный интеллект заменить интуицию Уоррена Баффета в биологической... 19171Вредоносное по VoidLink: созданная с помощью ИИ угроза для облачных систем и финансового... 19170Палеонтологические поиски и научные убеждения Томаса Джефферсона 19169Спасут ли обновленные протоколы безопасности npm от атак на цепочки поставок? 19168Почему критическая уязвимость BeyondTrust и новые записи в каталоге CISA требуют... 19167Севернокорейская хакерская группировка Lazarus маскирует вредоносный код под тестовые... 19166Государственные хакеры используют Google Gemini для кибершпионажа и клонирования моделей...
Ссылка