(Продолжение. Начало см. PC Week/RE, № 21/95, с. 55; № /96, с. 57)

Часть 3

РЕЦЕПТЫ ПРИГОТОВЛЕНИЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ

 

Наша жизнь  -  замечательная штука, когда есть возможность самовыразиться. Альтернатива ужасна, ибо вовсе не способствует прогрессу и, более того, нередко приводит к суицидальным депрессиям... Довольно о плохом. На сей раз осмелюсь написать о явлении, которое, по моему разумению, нимало способствует развитию методов визуализации виртуальной среды и является хорошим занятием для оттачивания навыков и реализации смелых экспериментов. Я бы даже выразился смелее: Demo design  -  это стихийное движение по освоению передовых технологий. Надеюсь, никто не подумает, что это была попытка определения демо-дизайна? Впрочем, перевод такового будет представлен несколько ниже.

 

Откуда все это пошло? Думается, что от игр. От тех игр, которые появились еще на Commodore 64 (не припомню, что было до него). Вернее, от заставок к этим играм. Как театр начинается с гардероба, так и игра начинается с заставки. А чем заканчиваются заставки? Правильно, приглашением ввести пароль. Разумеется, тут же находятся диссиденты, которые с этим начинают бороться, объединяясь в коллективы  -  так называемые крекерские группы. (Примерный список названий таких групп можно найти в любом файле NFO в разделе пламенных приветов.) Снятие защиты с программ, написанных для первых игровых приставок, довольно непростая задача. Из-за малого объема памяти создатели игрушек применяли множество трюков, чтобы сократить размер кода и данных. Широко применялся самораспаковывающийся код. Поэтому, чтобы отыскать необходимый участок программы и подправить нужные байты, приходилось потратить изрядное количество времени и усилий. После всех трудов авторам содеянного никак нельзя было оставаться в безвестности. Появились крекерские заставки, в которых, в частности, сообщалось, кто постарался сделать данную игру более доступной. А поскольку главная идея подобных заставок была примерно такой: “Вот мы какие крутые  -  подобрали отмычки к ихним хитростям”, то и видеоряд должен был превосходить оригинальную интродукцию. Дескать, и с "железом" мы управляемся круче этих ребят. Действительно, многие из крекерских заставок, которые мне довелось увидеть на первых игровых приставках, вызывали чувство недоумения по поводу того, как это удалось сделать.

 

Из этих самых крекерских заставок и появились программы, которые по-русски именуются “демками”. (Не следует их путать с “демонструхами”, являющимися лишь демо-версиями коммерческих программ с неполной функциональностью.) Это было время безраздельного царствования “брандов”: такого понятия, как клоны, не существовало. “Демка”, написанная для C64, выполнялась совершенно одинаково на всех компьютерах этого типа. Commodore 64, появившись на год позже первого IBM PC, более подходил для написания “демок”, ибо имел 16-цветный текстовый режим, поддерживал многоцветную растровую графику с разрешением 160x200, трехканальный FM-синтезатор и кучу аппаратных хитростей для облегчения работы в графическом режиме.

 

Но сила IBM PC  -  в ее способности постоянно наращивать свою мощь. Постепенно традиции написания подобных заставок, пройдя путь от Commodore 64, Atari ST и Amiga 500, прижились на компьютерах IBM PC и их клонах. Успешному переходу во многом способствовало повсеместное утверждение VGA-стандарта и широкое распространение звуковых карт типа Sound Blaster. Изменения произошли и в составе участников. Снятие защиты с программ и написание достойных “демок” стало не под силу одному коллективу, поэтому крекерские группы пошли по пути специализации. Такие, как Inc и Razor, сосредоточились на снятии защиты. Другие полностью перешли на демо-программы. Вновь приходящие в демо-сцену уже понятия не имеют, как взламывать код.

 

