Born Dead #0E
19 декабря 1999

Злоба дня - Как правильно(!) делать дисковые версии программ для ZX Spectrum.

════════════════════════════════════════════════════════════════
                         ЗЛОБА ДНЯ 
════════════════════════════════════════════════════════════════

(c) UnBEL!EVER^XTM

Давайте  рассмотрим  такую всё ещё встречающуюся вещь, как релиз
дисковой  версии  игры,  например,  старинной  и  всем уже давно
известной,  но  с  потерянной ранее картинкой или с оригинальной
128K  музыкой или дополнительными уровнями. Казалось бы, ну чего
тут  такого  сложного,  тяп-ляп и готово! Однако, если вы хотите
сделать  это  дело,  как  говорится,  "на  пятёрку", то придётся
прочитать  ниженаписанное  -  как  бы  моё  видение правильного,
реального релиза.

А  для  примера возмём две дисковые версии игры FLYING SHARK (by
GRAFTGOLD'87).  Ну  уж  в  эту  игру,  я думаю, все в своё время
играли :) Итак, сравним две дисковые версии этого шедевра:

Дисковая версия..... AMD
Размер.............. 118 секторов
Дата релиза......... 06.02.98
Наличие cheat'ов.... infinite life
Наличие intro....... есть, как и сама игра
                     может работать из 48K

Дисковая версия..... Eternity Industry
Размер.............. 139 секторов
Дата релиза......... 12.02.99
Наличие cheat'ов.... infinite life/bombs
Наличие intro....... есть, как и сама игра
                     может работать из 48K

Я  рассматриваю  именно  эти две версии, потому что они примерно
одого  уровня  - не хочется опускаться до начала 90-ых, когда не
то  что  кодовый  блок  запаковать,  trainer,  и то не все могли
вставить.  Хотя,  если  идти  в этом направлении, была ещё одна,
просто   ужасно  испоганенная  версия  FLYING  SHARK,  сделанная
SILICON BRAINS и претендующая на 128к.

Итак,  что же заставило две разных команды с разницей в один год
выдать  в  массы  по  дисковой  версии игры? Фактор релиза как в
этом, так и во многих других случаях один и тот же; в шаловливые
руки  hacker'а  попадает  более-менее  полная версия его любимой
игры.

Так что же в этих релизах разного по существу? Начнём...

В  обоих  случаях  присутствует  главное  -  титульная картинка,
которая  ранее  практически  не встречалась в кассетных/дисковых
версиях.  Однако,  если  AMD'шники просто оставили без изменений
оригинальный  screen,  то у EI картинка обработана злой софтиной
под  названием  Screen Optimizer. Таким образом, на ряде глючных
аналогов  в  первой  версии  на картинке будут видны характерные
"границы" знакомест, в то время как в Ковровском F_SHARK'e можно
действительно  насладиться  картинкой  в  полном  объёме. Однако
остаётся  ещё  одна  проблема;  время  отображения картинки. Оно
равняется  времени загрузки+время распаковки и явно недостаточно
для полного восприятия заставочной картинки.

