avatar
1 год назад

Демосцена: что это, и чем интересно?

Если вкратце, то демосцена - это такая штука, которая сочетает в себе программирование и искусство. Программы, которые в реальном времени демонстрируют какой-нибудь красивый визуальный ряд. Отличает их от обычных 3D приложений умение исхитриться и находить необычные решения. Раздвинуть, кхм, границы возможностей компьютера, уменьшить размер программы, и при этом создавать впечатляющий видеоряд. Почти всегда демки используют все возможности компьютера, и работают только на топовом железе.

Одна из самых известных 96-килобайтных игр .kkrieger является примером продукта демосцены.

Демосцена появилась в 1980-х, с появлением домашних компьютеров вроде ZX Spectrum, Amiga, Commodore. Эти компьютеры уже позволяли работу с достаточно сложной (на тот момент) графикой.

Amiga Commodore позволял даже редактировать видео


И на них тоже существовало пиратство. Варез-группы (warez, немного переделанное softwares) добавляли своё интро (cracktro, от слов crack и intro) ко взломанным играм. Эти интро содержали в себе какое-нибудь визуально впечатляющее приветствие, описание релиза, послания и т.д.

Пример cracktro для Amiga
Часовая компиляция cracktro

Интересный факт: как минимум две популярные в нулевых варез-группы появились уже тогда - Razor 1911 (1985) и SKIDROW (1990).

Вообще, в таких варез-группах было разделение обязанностей. Кто-то занимался непосредственно взломом, кто-то занимался такими вот интро, кто-то занимался связями с общественностью (содержал BBS, срался с другими варез-группами).

Потом такие красивые визуальные штуки начали создаваться отдельно.

Spaceballs - State of the Art - Amiga Demo
Spaceballs - 9 Fingers - Amiga Demo

Начались попытки выбраться за пределы технических характеристик компьютеров. У них было много ограничений. Ограничение на количество отображаемых цветов или на разрешение. У ZX Spectrum программам и играм были доступны не пиксели, а знакоместа.

Знакоместо в стандартном видеорежиме ZX Spectrum — блок размером 8 на 8 пикселей, в пределах которого может использоваться только два цвета (фона и тона). В памяти знакоместо занимает девять байт: 8 байт состояния точек, каждый бит определяет, включена или погашена соответствующая точка, и один байт атрибута знакоместа, определяющий цвета включённых и погашеных точек (8 атрибутов цвета, 1 атрибут яркости 1 атрибут мерцания).
Из ссылки выше

Это было заметно во всех играх. Динамические объекты окрашивались в цвета соседних объектов.

Contra для ZX Spectrum. В видео отчётливо видно перекрашивание объектов.

Ограничение (скорее всего) было связано с отсутствием отдельного графического чипа. Всем занимался центральный процессор.

Демка под названием Elysium State. По сравнению с типичными играми для этой платформы, это огромный прорыв.

Вообще, демки делали уже под все возможные платформы. Если я смогу найти видео, как демку запускали на процессоре для стиральной машины, то дополню статью. Но увы, я его где-то потерял.

Демка Bad Apple!!, запущенная на Sega Genesis
Sega Mega-Drive Scenedemo - Overdrive by TITAN

Потом появились демопати. Это мероприятия по созданию демок, совмещённые с конкурсами работ. Самая известная демопати - Assembly.

***

У демок есть разделения по размеру. И на демопати они соревнуются в своих категориях. Например, если демка весит 64 КБ - то она будет в категории 64k. Есть и многомегабайтные демки, но они не такие интересные в плане оптимизаций.

Многомегабайтная демка
А вот эта демка использует RTX
Демка всего на 4 КБ. Нет, ничего из интернета во время запуска не скачивается.

Почему бы не привнести оптимизации из демосцены в игровую индустрию? Было бы круто, если бы игры занимали очень мало места, да? Вообще-то нет. Графические ресурсы у демок зачастую генерируются процедурно (т.е. их не существует в готовом виде, они создаются заново при запуске программы). Да и такие техники оптимизации очень ресурсоёмкие. .kkrieger, например, может пожрать сотни мегабайт оперативной памяти.

Но! Из демосценеров образовались такие известные студии разработки игр, как Remedy, DICE, Techland, Starbreeze.

Dubmood, писавший музыку для демок и кряков, написал трек Richard для Hotline Miami 2. Йеспер Кюд тоже писал музыку для демок.

***

Демосцена жива и по сей день. Вряд ли они куда-нибудь исчезнут. Тем более, что появились видеокарты с трассировкой лучей (выше есть видео). Да что там, до сих пор появляются новые демки для ZX Spectrum. Время от времени находят способы выводить ещё более красивую картинку на старых компьютерах, обходя ограничения. В т.ч. костыльно (например, на каком-то из компьютеров смогли выводить больше цветов с помощью смазывания из-за композитного режима видео).

Демосцена - это способ показать свои умения в области программирования, математики и искусства. Ведь надо же как-то сделать красивый визуальный ряд, чтобы он занимал как можно меньше места.

***

Скачать такие демки можно на https://www.pouet.net. Там же есть известный .kkrieger. Также на YouTube много записей демок. Есть различные плейлисты. Достаточно вбить в поиск "best of demoscene".

10комментариев