Подтвердить что ты не робот

Как я могу узнать безумное искусство 4K демокодирования?

Мне очень нравится демосцена, особенно те небольшие 4K exefiles. У них нет зависимостей, кроме файлов, уже найденных в окнах, и они демонстрируют потрясающую силу программирования: 3D-графика + звук, все в 4K.

Как это возможно? Какой язык они используют? Каковы инструменты торговли, передовой практики и важных веб-сайтов?

Примечание: пожалуйста, ответьте только, если вы знаете, о чем говорите, бесполезные ответы, такие как "um, я думаю, они используют asm", будут опущены. (это не против asm, asm отлично)

4b9b3361

Ответ 1

алгоритмы сжатия, очевидно, сильно отличаются, как и короткие механизмы для индексирования больших объемов данных и глубокое знание доступных библиотек в целевой системе. (Этот материал можно просто связать.)

Если бы я был вами, я бы начал обратное проектирование ваших любимых демонстраций 4k; возможно, начиная с 7-10 лет назад, и работать вперед, чтобы следовать современному уровню развития. Анализ вывода вашего компилятора также является хорошим местом для запуска, хотя они, как правило, оптимизируются для скорости, а не для пространства.

Методы встроенного программирования также могут быть полезны, учитывая ограничения, на которых они работают регулярно.

Ответ 2

Тем временем я нашел отличный сайт, посвященный кодированию 4K:

IN4K

Ответ 3

Inigo Quilez содержит несколько примеров вложений 1K и 4K. Вы можете многому научиться у них. Посмотрите и на его другие статьи.

Интересно также статья о Tiny PE Александра Сотирова.

Ответ 4

Возможно, не совсем то, что вы ищете, но в том же духе: Есть несколько конкурсов Java 4k. Цель состоит в том, чтобы создать демонстрационную версию Java или даже игру (!), Которая полностью вписывается в один JAR максимум 4096 байт.

См., например,

http://www.mojang.com/notch/j4k/l4kd/

или

http://javaunlimited.net/contests/java4k.php

Можно утверждать, что Java делает это намного проще (поскольку вы можете использовать всю рабочую среду), но он по-прежнему впечатляет (и вы кросс-платформенный и не нуждаетесь в изучении ассемблера;)).