Trainer'ы  имеются в обеих версиях, но у EI, кроме жизней, можно
включить  ещё  и бесконечные бомбы! Казалось бы cool, но лишь на
первый   взгляд...   Flying  Shark  -  игра,  достаточно  хорошо
сбалансированная, и даже новичку, в принципе, не сложно дойти до
третьего  уровня.  Ну  а  с  вечной жизнью вы просто обречены на
прохождение  игры.  А вот бесконечные бомбы... хм, а зачем тогда
вообще  игра  нужна?  Если через каждые 10 секунд можно взорвать
smart-bomb  и  уничтожить  тем  самым  всех  врагов??? Явственно
видно, что данный вид trainer'а в игре совершенно неуместен, так
как позволяет пройти её буквально за несколько минут :(

Вот,  казалось  бы,  две  версии  одной  игры,  каждая по-своему
хороша,  но  даже если все их достоинства объединить, идеального
"релиза"  так  и  не  получится... "Ну и как же должен выглядеть
идеальный релиз?", - спросите вы меня. А вот как:

1)  Intro. Желательно, чтобы оно либо вообще отсутствовало, либо
было действительно интересным. Intro не должно резко увеличивать
размер игры. Тем более, intro не должно быть например 128K only,
если  сама  игра  48/128k. Поскольку intro чаще всего делают для
сообщения  о  себе  и возможности выбора trainer'ов, то в случае
отсутствия   intro   как   такового,   выбор  cheat  mode  можно
осуществлять  путём  удерживания одной или нескольких клавиш при
загрузке  игры. А пояснительный текст о себе, крутом авторе этой
дисковой версии и о тех же кнопках для включения cheat'ов, можно
написать в неиспользованной части basic loader'а, где его найдут
пытливые любители чужих байтов, пользующиеся Best View или любым
Disk Doctor'ом.

Кстати,  если вы всё же сделали к игре или к какому-либо другому
продукту  большое  и  свирепое intro, следует предусмотреть одну
маленькую  мелочь  -  возможность пропуска всей этой "прелюдии".
Перед  распаковкой  и  запуском  intro  проверьте  - не нажал ли
пользователь какую-либо кнопочку, например SPACE... Зачем давать
человеку  возможность пропуска вашего шедевра intro'строения????
Тут   две  основные  причины;  во-первых,  процесс  распаковки и
decrunching'а  intro  зачастую довольно длителен, а иногда нужно
просто  быстро  загрузиться  и  ждать  нет времени. Однако самое
главное - это  во-вторых.  А во-вторых  не исключено следующее -
программа  или  игра  на данном конкретном компьютере заработает
без  проблем,  а  вот  intro, прикрученное в начале, в силу ряда
технических   особенностей   просто   повиснет!  Конечно,  можно
предусмотреть   все   эти   "технические   особенности"  (полная
адресация  портов,  учёт наличия медленной памяти, глючащая шина
данных  и  пр...),  но гораздо проще написать intro так, как вам
это  удобно  (хоть  со  злой "обточкой" под Pentagon only!), при
этом  предусмотрев возможность пропуска всей этой злости в самом
её зародыше...

2)  Trainers.  Конечно,  неплохо  быть  таким же крутым, как Max
Iwamoto,  например  в  том  же HUDSON HAWK, но и меру тоже знать
неплохо.  Trainer'ов  должно быть столько, сколько нужно! Но при
этом  в  игру  должно  быть  интересно  играть,  даже  если  все
предложенные   пользователю   cheat'ы   включены.   Тут  уместно
вспомнить  Н.Родионова и его ставший классикой релиз игры R-TYPE
с  так называемым invisible mode. При активизации этого режима в
игру  вообще  не  надо  было  играть - просто сиди и смотри, что
делается. Кстати, если вы, или знакомые вам люди способны пройти
конкретную  программу вообще без trainer'ов, значит они там и не
нужны!  Просто  были программисты маньяки, делавшие непроходимые
games, и были нормальные люди...

3)  Title Screen. Если его нет, то скорее всего у вас совершенно
не  полная  версия  игры,  так  как  все более-менее полноценные
программы имели title screen в той или иной его форме. Тут самое
главное  - чтобы человек успел разглядеть картинку, если конечно
она   того  стоит.  Поэтому  предусматривайте  либо  специальные
клавиши, либо делайте преднамеренные паузы после загрузки, а ещё
лучше и то и другое.

