Ssylka

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, сжатия констант с плавающей точкой и удаления некоторых графических элементов, например, теней под травой. Эта работа демонстрирует, что можно преодолеть ограничения в размере, сочетая знания архитектуры процессоров и необычные подходы к программированию.


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

18742Почему непропатченная уязвимость нулевого дня в Gogs привела к взлому сотен серверов... 18741Научные факты о зимнем солнцестоянии 2025 года и астрономические границы сезонов 18740Защищен ли ваш браузер от новой активно эксплуатируемой уязвимости в Google Chrome? 18739Чем грозит использование жестко закодированных ключей в решениях Gladinet? 18738Чем угрожает глобальная кампания React2Shell сотням тысяч серверов на базе React? 18737Как мозаика из Кеттона раскрыла сюжет утерянной трагедии Эсхила вопреки версии Гомера? 18736Нейробиология повседневных ритуалов: как осознанные действия программируют мозг на... 18735Почему обнаруженные уязвимости шифрования PCIe 5.0+ угрожают целостности данных в... 18734Действительно ли вал Адриана был безлюдным военным рубежом 18733Как злоумышленники обходят защиту AWS, AI и Kubernetes через скрытые настройки... 18732Как пересадка почки от донора, поцарапанного скунсом, привела к фатальному случаю... 18731Какие 17 гаджетов и аксессуаров гарантированно повысят эффективность тренировок в новом... 18730Microsoft исправляет критический эксплойт нулевого дня и уязвимости искусственного... 18729Срочные обновления безопасности от Fortinet, Ivanti и SAP устраняют критические уязвимости 18728Смертельный танец звезд в системе V Sagittae завершится ослепительным ядерным взрывом