И все же, что такое “демо”? Это программа, выполняющая различные звуковые и визуальные эффекты, но делающая это таким образом, что происходящее кажется невозможным для компьютера, на котором тем не менее все прекрасно работает. Настоящее “демо” всегда порождает вопрос  -  как? Тактические цели, преследуемые любой демо-программой, можно подразделить на три категории:

 

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

 

- демонстрация художественных возможностей демо-группы (свет, цвет, звук, формы, динамика, фантазия);

 

- демонстрация возможностей программиста (знание математики, механики, аппаратуры; эффективное кодирование).

 

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

 

Где берут эти самые “демки”? Демо-программы распространяются по сети FIDO. Существуют также посвященные демо-сцене BBS. С 1992 года демо-сцена прочно обосновалась в Internet. Считается, что это произошло во многом благодаря стараниям человека по имени Дэн Райт (Dan Wright). Именно в Internet по адресу ftp://ftp.cdrom.com находится все сколько-нибудь значительное из созданного демосценой для PC начиная с 1987 года. Сервер ftp://ftp.cdrom.com принадлежит калифорнийской издательской компании Walnut Creek CDROM. Система построена на процессоре Pentium Pro 150 МГц с 256 Мб оперативной памяти и 72 Гб внешней. Такие ресурсы, по некоторой информации, позволяют работать одновременно с 1250 клиентами. (На практике ситуацию, когда к серверу было подключено менее 500 пользователей, мне доводилось наблюдать лишь однажды.) Помимо этого сервера существует много других, в том числе и его дублей, расположенных в Северной Америке и Европе, но, пожалуй, ftp://ftp.cdrom.com является своеобразной Меккой и Мединой всей демо-сцены. В его архивах собрана вся история PC-демо-сцены начиная с 1987 года. Собственно 1987 год отмечен лишь одной демо-программой под названием Rax. На экране посреди космического пространства вращается надпись-созвездие “RAX”. Все отображается в режиме EGA. Для 1987 года довольно необычно. Следующий год не отмечен ни одной работой. Настоящий старт произошел в 1990 году. С этого времени количество работ стало постоянно удваиваться, превысив в прошлом году пятисотенный рубеж. Каталог /incoming находится под постоянной атакой со стороны подключившихся пользователей. Еженедельно просматривается и рейтингуется около 300 Мб файлов. Правда, здесь не только демо-программы, но также музыкальные композиции и просто графические работы.

 

Что касается содержания работ, вошедших в архив, то тут довольно четко прослеживаются определенные тенденции и модные веяния. В творчестве большинства групп преобладает техническая сторона дела. Мотивы понятны: влиться в тесные ряды программистов какой-нибудь солидной фирмы, работающей над продуктами, связанными с трехмерной графикой. Но есть работы, в которых эстетическое начало полностью маскирует технические детали. Эти работы созданы подлинными любителями-фанатами демо-сцены. Выдающимся образцом последнего направления можно считать работу Томаса Пителя (Thomas Pytel, более известный под кличкой Tran) Luminati, появившуюся на cdrom.com в начале этого года. Другое название “демки”  -  Timeless III, эдакое визуальное раздумье на тему “все течет, все изменяется”. Tran вообще весьма примечательная и авторитетная личность в субкультуре демо-дизайна. Именно благодаря ему демо-программы освоили flat-модель памяти, взяв на вооружение компактный (около 10 Кб) загрузчик-экстендер, позволяющий обращаться к функциям DPMI-сервера.

 

Что же касается технических приемов, методов и эффектов, то прогресс, достигнутый здесь, очевиден. В начале 90-х народ просто баловался с новым еще VGA-видеоконтроллером, дергая его за всевозможные регистры. Перепрограммирование знакогенератора в текстовом режиме пользовалось огромной популярностью. Предостаточно было экспериментов с шрифтами и цветовыми палитрами. Пару-тройку лет назад увлекались всякого рода туннелями, включали и гасили свет, изображали жидкие и газообразные среды, пламя. Какое-то время в моде были трехмерные лабиринты. Наверняка читатели помнят работу Тима Кларка (Tim Clarke) под названием Martian Terrain, появившуюся в начале 1994 года. В результате работы программы объемом чуть более 3 Кб на экране появлялся марсианский пейзаж, постоянно меняющийся и не повторяющийся. Эта работа была выполнена в качестве иллюстрации к книге по фракталам.

 

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

 