Второй  проблемой  заставок  являются  те самые полоски на стыке
разных атрибутов, которые образовываются на экране ряда машин (в
том  числе  и  Пентагонов)  с некорректно реализованными схемами
формирования  экрана. Так вот, от этих самых полосок можно легко
избавиться, а заодно и привести картинку к единому знаменателю в
смысле чёрно-белого её видения. Дело в том, что художники рисуют
так, как  им  это  в  голову придёт, за что их в принципе нельзя
винить:  "Картинка  смотрится  в цвете?! Значит все ОК", говорят
они..  Однако  стоит  взглянуть на этот шедевр в ч/б виде... там
знакоместо инвертированное, тут нет - просто какой то хаос!

Так  вот, существует такая могучая софтина - Screen Optimizer by
PSW/Dream  Team'94.  Грузите  в неё экран и выбираете пункт Auto
Optimize  (два-три  раза).  После  этой  процедуры  визуально (в
цвете)  картинка не изменится, но на pixel'ном уровне произойдут
глобальные  изменения(!). Обработанную подобным образом картинку
легче  дорисовывать,  можно печатать на принтере в ч/б виде, она
лучше  будет  смотреться  в цвете - исчезнут в большинстве своём
"линии"   на  стыке  знакомест,  ну  и  наконец  в  99%  случаев
обработанная   SO   картинка   лучше   пакуется!   Следует  лишь
остерегаться  всевозможных надписей, закрытых  атрибутами одного
цвета - они будут стёрты, ибо по мнению SO, если их не видно, то
нехрена им вообще на картинке тусоваться.

Я  бы настоятельно  рекомендовал  "проходить" по картинке Screen
Optimizer'ом   не   только   при  подготовке  title  screen'а  к
дискофицируемой  игре,  но  и собственно самим художникам, после
окончания работы над своим шедевром. Кстати, эти самые "полоски"
на  стыке  знакомест с головой выдают конверченную с PC графику,
ведь  ZXC ухитряется проинвертировать несколько знакомест даже в
случае конвертации обычной 2color картинки.

4)  Размеры.  В  наше  время  как-то  несерьёзно отказываться от
упаковки  программ.  Однако  и  при  использовании  компрессоров
следует   проявлять  мозговитость  и  смекалку.  Пользуйте  один
распаковщик,  стремитесь к упаковке одного большого блока памяти
вместо  двух-четырёх  маленьких,  в  общем,  умейте экономить на
всём! Лично мне всегда приятно увидеть файл с полноценной игрой,
без лишних наворотов и при этом занимающий менее 100 секторов.

5)  Загрузчик.  Если  игра не имеет подгрузок, записи/считывания
отложенного  сосотояния  или  таблицы рекордов, то использование
чего-либо, кроме #3d13, видится кощунственным! Однако, даже если
вам   из   игры   нужно  бодренько  подгрузить  следующий  блок,
старайтесь  всё  же  стремиться  к  стандартным  точкам  входа в
TR-DOS.    Помните    о    существовании    "винтов",    машин с
"чёрт-знает-как"   реализованным  контроллером  Beta-Disk'а  или
всяких разных нездоровых/хакерских версиях TR-DOS'а...

6)  Restore.  В принципе, если вы решились что-то зарелизить, то
скорее  всего  уже запаслись полностью рабочей версией, которая,
по  идее,  не  требует  того,  что  на  заре  релизов было метко
названо  restoring'ом.  Хотя даже оригинальная, фирменная версия
не  лишена  зачастую  фирменных же багов, которые по возможности
конечно   же   желательно   по_fix_ить  (см.  Great  CodeMasters
Collection  by  Titus). Сюда же следует отнести коррекцию опроса
Kempston  Joystick'а  и  переключения  страничек  памяти. И то и
другое   лучше   делать   "по  правилам",  чтобы  у  всех  потом
работало...

7)  Fix.  Куча  игрушек  имеет  Border Fx, Multicolor или просто
точный  fix  перерисовки  экрана  под  timing определённого вида
буржуинского  Спектрума.  Бордюрные  эффекты у нас чаще всего не
замечают,  multicolor  принимают за атрибутное мигание (типа так
и надо), а "рвущийся" scroll экрана относят на совесть неумевших
писать игры буржуинов. А ведь если покрутить руками(!) задержки,
то  и бордюр и multicolor встанут на свои места, а уж "рвущийся"
экран (он кстати и в FLYING SHARK'e присутствует) правится в 90%
случаев  "с пол-пинка". Даже если вам не удалось привести игру к
состоянию  "полного  восторга",  то хотя бы сделайте вид, что вы
пытались :)

