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


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

20959Что известно о предупреждении mSecure и какие меры принять? 20957Что делать администраторам cPGuard после взлома канала обновлений? 20956Бэкдор в телевизоре: как Google остановила сеть из 1,3 млн Android-устройств 20955Кто может получить доступ к кошелькам через плагин CryptoPayment Gateway? 20954Критическая уязвимость Siemens IoT2050 открыла путь к удалённым командам 20953Взлом Chainstack: под угрозой оказались данные клиентов и хеши паролей 20952Четыре проверки, которые помогают найти уязвимости с реальным риском 20951Две уязвимости Barracuda открывают путь к root-доступу 20950Почему устаревшие Synology NAS снова оказались мишенью вымогателей? 20949Старая техника Apple получила заплатку для опасной уязвимости 20948Как три уязвимости открыли ShinyHunters путь к серверам PeopleSoft? 20947Может ли ИИ сам собрать уязвимости в работающий взлом? 20946Уязвимость CVSS 10.0 в LXD и MicroCloud позволяет выдать себя за доверенного клиента 20945Google разрешит устанавливать приложения из сторонних магазинов одним нажатием
Ссылка