О журналах (мысли вслух) Не хотел писать на эту тему, а придется. Не так давно ко мне в руки попала довольно большая подборка журналов. В частности Deja Vu #6,7,8 и Demo Or Die #2. Здесь я позволю себе затронуть некоторые вопросы, освещенные на страницах этих журналов. Очень неприятно поражает степень незнания авторов Deja Vu многих терминов касающихся алгоритмов. В частности я долго пытался понять, что имеется в виду под понятиями "метод 1=4*4" (имелись в виду chunks) или "жидкий терминатор" при описании демки The 5th Element (имелся в виду environment mapping). Подобные вещи сбивают с толку читателей и затрудняют понимание текста. По-моему если уж человек взялся писать о чем-то - он должен, по крайней мере, немного разбираться в этом вопросе, а не подходить к этому с точки зрения непрофессионала. Не так уж сложно, тем более имея выход в Internet, найти и почитать описания касающиеся общепринятой терминологии при описании алгоритмов работы с 3D графикой, чтобы впоследствии не вводить читателей в заблуждение своими собственными терминами. То же касается и алгоритмов компрессии видео. То, что сказано про форматы AVI и MPEG в Deja Vu #7 наводит на мысли о том, что либо автор этих строк совершенно не разбирается в том вопросе, о котором пишет, либо считает, что эти строки будут читать полные идиоты. Далее, правда, приводится вполне жизнеспособный алгоритм упаковки видео, основанный на хранении изменений кадров упакованных RLE-подобным методом. Я могу твердо говорить о его применимости т.к. именно этот метод был применен нами в деме... Binary Love в 1997-м году, т.е. почти за 2 года то этой статьи! И этот же метод, только применительно к chunk'ам был использован для упаковки анимаций в деме Forever. Более того - в октябре 1998-го, т.е. за несколько месяцев до выхода Deja Vu #7 в эху ZX.SPECTRUM были кинуты полные исходники плеера анимаций использующего именно этот метод. Кроме того, там же было помещено описание этого метода, пример и полный набор утилит для создания подобных анимаций. Я, конечно же, не говорю о том, что эти исходники были использованы как основа для написания той статьи - идея подобного метода компрессии слишком очевидна, чтобы не придумать такое. Просто авторам журнала, если они хотят быть объективными и давать актуальную информацию, стоит следить за тем, что появляется в мире Спектрума в плане кода, чтобы не писать о том что уже устарело на момент публикации. Подобное, кстати, хочется сказать и о некоторых материалах в Demo Or Die #2. В нем опубликован ряд достаточно интересных материалов как например Fake Phong shading (только где же пример реализации и почему ни слова не сказано про пути оптимизации при реализации этого алгоритма на Speccy? Конечно исходники на C - вещь хорошая, но только для тех, кто это самый C знает!). И вот рядом с этим вдруг обнаруживаются явно провальные статьи by Devil/eTc про moving shit и про вывод chunk'ов. Ну то что первый эффект относится к 1994-му году я промолчу, возможно это действительно будет кому-то интересно. Но как можно писать о таких способах вывода chunk'ов в журнале с датой релиза - сентябрь 1999-го?! К слову, для тех, кто не в курсе - подобные методы использовались в демах образца 1997-го года (ENLiGHT'97), т.е. это алгоритмы двухлетней давности и сейчас существуют методы, которые работают намного быстрее! Спрашивается - зачем давать в журнале явно устаревший материал? Тем более если этот журнал считается ориентированным на демо сцену. Новичка эта статья сможет научить только тому, как НЕ надо выводить chunk'и, а более опытному кодеру она вообще будет бесполезна. И еще на одном больном моменте касающемся современных Спектрумовских журналов я хотел бы остановиться. Это такое явление как intro к журналу. Многие издания допускают грубую ошибку, когда пишут intro для своего журнала. При этом они, возможно, даже не подозревают о том, что делают. Дело в том что в сознании спектрумистов укоренилось мнение, что intro - это то, что команда приделывает к игре, которую эта команда сломала или, наоборот, отреставрировала. Соответственно когда человек слышит термин "intro к журналу" - у него перед глазами встает нечто подобное тем intros, которые он не раз видел в различных дисковых версиях игр. В результате нечто подобное цепляется и к журналу. Однако это неверно. Дело в том, что то, что все Спектрумисты привыкли называть intro на самом деле носит совсем другое имя - cracktro. Этим термином обозначается небольшое intro как правило состоящее из 3 частей расположенных на одном экране - логотип команды, какой-либо эффект и текст с информацией о данном релизе. Текст, как правило, содержит информацию об авторах и названии оригинального продукта, далее идут credits с перечислением тех кто ломал этот продукт, делал это intro и т.п., greets и информация о том, как связаться с командой. Ну как, напоминает те intros, которые вы видите почти в каждой игре? Напоминает. И в журналах вы видели нечто подобное? Да. А между тем cracktro пишется только для одного конкретного типа релизов команды - для тех продуктов, которые были СЛОМАНЫ данной командой! Таким образом, intro подобного типа для журнала - вещь совершенно неприемлемая! Подобное intro (cracktro) может появиться, только если команда сломала защиту журнала и выпустила в свет свободно копируемую (пиратскую) версию. Тогда наличие cracktro в журнале будет оправданным. Оформление же подобными вещами собственных продуктов - проявление полнейшего незнания законов сцены, к которой все так любят причислять себя. Intro к журналу должно быть маленьким произведением искусства и выражать собой концепцию журнала, быть его лицом. Здесь я хочу остановиться подробнее т.к. с этим связан еще один очень больной момент. Давайте рассмотрим все множество журналов в целом. Только в моей коллекции их более полусотни, а видел я намного больше. И при всем этом многообразии все журналы можно разделить на 3 группы: 1. Похожие на Spectrofon. 2. Похожие на ZX Format. 3. Оригинальные. Представителей 1-й группы сейчас мало, все же оболочка Spectrofon'а морально устарела. К сожалению представителей 3-й группы не намного больше. А все остальные могут быть отнесены ко 2-й группе, и мы получим большое скопление журналов в той или иной степени старающихся походить на ZX Format. Кому-то это может нравиться, но давайте не забывать о том, что журнал - по сути, произведение искусства и творческой мысли его создателей. А что мы имеем - кучу журналов с "полупрозрачными" окошками и читалкой, в которой верхние 2 строки отводятся под название статьи и кнопки управления. В результате, как правило даже трудно вспомнить - а что же, собственно, это за журнал, ведь они почти все на одно лицо. Подобное единение интерфейса можно только приветствовать в случае системных программ (хотя как раз там наблюдается обратная картина - каждый делает свой тип интерфейса), но в случае с журналами это недопустимо т.к. превращает их в серую массу, из которой выделяются только редкие индивидуумы. Но оставим это, я завел этот разговор только для того чтобы подчеркнуть одну деталь. А именно специфику тех intro, которые всем известный Max Romanoff делал для ZX Format'а. Все их прекрасно помнят - рендеренная анимация (как правило, что-то связанное с номером журнала) на фоне статической картинки. А теперь оглянитесь: в подавляющем большинстве современных журналов (тех, кто не пихает cracktro в качестве intro) мы видим ту же пресловутую анимацию! Правда теперь она разделилась на 2 типа - прямое копирование ZX Format'а (планарная анимация номера журнала на фоне картинки) и ее разновидность - full screen chunk animation. Причем, что уж совсем странно, до таких вещей опускаются даже те издания, которые выпускают известные группы, состоящие из талантливых людей: кодеров, художников, музыкантов... Наглядный пример - последние номера Buzz от Eternity Industry. Я не понимаю - как авторы такого шедевра как Napalm опускаются до подобных вещей? Как на это могут смотреть SaiR00S и Paracels? Или выпуском Buzz'а занимаются совершенно другие люди, а не те, которые постоянно заявляют о своем неприятии анимаций в демах? Или у них отсутствует понятие "вкус"? Не верю! А как же пользователи? Им-то не надоело, взяв очередной журнал, смотреть на то, что они видели уже столько раз? Или издателей журналов не волнует этот вопрос? Тогда не удивительно, что их журналы не окупаются - кто бы захотел читать журнал выпущенный на туалетной бумаге? Попытаюсь сформулировать основную мысль этого опуса - intro к журналу должно быть не просто отмазкой (типа "сделали - и ладно"), не прилепленной сбоку интрохой от не вышедшего релиза игры, а неотъемлемой частью всей оболочки которая направлена на то, чтобы привлечь пользователя к вашему продукту. К сожалению, за последнее время только intro к Miracle #3 порадовало меня своей оригинальностью и качеством. Кстати, еще пару слов по этому же поводу. 1) Помните, что, как правило журнал читают не за 1 раз - это не газета. А вот intro, как правило, от начала до конца смотрят лишь однажды. Поэтому прежде чем сделать intro, из которого нельзя выйти иначе как после его окончания, подумайте: а как назовет вас пользователь, который будет смотреть это intro в десятый раз? Пример подобного intro - Flash Time #1. То же можно сказать и про intros в которых есть так называемые "вступления" на протяжении 2-3 pattern'ов, в течение которых пользователь вынужден созерцать черный экран или картинку (Demo Or Die #1,2). Хорошо сделанное intro можно пропустить полностью, нажав Space в любой момент. А еще лучше посмотрите, как сделаны intro в Scenergy: intro даже не будет загружаться, если пользователь нажал клавишу перед началом загрузки (естественно перед этим нужно проверить, что он отпустил клавиши чтобы предотвратить случайный пропуск). Кроме того, выход сделан по нажатию любой клавиши, кнопки joystick'а или мыши. Помните, что у каждого есть свой любимый device и те же пользователи AMiGA, привыкшие выходить из intro по нажатию кнопки мыши будут несколько недовольны тем что им придется тянуться к "пробелу" чтобы пропустить intro. Однако также не стоит забывать о том, чтобы корректно работать с этими устройствами. 2) Этот пункт логично вытекает из первого. Нельзя (!) вставлять выбор джойстика и/или мыши в intro! Во-первых, intro создается для совершенно иных целей. Во-вторых, при подобном подходе пользователю приходится каждый раз ждать запуска интрохи только из-за того чтобы включить или выключить мышь - пользователя это сильно нервирует. В-третьих, как правило если настройки этих устройств вынесены в intro, то они НЕ запоминаются на диске, а это значит, что пользователю придется каждый раз все настраивать заново! Зачем нужно такое издевательство? И в-четвертых: как правило в подобных случаях кнопки переключения описаны в самом журнале! Теперь представим ситуацию, когда у пользователя глючит порт kempston joystick'а. Он не может выключить его опрос из-за того, что не знает кнопки отключения и не может загрузить журнал чтобы ее узнать т.к. управление там, как правило, будет заблокировано неправильной работой драйвера kempston joystick'а. В результате мы имеем злого пользователя и -1 покупателя для этого журнала в будущем. В качестве примера здесь приведу Demo Or Die #2, в котором можно войти в setup из intro по нажатию Enter, а вот прочитать о наличии этой клавиши можно только запустив сам журнал. Если все делать по нормальному, то все настройки для этих устройств необходимо вынести в отдельный setup в который можно будет попасть всегда, как бы не работала ваша программа на конкретной машине. Здесь в качестве примера опять приведу Scenergy. При нажатии 'S' во время загрузки (о чем прямо написано при загрузке журнала), вы попадаете в Setup. Причем его загрузка и запуск производятся в специальном режиме, когда НИ ОДНО расширение не используется. Т.о. в любой ситуации пользователь будет иметь возможность настроить работу журнала под свою машину. 3) Все, что написано ранее по поводу пары "журнал - cracktro" и их несовместимости друг с другом в полной мере касается и авторских игр. Запомните - нельзя пихать в одну кучу собственноручно написанную игру и cracktro которое всем своим видом должно показать, что эту игру кто-то сломал. Если уж вас хватило на написание игры то должно хватить и на написание вступления к ней. А отмазки в виде cracktros показывают только ваше пренебрежительное отношение к своему творению.