"Рвущееся",  "мерцающее",  "глючащее"  изображение  -  это в 99%
случаев  вина  timing'а наших клонов. Ведь на PENTAGON'е мы чаще
всего  видим  игру совершенно не так, как она выглядела "там", у
"них".  Именно  поэтому следует обращать внимание на регенерацию
экрана  и в случае чего fix'ить её под PENTAGON, но не "жёстко",
а   позволяя  пользователю  выбирать  оригинальный  вариант  или
по_fix_енную  регенерацию экрана. (см., например, сделанную мной
версию ACTION FORCE).

Кстати,  проблема  неправильной  перерисовки  экрана встречается
почти  в  каждой  игре (в случае запуска их как на отечественных
клонах вообще, так и на PENTAGON'ах в частности), хотя фатальной
она становится гораздо реже ( например в DOC THE DESTROER вообще
нельзя  было  играть - героя не было видно :) Вот недавно, решил
зарелизить мой любимый SOLDIER OF FORTUNE, тем более что нашлась
версия  с  title  screen.  Только хотел приступить к работе, как
глянув  на  игровой  экран,  пришёл к  выводу:  "Глючит,  причём
жестоко".  Решил  было  за_fix_ить,  но  поскольку  в моих руках
оказался  не  .tzx, а  гниловатый  .z80....  Короче, найду более
качественную версию - обязательно za_fix'ю :)

----------------------------------------------------------------

Надеюсь  вы примите к сведению этот краткий конспект начинающего
"релизера"   и   будете   производить   на   свет  исключительно
качественные дисковые версии!



Другие статьи номера:

ВСТУПЛЕНИЕ - "Хрен в сумку тем, кто решил, что BORN DEAD кончился...": 666 байт От Редакции.

ВВЕДЕНИЕ В ОБОЛОЧКУ - BornDead #0E это однозначно шедевр современного кодинга в любых его аспектах.

Новости - презентация нового европейского демопати - FOREVER 2E3.

Обзор софта - игра 12 ТАЙНЫХ КНИГ: Миссия, коммандер REAL COMMANDER v1.9, журнал ZX-GIUDE #2, демо IRIS ultrademo, игра Operation "Oil" demo v0.666, игра ВЗРЫВ v1.1.

Hints - хитрости текстового редактора Modern Word 2.1.

Злоба дня - Как правильно(!) делать дисковые версии программ для ZX Spectrum.

Злоба Дня-II - особенности работы с регистрами I/R в процессоре Z80: выдержки из официально документации.

Голос из могилы - новое детище Клайва Синклера: Sinclair QL - Отделение фактов от вымысла.

Партийная зона - DI:HALT99; Лучше поздно, чем ещё раз! История провального демопати.

Партийная зона - итоги 1999 года: 18 дем для Спектрума. Разбор новых и старых дем.

LETTER'АТУРА - письмо от Slider/BrokImSoft/Rushи ответ на него.

Iron made in - схема огромного экрана из светодидов для ZX Spectrum.

Под звуком "ПИ" - "Мне страшно за SPECTRUM! Из всей армии его поклонников, лишь единицы истинные спектрумисты!"

Реклама - CD-ROM, который тебе нужен!? Сборник вареза для Спектрума от MMA.

Послесловие - ни одна сволочь даже не вспомнила, что нашей газете исполнился год...


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Hints - секреты, читы и хитрости в играх: Super Cars, Net Walk.
От авторов - О проблемах создания журнала.
Полезное - о определении междугороднего звонка.

В этот день...   24 июня