У комп'ютерному середовищі існує цікава субкультура з багатими традиціями, звана Демосцена. Вона являє собою синергетичний зв'язок візуального мистецтва та програмування. Творити в цьому напрямку можуть тільки аси програмування. Всі інші користувачі можуть лише споглядати плоди їхньої праці і захоплюватися. Що ж в демосцену такого цікавого і вражаючого?
Демосцена - відносно новий напрямок в мистецтві. Вона зводиться до створення спеціальних демонстраційних або ігрових програм. які, як правило, займають дуже мало місця, але при цьому мають шикарним графічним оформленням і музичним супроводом. Сенс подібних демонстрацій полягає в тому, щоб створити велику вражаючу програму, яка б займала якомога менше місця.
Тут, як і в будь-якому виді мистецтва, є свої жанри. На даний момент їх два. Перший жанр - власне «Демо» (demo). Це досить тривалий графічне представлення, що супроводжується музикою. Важать такі демонстрації зазвичай до декількох мегабайт. Другий жанр - предмет особливої гордості сценеров. Він називається «Інтро» (intro). У цьому жанрі проводяться різні змагання і конкурси, суть яких полягає в обмеженні обсягу, займаного готової роботою. Так, в цьому жанрі існує кілька класів, за якими проводяться різні змагання: 64 КБ, 4 КБ, 512 Б, 256 Б і навіть 128 Б. Здавалося б, що можна вмістити в 128 байт? Виявляється, що можна багато чого. Найбільш популярним є клас до 64 КБ.
Також частиною демосцени є трекерна музика, яка використовується для супроводу робіт.
Як таке можливо?
І справді, якщо можна створити гру з відмінною графікою і музикою, які займають при цьому пару сотень кілобайт, то чому тоді обсяг сучасних комерційних ігор обчислюється гігабайтами?
Подібний мінімалізм став можливий завдяки використанню виключно низкоуровневого програмування. Як правило, всі демо пишуться на мові «Асемблер». Сенс такої мови - в прямих командах для процесора, але в більш зручній для написання людиною формі. Саме на цій мові можна написати найбільш компактний код, який при цьому буде виконуватися на порядок швидше, ніж роботи, зроблені з використанням мов середнього та високого рівня. Програми, створені на «Ассемблері» (який взагалі-то використовується для написання драйверів різних пристроїв), можуть сповна реалізовувати всі апаратні можливості тієї чи іншої платформи. Саме тому демо виглядають настільки вражаюче по графіку. Звичайно, у даного мови є і маса недоліків: програмування вимагає дуже високої кваліфікації, а створені програми будуть працювати тільки на такий же апаратній архітектурі. Втім, останнє, в світлі стандартизації комп'ютерів. стало некритично.
Ще одна ключова особливість демонстрацій - відсутність бази даних з текстурами, музикою та іншими заздалегідь створеними частинами, використання яких є невід'ємною частиною майже всіх прикладних програм. Всі ці елементи створюються процесором в реальному часі, і саме з цієї причини ви ніколи не побачите в демо фотореалістичних елементів і не почуєте справжніх музичних інструментів або вокал. Весь вигляд будь демонстрації є абстрактним. Саме завдяки цій особливості вони і займають так мало місця.
Демосцена з'явилася в кінці 70-х років, коли домашні комп'ютери тільки-тільки набирали популярність.
Своєю появою цей вид комп'ютерного мистецтва зобов'язаний хакерам і піратам того часу. Саме вони створювали програми для злому ПО і, щоб виділитися, постачали їх власними заставками. Так народився змагальний момент, коли кожен хотів зробити більш ефектну, ніж у інших, заставку.
Найбільш популярні на початку 80-х років для демосцени платформи - домашні комп'ютери Commodore 64 і ZX Spectrum. Незважаючи на слабку апаратну частину цих комп'ютерів, демонстрації буквально вичавлювали з них все соки і часто виглядали на порядок краще, ніж наявний для них інший софт.
У 1985 році з'явився комп'ютер Amiga, що володіє небаченими раніше графічними і мультимедійними можливостями. Звичайно, сценери не могли пройти повз нього. Найбільш ефектні демонстрації створювалися для цієї платформи до початку 90-х років, коли ера домашніх ПК вже закінчувалася. Після цього найбільш популярними для демо стали IBM-сумісні комп'ютери, які оснащувалися графічними адаптерами VGA і пристойним на ті часи звуком Gravis Ultrasound. А ось комп'ютери Apple. незважаючи на хороші мультимедійні характеристики, ніколи не користувалися популярністю в цьому середовищі.
Демонстрації завжди використовували апаратні можливості комп'ютерів по максимуму. З розвитком «заліза» вони ставали все більш витонченими і красивими. Єдине, що залишалося незмінним, - маленький розмір.
На відміну від сучасних комп'ютерів, домашні ПК 80-х років не могли виконувати операції з плаваючою точкою. Через це, а також через низьку продуктивність, ні про яке 3D не могло бути й мови. Як правило, ранні демо представляли собою красиво оформлений текст, що рясніє різними додатковими ефектами. Цілком підходяще порівняння - заставки для ігор, які виходили на ігровій приставці NES.
Демонстрації супроводжувалися трекерної музикою, яка створювалася (і продовжує створюватися) без використання записаних заздалегідь фрагментів. Вона являє собою прямі команди для кожного каналу звукогенератора, де закладена лише частота звуку і тимчасові проміжки, коли цей звук повинен прозвучати. За рахунок змішування декількох каналів і виходить електронна музика.
Саме трекерна музика безроздільно панувала в комп'ютерному світі, поки апаратні можливості не дозволили відтворювати музичні записи, і не набрав популярність MIDI.
Створення такої музики зовсім не схоже на те, чим займаються композитори. Замість написання партитур творець пише команди на «Ассемблері». Примітно, що серед сценеров не прийнято будь-яким чином захищати свої твори від копіювання. Більш того, при створенні музики використовуються шматки коду, написані кимось раніше і є певним електронним інструментом з унікальним звучанням.