В последнее время демо-сцена переключилась на трехмерные объекты. Додумались, как делать в реальном времени затенение Фонга (Phong), натяжение объемных текстур, имитацию зеркальных поверхностей, объемный морфинг. Большое внимание уделяется генерации различных оптических эффектов в реальном времени. И здесь нельзя не заметить следующее: есть две виртуальные реальности. На одну мы смотрим через объектив, на другую  -  невооруженным глазом. Похоже, первая более популярна, что объясняется просто. Мы все больше знакомимся с миром по фотографиям и с помощью телевизора. Отсюда и тщательная имитация колец гало (halo), спектрального разложения и прочих эффектов преломления, порождаемых, в частности, линзами объектива...

 

Большое влияние на развитие демо-сцены оказывают различные мероприятия соревновательного характера, так называемые Demo party и Demo compo. Если первые носят преимущественно камерный характер и собирают не более полусотни участников, то “компы” (“compo”  -  скандинавское сленговое сокращение от “competition”) являют собой грандиозные мероприятия (особенно в последний год). Например, на последние The Party и Assembly пришло более 3500 человек, а в соревнованиях NAiD, которые прошли в конце мая, участвовало более 1400 человек. Соревнования проходят круглосуточно в течение 2 - 4 дней. Местом проведения соревнований являются школы или университеты, пустующие во время каникул. Все участники оплачивают свое пребывание. Девушки проходят бесплатно. Уровень организации таких мероприятий тоже является предметом обсуждения в демо-сцене. Результаты соревнований публикуются, раздаются спонсорские призы (на Assembly  -  исключительно деньгами), выпускается компакт-диск с лучшими работами. Бизнес постепенно внедряется в демо-сцену. Некоторые ребята специализируются на организации соревнований, привлечении спонсоров, выпуске CD-ROM.

 

Первые крупные соревнования

 

X-Mas начали проводиться еще в 1991 году. В 1992-м состоялись первые The Party и Assembly. И пошло, поехало... Календарь только первой половины этого года насчитывает десяток мероприятий. Расширяется и география: к США и Финляндии присоединились Канада, Норвегия, Австралия, Нидерланды, Германия, Дания, Бельгия, Франция, Польша. В прошлом году прошли соревнования в России, называвшиеся ENLiGHT’95. Работы, представляемые на соревнования, делятся на несколько категорий. Обычно это 4К intro (на ENLiGHT было 8К), 64К demo. Последние включают музыкальное сопровождение. Работы оцениваются путем голосования всех участников после коллективного просмотра на большом проекционном экране. Кроме того, существуют и другие виды состязаний по переписке. Например, только что завершилось так называемое Fire compo, где требовалось написать фрагмент кода в 256 байт, имитирующий пламя. Зимой в FIDO7 прошло соревнование среди “демок” длиной 128 байт. В таких соревнованиях все программы отсылаются непосредственным организаторам, где формируется единый пакет, который затем рассылается для голосования всем участникам. Разумеется, в таких работах нет никакой науки, а лишь сплошная эвристика. Это отражает общую идею демо-дизайна: “Найди новый способ обмануть и удиви”. Не случайно фигурой 1995 года объявлен тор. Тор просто рассчитывается, но кажется сложным в движении. Вращение для скорости расчета часто проводится по двум осям, но это не сразу бросается в глаза. И таких хитростей великое множество. Как, впрочем, и в хороших играх, о чем я говорил в прошлой статье (см. PC Week/RE, № 2/96, с. 57).

 

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

 

Константин Миронович

 

Хорошая “демка”  -  это своеобразное произведение искусства; результат слияния математики, программирования и дизайна

 

Общую идею демо-дизайна отражает девиз: “найти новый способ обмануть и удивить”

Версия для печати