Автор: Вадим Балашов
Ссылка:
http://ifprint.org/articles/remakernotes/
От редактора: В этой статье Вадим Балашов, автор многочисленных ремейков игр с ZX Spectrum (и не только) под платформу INSTEAD, рассказывает о том, как он работал над своими проектами и дает советы начинающим ремейкерам.
Мне нравится играть в игры. Моим первым компьютером был ZX Spectrum. Это был… наверное это был 1990 год. Страшно подумать, 23 года назад. После ZX Spectrum были 286ой, 386SX, 386DX, 486DX, P1, P2, P3, теперь P4… Кроме AT и 486SX, у меня были все процессоры этой линейки… Перечислять все игры, в которые я играл, не хватит и нескольких экранов. Тут было всё — аркады, стрелялки, авиасимуляторы (не самый мой любимый жанр, но нельзя не отметить единственный и неповторимый «F29 Retaliator», в который мы рубились в школе по сети, соединяя компьютеры через COM-порты), арканоиды со всеми их разновидностями, стратегии, тактические игры, пошаговые, реалтаймовые, адвенчуры… В моей игрожизни было всё. Кроме одного жанра.
Текстовые квесты…
Этот жанр я пропустил как класс. Можно найти элементы текстовых игр в том же «Star Control II», в котором проводишь большую часть времени в длиннющих разветвлённых диалогах, но это не чисто текстовые квесты. Да, были и шедевры Lucas Arts — про Джонса, про щупальцы и прочие. Но истинно текстовые квесты прошли меня стороной. Может, потому что в школе я слабо знал английский язык. Может, приоритеты и вкусы были иными. Может, ещё почему-то.
До 2009 года. Именно тогда я прочитал статью Петра Косых «Мир текстовых игр» в первом выпуске журнала «Linux Games Technologies». К сожалению, сейчас журнал больше не выпускается, но это отдельная история. Прочитав статью, я понял, что пора восполнить пробел в знаниях. Пора познакомиться с этим жанром. Повлияло ещё то, что движок INSTEAD был под Linux и свободный. Ну и, разумеется, скриншот из «Возвращения Квантового Кота» чем-то привлёк. Наверное, самобытной графикой на бумажном фоне. А когда я собрал движок и запустил Кота… Вступительная мелодия и атмосфера этой игры пробили меня до глубины старой прожжённой геймерской души.
После этого были месяцы переписки с автором INSTEAD Петром Косых, с которым мы с тех пор стали друзьями… Но речь сейчас не об этом. Поняв, что я не смогу одновременно и изучить основы языка Lua, и создать что-то своё, единственным выходом было попробовать сделать ремейк.
Движок INSTEAD в то время находился на самой ранней стадии развития и не имел возможности создания на его основе «глагольных» квестов. Тогда я попробовал перенести на INSTEAD книгу-игру. Это была проба пера, я постепенно начал вникать в новое для меня дело.
Шло время, INSTEAD начал втягивать. Последовали ремейки игр «Зеркало», «Кайлет», «Звёздное Наследие», «Королевство Зерна»…
Были и ремейки и книг-игр — «Project 1», а также «Ungodly Earth». О последней надо сказать особо. Эта игра сорвала у меня крышу. Я до сих пор вынашиваю идею как создать нечто подобное. Пока у меня не складывается в голове сценарий настолько же завёрнутый, как в этой игре. Но это отдельный разговор…
Итак, ремейки. Сначала о целях создания ремейка.
Цели
1. Получить удовлетворение за счёт сделанного продукта.
2. Продлить жизнь забытой игре ещё лет на 10-20.
3. Обеспечить возможность играть в конкретную игру без использования всяких эмуляторов, дополнительной настройки, возни с запуском эмуляторов под Wine (под тем же Linux).
4. Улучшить качество картинок, музыки, шрифтов и скорости игры.
Пояснения по целям
Цель 1
Лично мне эмоционально проще делать ремейк, чем писать что-то своё. К своему продукту я отношусь очень критично. Я перечитываю по многу раз один и тот же фрагмент текста, шлифую, меняю слова, перефразирую. Многократно меняю текст для достижения и гладкости изложения, и точности формулировок. И я всегда недоволен результатом. Наверное, это «перфекционизм».
Потому времени на создание собственного проекта уходит у меня в разы больше, чем на ремейк игры.
Цель 2
Я считаю INSTEAD наиболее перспективной и оптимальной платформой для создания текстовых и околотекстовых игр в настоящее время. INSTEAD — мультиплатформенная система. И с каждым днём число игроков на этой платформе растёт. Запустить INSTEAD в разы проще, чем завести под тем же Linux разные другие движки. Некоторые движки есть и под Linux, но далеко не все заводятся с такой же лёгкостью.
В век засилия зеленороботовых «андроидов» иметь возможность погонять в игрушку, стоя в очереди или в пробке — неплохой вариант.
Необходимо отметить ещё и то, что многие проекты никогда не были переведены на русский язык. И если не делать ремейк, то, скорее всего, и не будут. Так что подзадача — доведение игр до русскоговорящих людей.
Цель 3
Многие (в том числе и авторы оригинальных игр) не понимают смысла делать ремейки игр, если в них можно поиграть свободно (в случае, если игра выпущена открыто) на эмуляторе. Но многие эмуляторы есть только под Windows. Приходится запускать Wine, в нём эмулятор, а в нём игру. Двойная «перекодировка». Ну, коробит от этого. Даже если есть эмулятор нативно под Linux, то играть в эмуляторе неудобно по ряду причин. Взять те же «сохранения»…
Цель 4
Тут сразу стоит оговориться. Во-первых, я получал массу писем от радикалов. Есть разные радикалы. Есть жёсткие фанаты old-school игр, не приемлющие никаких ремейков. Если уж и играть в игру, то только на оригинальной платформе или, в крайнем случае, на качественном эмуляторе. И наслаждаться всеми перечисленными в разделе «цели», пункт 4 проблемами. Для них это не проблемы. Это — особенность. Это — изюминка, это — нюанс, который придаёт особый шарм игре. Ну, если бы я довольствовался всем этим и был бы во всём с ними согласен, я бы не делал ремейки.
Однако на сайты фанатов ZX Spectrum я с недавнего времени предпочитаю не ходить по этой самой причине. Либо не разобравшись в чём дело, начинаются обвинения, что я поганю игры, упрощая геймплей и делая только основную ветку сюжета, не учитывая всех нюансов. Либо начинаются обвинения в том, что я поганю священную музыку ZX Spectrum, преобразуя её в OGG формат. Дело в том, что музыку я прогоняю через timidity, пытаясь добавить туда инструменты. И этим, оказывается, нарушаю кошерность, или чего там у них…
В старых платформах типа ZX Spectrum в силу ограничения памяти 48 килобайтами шла сильная война за каждый байт. Подчас это сказывалось на качестве картинок, текстов, музыке. Сказывалось на их объёме и качестве. Да, если тупо «передёргивать» картинки и музыку с ZX Spectrum и держать ресурсы в виде PNG и OGG, то для той же игры «Зеркало» вместо 655 КБ мы получаем порядка 10 МБ.
Да, за всё приходится платить. Но это и даёт возможность подкорректировать те самые «косяки», которые имелись в ресурсах игры из-за ограничений платформы оригинала. Скажем, многие картинки игр с ZX Spectrum я корректировал попиксельно. Это касается того ограничения, что в пределах 8×8 точек в оригинальном ZX Spectrum можно было иметь только два цвета. Отсюда небольшие дефекты палитры в старых играх.
Не стоит забывать и про шрифты. Подчас в старых проектах «родное» разрешение бывает и 320×200. Шрифты в таких разрешениях обеспечивают резь в глазах уже спустя полчаса игры.
Ну и скорость необходимо упомянуть тоже. Тот же «Kayleth» на ZX выводится посимвольно, и экран при этом дрожит. Ну медленно же! Медленно! Не хочется тратить драгоценные секунды жизни на ожидание, пока там выведется три строчки текста.
Авторские права
Для того, кто решил делать ремейк игры, вариантов три.
1. Забивать на права и делать что хочешь и как хочешь.
2. Договариваться с правообладателем и получать разрешение (устное, письменное, молчаливое согласие невмешательства и пр.).
3. Брать заброшенный проект и делать ремейк, надеясь на то, что правообладатели распались-забыли-ещё что-то.
Вариант 1
Не проходит ни по моральным, ни по этическим — ни по каким соображениям. Более того, очень не хочется тратить гигантское время на ремейк (а времени тратится действительно много), чтобы потом проснулась какая-нибудь замшелая контора и после того, как ремейк уже готов, запретила бы его.
Вариант 2
Тут всё сложно. Как правило, авторы держатся за права на игру до последнего. Не важно, что игра официально уже не продаётся или продаётся, но её никто не покупает, потому что она выпущена под такой экзотической платформой, что её в век «андроидов» и «айподов» всё равно никто не купит. Не важно. Права есть — значит разрешения на ремейк никто не даст. И без разницы, что ремейк не имеет целью заработать денег. Просто над созданием игры, понимаешь, трудилась целая команда программистов-сценаристов два года, а когда ты сделаешь аналогичный продукт за полгода один… Ну не должен ты этого делать — и всё тут! Не дадим права и разрешения на ремейк! Точка.
Есть исключения, есть. Но это как правило касается инди-проектов, которые и так выпущены бесплатно. Подобные авторы берут таймаут на изучение INSTEAD-платформы, и в большинстве своём соглашаются на ремейк. При условии того, что от них не потребуется никаких усилий. Некоторые даже высылают исходники игры на языке оригинальной платформы.
Вариант 3
Тут для надёжности лучше выбирать проекты, которые имеют статус shareware, freeware или abandoned и надеяться что авторы не проснутся. И чем дремучее, замшелее, тем лучше.
Выбор проекта
Объект для ремейка выбирается исходя из личных предпочтений. Ну и исходя из степени культовости игры, конечно. Смысла нет тратить время на переделывание посредственности.
Платформа ZX Spectrum
Ремейк одной из самых культовых игр, «Звёздного Наследия», я сделал, получив разрешение Юрия Матвеева, за что ему огромное спасибо. Да, не совсем довёл до конца — не реализовал бои, но квестовую составляющую реализовал на 100%.
Квесты «Зеркало» и «Кайлет» находятся в стадии «играбельной готовности». Eсть что подчистить и доделать, но играть можно.
Квест «Rebel Planet» реализован только на четверть (или около того). Всё-таки это не совсем ремейк. Тут сделана попытка интегрировать и ZX Spectrum версию, и оригинальную книгу-игру в единое целое. И попытка добавить своих мелочей для выстраивания ровной системы.
На ZX Spectrum есть несколько любопытных проектов («1942 mission», «TimeCop», и пр.). Можно было бы заняться ими, но в ближайшее время я пока не планирую заниматься созданием их ремейков.
Платформа SEGA
Есть минимум два проекта, любопытных с точки зрения создания ремейков. Это кибер-панк игра «Snatchers» и «Policenauts». Однако фирма SEGA жёстко следит за соблюдением прав на свои игры. Недавний пример с игрой «Streets of Rage», когда люди работали над ремейком восемь лет… Нет, не стоит оно того…
Потому от ремейков с этой платформы лично я пока воздержусь.
Платформа Commodore
И тут можно найти любопытные проекты. «Uninvited», «Frankenstein» (который доступен и на ZX Spectrum в том числе). «MegaCorp», который вроде бы на Коммодоре был… Есть много квестов, которые есть и на ZX Spectrum, и на PC, и на Коммодоре.
Платформа PC
«The Guild Of Thieves». Особо стоит отметить «Gateway» (обе части) и «TimeQuest». Это фактически готовые проекты для портирования. Глаголы и предметы выводятся списками. Формирование фраз можно делать, выбирая, соответственно, глагол и объект. Чем не INSTEAD? Может, как-нибудь дойдут руки до «Gateway»…
Infocom квесты самобытны сами по себе. Делать их ремейк, переводя их в «глагольные» квесты… Потеряется вся суть и соль. Отдавая дань уважения к любителям истинно парсерных квестов и вообще… Одним словом, эти квесты пропустим.
Есть ещё старые DOS-проекты. Типа «Hound of Shadow», «Mind Forever Voyaging», «Shogun», ещё ряд игр. Очень любопытные и интересные проекты. Незаслуженно забытые сегодня и так и просящиеся на ремейк.
Книги-игры
К книгам-игры типа «Fighting Fantasy» я потерял интерес. По ряду причин. Единственное исключение — серия «Fabled Lands» с возможностью возвращаться на одни и те же локации, с десятками квестов разной степени сложности, которые можно выполнять, а можно и нет… Одним словом, в настоящее время я периодически возвращаюсь к переводу «Fabled Lands» под INSTEAD. Работа вялотекущая, но выполнимая.
Кстати, раз уж речь зашла о «Fabled Lands»… Нельзя не отметить версию «Fabled Lands» для iPad. Прекрасно оформленная картинками версия. Это, собственно, её единственный плюс. Тексты урезаны. Но более всего убивает размер игры. Порядка 700 Мб. Когда я стал разбираться, обнаружил интересную деталь. Чтобы исключить возможность разным ремейкерам типа меня безнаказанно выдернуть картинки из игры и сделать такую же на своём движке, авторы их закодировали. В PNG есть такая возможность. Я провёл неделю пытаясь взломать алгоритм кодирования, но не смог. Хакер из меня не вышел. Могу сказать только то, что закодированная
картинка весит ровно в три раза больше, чем аналогичная незакодированная. То есть две трети от 700… ну пусть от 600 МБ — ненужный хлам. Далее. Сами картинки, будучи перезаписанными в PNG со сжатием, занимают ещё меньше места. Итого, из 700 МБ саму игру можно было спокойно уместить в 200-250 Мб. Впрочем, это дело авторов. Они за это получают деньги.
Платформа Pocket PC
На карманном компьютере есть один проект под названием «Black Core Logic». Кибер-панк, все дела. Однако, проект небесплатный, опять же права авторства. Плюс «снимать» картинки и тексты с «покета» — удовольствие ниже среднего. Единственный найденный мной путь — поставить виртуальную машину в Linux, в которой запускать эмулятор PocketPC и снимать картинки через Remote Display Control Host… Короче говоря, подход очень сложный.
Да, и игра, если делать её один-в-один, далека от идеала квеста. А заниматься переделкой сценария под существующий набор картинок… Можно, но это отдельная задача.
Способы создания ремейков
Способов создания ремейка, как и взлома любой компьютерной программы, два:
1. Реверс-инжиниринг.
2. Бэк-инжиниринг.
Первый вариант предполагает то, что код игры не анализируется. Всё, что есть у ремейкера — сама игра, блокнот и всё. Запускаешь игру, сдёргиваешь экран в файл, переписываешь в блокнот предметы и описание комнаты. И понеслось.
Действуем предметом 1 на предмет 2 — записываем реакцию. Действуем предметом 1 на предмет 3, предмет 4… И так, пока не исчерпаются все варианты. Надо чётко следить, не изменилось ли что после использования одного предмета на другой. Потому что при осматривании, при любом действии в игре возможно срабатывание триггеров и выполнение каких-либо событий. Подобное «снятие текстов» — очень утомительный процесс. Ещё повезёт, когда можно просто скопировать текст. Но такое бывает крайне редко. Делать снимок экрана с последующим распознаванием — это как из пушки по воробьям. В играх — тысячи экранов текста. Проще и быстрее перенабить текст в файл, чем выполнять скан-распознавание.
Второй вариант предполагает, что код игры либо дизассемблируется, либо вытаскивается каким-либо ещё методом. Для INSTEAD как правило наличие исходного кода игры на чужой платформе не нужно. Всё равно проще и быстрее написать «нативно» для INSTEAD. Потом же и править будет проще.
Единственная игра, которую я перевёл, имея исходный код — это «Королевство Зерна». Там я потратил определённое время, переводя код с Pascal на Lua. Но только потому, что это — экономическая игра, где главное — формулы преобразования данных.
Фанаты ZX Spectrum при запросах на форумах о «прохождении» или каких-либо ещё «читах» к игре постоянно предлагали мне самостоятельно разбираться с кодом. Типа «заодно и выучишь ассемблер Z80». Спасибо огромное, но это мне не нужно. Мне проще пойти по пути «реверс-инжиниринга», чем вдумываться в жуткие листинги ассемблеровских кодов. Тут надо отметить, что я обожаю ассемблер. Я обожал писать на нём в школе. Помнится даже написал собственный арканоид. С мышью и прочими прибамбасами. Обработка прерываний… INT 10h… INT 13h… эх, было время… 1992 год… Те времена прошли. По крайней мере, для меня.
Что я могу сказать тем, кто хочет делать ремейки? Дело это неблагодарное. Огребёте от авторов оригинала. Если не от них, так от фанатов той платформы, на которой игра сделана. Если не от них, то от фанатов самой игры. Если не от них, так просто… И только если вы не боитесь всех этих забрасываний камнями или ещё чем, то лишь в таком случае делайте ремейки старых игр. Да и то, если ваша цель — не заработать деньги, а предоставить возможность современным игрокам испытать те же чувства, которые испытывали вы, играя десять-двадцать лет назад в старые игры.
Старые игры не значит плохие. Многие старые игры, если с них сдуть пыль, подчистить, подмазать и подклеить… Эти игрушки заткнут за пояс многие современные поделки.
Удачи вам, любители старых игр!