Comments 71

А эти демки используют какие-то библиотеки типа DirectX, OpenGL и т.п.? Если да, то, мне кажется, некорректно говорить о 64k (ничуть не умаляя таланта их создателей, но тем не менее).

Вы это авторитетно сейчас говорите? Или понаслышке? Хотелось бы знать, каким образом ВООБЩЕ выводится видео без упомянутых API.
Ну вот, как обычно говорим о том, чего не знаем. 5 минут гугления, результат: С++, чаще OpenGL, реже DirectX, шейдеры очень интенсивно.
Ну а как их, вместо операционной системы, что ли, запускать, с загрузочного диска?

А что, OpenGL уже стала операционной системой? :)
Запускать под ОС, разумеется, но обсчитывать кадры самостоятельно, как это было раньше

Так с ходу вылезет куча проблем, начиная с несовпадения частоты отрисовки, и заканчивая недостаточной производительностью программного GUI ОС. Придется переписать тот же OpenGL, написав при этом поддержку всех видеодрайверов и их расширений. Это уже далеко за 64 Кб.

Вроде ж демки как раз и призваны демонстрировать мастерство в решении подобных проблем.

Видеокарт и драйверов наплодили уже великое множество и явно не собираются останавливаться.

Тут мастерство не решения проблем, а использования уже имеющихся инструментов на всю катушку. То есть любой набор стандартных инструментов, и код на 64к, который лихо с ними управляется. Ведь не спрячешь же в API какую-нибудь красивую модель на много мегабайт, чтобы у тебя демка выглядела круче всех.

Да я в самом начале написал, что не умаляю заслуг создателей демок, но делать акцент на 64к когда задействуется на несколько порядков больше кода, считаю неправильным :)

Тогда вам стоит взглянуть на демки на микроконтроллерах. Там, по сути, к контроллеру напрямую подключен экран через SPI, динамики через ЦАП, и весь контроллер полностью в распоряжении программиста. Можно писать любые функции отрисовки и сразу отправлять результаты байтами на экран, где они будут отображаться пикселями.
В правилах написано, что даже некоторые dll .NET удалены с машин на выставке.

Вообще-то софтовая реализация освещения и шейдинга по Гуро занимает довольно мало места, на фоне 64k — вообще ни о чём. Так что говорить о 64k вполне разумно.

Если английский — не проблема, то тут есть сырцы для демки Elevated от широко известного в узких кругах Inigo Quilez. Это, правда 4К, но тоже интересно. И, как видно — вполне себе вызовы dx9.
Там весь его сайт — копи интересных идей и подходов в шейдинге или обработке изображений, рекомендуется к изучению.
А можно ссылки? И да как, как они сделали такую воду в первом видео?
В очень редких играх вода круче.
А ведь есть и игры демо. kkrieger вроде довольно известна )
Вода — просто качественный шейдер (В плане кода — зачастую занимает в районе десятка строк).
десяток строк, между прочим, это может быть очень много кода!
Смотреть это в видеозаписи — что нюхать розы в противогазе. Извините за заезженное сравнение:)

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

И чтобы это понять, нужно запустить оригинальную демку, а ссылок на них тут нет.
Да, да, да демка 64К, но нужен очень мощный компьютер, вы бредите
эээ, а вы запускать-то пробовали? fermi-paradox-1080 phenom925 нагружает на 20-25% (1 ядро 40, ещё два по 20), занимает в оперативке 120Мб, радеон 7970 загружает на 80-90%, про использование видеопамяти не скажу
попробуйте на i3 с интеграшкой, потом расскажете, сколько fps получилось, 4 или 6
а вот это, по-моему, вообще рекордсмен
www.pouet.net/prod.php?which=71875
4к демо, процессор, я думаю, только для генерации музыки используется, поэтому нагрузка минимальна, единицы процентов, зато 7970 загружается на всю катушку
ответ прост — оптимизация по объёму кода, а не по использованию ресурсов
Ни разу в жизни ни одна демка не пошла ни на одном из моих компьютеров. Сами компы как правило были мощные, но с нестандартными либо слабыми видеокартами.
Мне вот интересно статистику посмотреть по платформам.
Какой процент пишется под Linux?
Есть ли уже скомпилированные под линукс демки?
Они пишут на чистом С или ассемблере? Можно подключать стандартную библиотеку С или С++
UFO landed and left these words here
Я вот ещё прекрасно помню farbrausch, демки типа ".fr08". Кстати, именно она однажды и перевернула мой мир: столько графики с музыкой, ещё и куча титров на 5 минут (в сумме 15 минут). На тот момент это казалось чем-то невозможным :)
Классные демки есть у группы Conspiracy, они первые места занимали несколько раз.

В немецком языке почти все существительные пишутся с большой буквы. Поэтому Ding.

