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'ю :) ---------------------------------------------------------------- Надеюсь вы примите к сведению этот краткий конспект начинающего "релизера" и будете производить на свет исключительно качественные дисковые версии!
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября