Программирование как искусство:демосцена
Многие слышали это понятие, но так до конца и не поняли, что же это такое. Настало время свести начало с концом и рассказать народу, что это психологический клип с отменной графикой, великолепной электронной музыкой и блестящим сюжетом
Главное достоинство демо-сцены — ее размере.Но все же в последнее время пошло другое течение демо-сцены — мега-демо. Как правило, они весят достаточно "много" и к компьютеру, соответственно, предъявляют более жесткие требования.
История
Демомейкерство появилось давно, еще во времена ZX Spectrum’а.С развитием техники демомейкерство также улучшалось. С развитием Интернета и появлением Open-source проектов (проекты, принять участие в которых может любой желающий) началось более интенсивное развитие демо-сцены. Люди начали собираться в кучки и творить свое, никем не превзойденное. Да, да именно в кучки, одному демку никак не создать, но о процессе создания позже. Сейчас же демомейкерство процветает, людям это нравится, и они готовы это создавать или, в крайнем случае, платить. Сейчас демо-сцену можно разделить на 2 основные группы — классическое демо и мега-демо, и о каждом подробнее
Классическое демо
Это, как правило, демки, идущие на любой машине и весящие не более 1024 Кб (1 Мб). Далее классическое демо делится на следующие категории:
-4 килобайта —хорошая графика, отличная музыка и блестящая режиссура, почти у всех.Хотя режиссура на соревнованиях и прощается. Да, да, демомейкеры устраивают соревнования между собой, уже существуют и российские слеты (Millennium demoparty, Paradox и другие)
-16 килобайт — эти демки уже круче своих предшественников, у них обязательно существуют сюжет и графика покрасивше, и музыка помузычнее.
-64 — 1024 килобайта — это уже супер-демо, просто великолепие какое-то, аж дух захватывает
Мега-демо
Сейчас это наиболее развивающееся движение демомейкерства, оно и очевидно — намного легче сделать более качественную демку, не уложившись в 1024 килобайта. Да и с музыкой намного проще, зачем осваивать какой-то новый редактор, с ничтожным количеством семплов (заготовок), когда есть старый, добрый… Да и графику можно поднаворотить, наставить всевозможных взрывов, метаморфоз, посторонних предметов, неизвестно как попавших в кадр, трейлеров (профессиональные подписи демомейкеров) и прочей информации о создателях, да вообще любую, иногда полезную, информацию
Как это делается?
Все генерируется на лету, то есть музыка и видео не записаны, а создаются в процессе просмотра демки по каким-то чудовищным алгоритмам! Это в общих чертах, но все же я расскажу поподробнее о каждом аспекте создания демок.
Начнем с графики. Графика в играх представлена в стандартном виде, то есть созданы определенные модели, и они перемещаются так, как указал разработчик. В демо-сцене все по-другому. Все модели состоят из примитивных объектов — сферы, цилиндра, куба, тетраэдра и прочих. В общем, вся программа состоит из указаний для своеобразного интерпретатора, где ставить куб, где цилиндр, а где и пирамиду. В общем, демомейкер пишет маленькую программку, которая из сочетаний типа sph (сфера), cub (куб), ставит в указанное место нужные объекты. Итог: сам файл с объектами занимает около 1 Кб, плюс программа-распаковщик 1 Кб — получается 2 килобайта. Так же дело обстоит и с траекторией, и цветом (очень редко) незначительных объектов. С перемещением вообще никогда не возникает проблем, демомейкер просто задает другие координаты. А как же текстуры, спросите вы? А я отвечу: они также генерируются на лету, по векторному представлению. Вот с цветом иногда случаются чудесные превращения (особенно в крохотных демках, весом менее 64 Кб) — у многих маленьких второстепенных объектов при разных запусках меняются цвета. Предположим, в первый раз у той третьей маленькой сферы, в нижнем левом углу, в пятом ряду снизу, был цвет красный, а при втором запуске эта сфера уже зеленого цвета.
Музыка. Ну здесь довольно просто, здесь алгоритм, как у midi. То есть здесь существуют звуки повторяющиеся и образующие. Так что не удивительно, что музыка во многих демках похожа. Наконец, когда приходит время все сделанное собрать в одну-единственную и очень красивую кучку, приходят на помощь кодеры. Их единственная задача — написание подпрограмм-обработчиков всего того, что сотворили художники и композиторы, а также — компактное пакование получившейся программы. Да, именно пакование. Несмотря на то, что получившаяся демка и так миниатюрна, она все же может не вписываться в жесткие рамки демомейкерства. О том, чтобы запаковать демку каким-нибудь WinRAR’ом, и речи быть не может
Демки взвешиваются только в распакованном виде, да и каким бы современным архиватором вы бы ни пользовались, все равно он не подойдет для данной задачи. И что же делать? — спросите вы. Использовать специальные программы-паковщики, отвечу я. Самые распространенные из них — USP и ASPpack. В редких случаях демомейкеры используют свои собственные паковщики, но чаще они просто адаптируют под свои задачи известные паковщики
Почему же никто из разработчиков игр и программного обеспечения не делает так, как это делают демомейкеры? Ответ может разделиться на две части:
1) демо-сцена немного хаотична.Поэтому иногда при просмотре демок мы видим ничем не связанные эпизоды. А софт и игры должны быть правильными, размеренными и продуманными.
2) и наверное, самый простой ответ — зачем оптимизировать программу и игру, когда на среднестатистическом компьютере игра (программа) будет работать со скоростью звука. А если и не будет, то потребитель срочно побежит в магазин за новыми железяками.
64 KB
Offscreen Colonies by Conspiracy
The Timeless by Mercury
Chaos Theory by Conspiracy
4KB
64 кб - это действительно очень мало. Но это уж точно не минимальный размер для демосцен. Ниже приведены четырехкилобайтные работы. Для примера, 4KB - это около четверти секунды mp3-песни! Про видео я вообще молчу. И в этот размер помещаются полноценные ролики и музыка! И, хотя уже очень сильно чувствуются процедурная генерация, это не мешает делать уникальный визуальный ряд в каждом демо.
Coacervate Complex by 0x4015
cdak by Quite & orange
Receptor by TBC
1 KB и меньше!
Энтузиасты всегда будут заходить дальше. В целом, это не то, чтобы неполноценные демосцены, но эстетическое удовольствие от них получить уже тяжело. Однако, вы можете посмотреть, что можно сделать с помощью кода, скомпилированного в 1 кб и меньше!
1 KB - Untraceable by TBC
256 byte - Symetrie
128 byte - spongy by TBC
Демосцена это направление компьютерного искусства, главной особенностью которого является выстраивание видеоряда с музыкальным сопровождением, выводимых компьютером в реальном времени. Симбиоз программирования и искусства!
Источники: пост "Demoscenes" автора direBCG,на pikabu.ru
статья "Демо сцена" Макса Зубенко,на infocom.uz
8 комментариев
6 лет назад
Удалить комментарий?
Удалить Отмена5 лет назад
"Почему же никто из разработчиков игр и программного обеспечения не делает так, как это делают демомейкеры? Ответ может разделиться на две части"
В первую очередь проекты демосцены это эксперименты, которые уже в оптимизированном виде применяются не только в играх, но и в разработке оборудования. В том числе это эксперименты для разработки будущих видеокарт. Вообще демосцена это огромный фундамент IT индустрии. Но поскольку в русскоязычных странах все IT сперто, то и основы, и понятия у нас никакой, как демосцена, нету.
Тем не менее это неотъемлемая часть индустрии, которую у нас заменило подобие совка (не совок, а его глупое и убогое подобие). Поэтому все кому не лень у нас пишут такие упоротые статьи.
Удалить комментарий?
Удалить Отмена6 лет назад
Удалить комментарий?
Удалить Отмена