Почему-то на большинство демок ругается майкрософтовский антивирь.
Потому, что внутри у них то, что в нормальных программах не делают.
Обычно на пакеры антивирусы ругаются. Используются сильножмущие мелкие пакеры, ими же пользуется и всякая вирусня. Те же проблемы бывают у кейгенов/патчей и др.
Один я рассчитывал увидеть демо, а не только видео? А где сами демки? Видео, конечно, хорошо, но в заголовке «демосцена» а не «видео демосцены».
Знаете, что досадно? Пытался показать это своим не сведующим в теме знакомым и понял, что объяснить, насколько это круто, просто невозможно. Пожимают плечами и говорят, ну да, прикольно. А про 64 Кб объяснять просто бессмысленно.
«Он был так умен что мог оскорбить собеседника так что тот даже не обижался»
5 минут, а кайфа больше чем от космического блокбастера.
Голливуд, але, возьми ребят на работу.
А то марсианская картошка в человеческом гуано не вставляет.
Демокодер IQ из группы RGBA работает в Pixar, пишет шейдеры, всякий мех для зверушек и т.п… Pixar даже спонсирует файловый архив scene.org.
Спасибо за отличную подборку! Приятно видеть в ней и свою работу :)
А ещё в 2003-2007 годах была серия из трёх бесподобных космических демок у группы MFX:
singularity — the universe, part 1
the planet — the universe, part 2
stellar evolution — the universe, part 3
Найти можно на pouet.net, вбив название в поиск.
Если бы все программы писались так искусно, выжимая каждый байт, то наверно «семёрка» уместилась бы на пачку дискет…
Семёрка бы не появилась, все были бы заняты выжиманием байтов.
Исходный код подобных демок сложен для понимания, разработки и поддержки.
Необязательно код подобных демок сложен для понимания. На shadertoy.com много неплохо документированных демок (структура, комментарии и т.п.).
Системный код тоже понятный (взять хотя бы фреймворк IQ для 4kb intro на GLSL). Исходники музыки (обычно трекерные) даже проще читаются, чем проект в традиционном секвенсере.
Скорее, от обычной разработки демосцену отличает изначальная постановка цели «компактность». Может быть это поначалу и замедляет разработку (и то несильно), но после нескольких проектов всё идёт уже как по маслу.
Всё-таки, когда появляются вот эти объяснения про gl, и directx, и шейдеры — всё это уже не так круто звучит (хотя это наверняка круто, по факту, просто это сложнее понять). То ли дело старые демки из 90-х, в которых вся графика была реализована в коде, они реально казались какой-то магией на ассемблере. Десяток-другой команд с какими-то сдвигами, а на выходе живое пламя во весь экран. Ух, восторг был и азарт.
Я всегда скептически относился к Windows-демкам 2000-ых годов именно потому, что они перекладывали растрезацию полигонов и текстурирование на видеокарту.
Но сейчас в 4-килобайтных работах редко используют 3D-ускорение (полигональную графику). Вместо этого пишут натурально софтварный рендер (реймаршинг или что-нибудь ещё) на GLSL. В сравнении с 90-ми, процессор x86 сменился на процессор видеокарты, но весь код 3D-рендера точно так же пишут руками с нуля. Вернулись к софтварным корям, и это радует.
Уместить все это в компактный код — это великое искусство. Данному явлению уже столько времени, а оно все не увяло это радует. Спасибо за подборку! Всегда удивлялся подобным работам. Кстати, по поводу бинарников полностью поддерживаю: где их можно найти?
Круто, что это направление еще существует. Я когда-то в начале двухтысячных писал музыку, в том числе для демосцены. Весьма интересная задача. В те времена это делалось в трекерных форматах (Fast Tracker, Impulse Tracker, позже Modplug Tracker). Очень часто трек с музыкой занимал большую часть файла, так что кодеры визуальной части должны были умещать уже все не в 64 кБ, а в 20-30 кБ. Несмотря на обилие разных звуков в треках использовалось обычно очень мало семплов (3-5 штук всего, по 8 бит, совсем маленького размера), каждый из которых давал из себя выжать множество разных звуков. Был опыт, когда получилось написать трек только с семплом бочки. В нормальном режиме семпл играл как бочка. Затюненный вверх он был малым барабаном. Совсем высоко — нечто похожее на перкуссию. А хвост у бочки был синусообразный с небольшим количеством гармоник. Кусок хвоста я закольцевал и он был в нижнем диапазоне нот басом, повыше — электропиано, еще выше — что-то типа синтетических пэдов и струнных.
Сначала поразился качеству современного демостроительства. Потом прочитал про OpenGL и несколько разочаровался :) В моём мире демки — это .com файлы, то есть заведомо без сторонних библиотек. До сих пор не могу забыть демку 500 байт, которая в полноценный VGA 320x200x256 рисовала анимированный часовой механизм.
Просто соревнование теперь переместилось на другой уровень :) графику уровня первой демки в 64К com-файл засунуть в принципе невозможно.
Посмотрел несколько штук — не впечатлило.
Ну серьезно. 64к — это дофига. Для меня лучшая демка в 48к — это Elite for ZX
Там 9 галактик, с уникальными планетами, 3д корабли, игровая механика, ИИ, и куча радости.
А нарисовать 10 шариков, подключить к ним текстуры и эффекты из OpenGL и подвигать камеру — это уже не та демосцена что была.
Грузить с загрузочной флешки. и Баста
Демосцена это высший пилотаж. Я как-то делал процедурный газовый гигант в блендере. Получилось только материал, но я продолжаю эксперименты:

Картинка

Only those users with full accounts are able to leave comments. Log in, please.