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


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

19122Критическая уязвимость CVE-2026-24858 открывает хакерам доступ к системам Fortinet через... 19121Подтверждает ли анализ 669 миллионов галактик стандартную модель космологии? 19120Робот EMO с силиконовым лицом преодолел эффект зловещей долины благодаря новой модели... 19119Как новые «строгие настройки аккаунта» в WhatsApp защитят журналистов и публичных лиц от... 19118Как новые связанные с Пакистаном киберкампании используют GitHub и Google Sheets против... 19117Новая киберкампания Amatera: гибрид социальной инженерии ClickFix и легитимного скрипта... 19116Находка составных орудий в сигоу опровергает миф об отсталости древних технологий... 19115Объективное мастерство как единственное лекарство от эгоизма и несчастья 19114Могло ли подводное землетрясение спровоцировать паническое бегство морских черепах 79... 19113Почему именно в октябре тигровые акулы чаще всего нападают на людей у берегов Гавайев? 19112Стратегия CTEM: эволюция от поиска уязвимостей к непрерывному управлению реальными... 19111Древнее озеро с кругами на полях скрывается в тени двугорбой горы саудовской Аравии 19110Способен ли новый светоактивируемый пластырь заменить болезненные инъекции гормонов при... 19109Критическая уязвимость Cellbreak открывает доступ к RCE в Grist-Core через табличные... 19108Почему необходимо срочно устранить уязвимость нулевого дня CVE-2026-21509 в Microsoft...