Игры по Star Wars с древних времен до наших дней. Часть 80 — калькуляторные войны (Casio)
Закончив с американскими калькуляторами Texas Instruments и Hewlett-Packard, мы с Sightsaber двинулись дальше — на Восток. Туда, где непонятные иероглифы, особый подход к геймдизайну и анимешные большеглазые девочки (последние, впрочем, вряд ли появятся в марафоне). Путь этот оказался тернист, а потому и скорость нашего продвижения резко упала. Поверьте, разбираться с журналами и инструкциями на японском в разы сложнее, чем на европейских языках. Однако кое в чем нам всё же повезло — калькуляторы Casio, которым и посвящена статья, были еще любимы и во Франции.
Но даже если вынести за скобки трудности перевода, устройства Casio в целом оказались довольно проблемными платформами. Судя по всему, они не настолько популярны, как TI и HP, так что главная загвоздка заключалась в том, чтобы найти рабочие и адекватные эмуляторы. И удавалось это не всегда. Например, игры с FX-7700 пришлось запускать на виртуальном FX-8000G, и легкой эта задача не была. Так, на одну только Rebel Assault ушло примерно полмесяца. Ох, и намучался же с ней Sightsaber… О его страданиях вы сможете почитать в конце статьи — я попросил его поделиться впечатлениями и опытом.
Да, из-за Casio марафон сильно забуксовал, но нет худа без добра — благодаря этому я успел ознакомиться с серией King's Bounty и впервые пройти «Легенду о рыцаре», «Принцессу в доспехах» и кампании из «Перекрестка миров».
А еще перед вами юбилейный выпуск, причем юбилейный вдвойне! Это не только 80-я часть моего затянувшегося марафона, в ней я также дошел до 450-го проекта по Star Wars. Фух!
Проекты в подборке:
446. Star Wars (1983) — Линейный шутер. Буквально
Платформа: Casio FX-702P
Разработчик: 大石 哲也
Знакомиться с устройствами Casio мы начнем вовсе не с графических калькуляторов, а с самых обычных. Ну как обычных — программируемых, конечно, но с циферками и символами в качестве визуала. Первым на очереди будет FX-702P, выпускавшийся с 1981-го по 1984 год. Он оснащен однострочным матричным жидкокристаллическим дисплеем на 20 знаков и предоставляет пользователям память аж на 1680 байт.
Японская Star Wars 1983 года для Casio FX-702P напомнила мне итальянскую Star Wars 1983-го для HP-41C, о которой я рассказывал ранее. По сути, обе являются эдакими тирами от первого лица про расстрел СИД-истребителей, в которых игровое поле ужато до одной калькуляторной строки. Правда, если европейский проект был чересчур уж мудреным и предлагал искать противника на условно-двухмерном участке космоса, то азиатская версия сильно проще — перемещать прицел здесь можно только влево и вправо.
Итак, мы появляемся где-то в межзвездном пространстве и видим на экране один-единственный символ — «+». Это что-то вроде прицела, хотя и расположенного почему-то с левого края, а не по центру. Наша задача на этой стадии: сперва обнаружить, а после и навестись на врага. Для начала нажимаем «$», чем активируем радар. Например, он сообщает: «DIRECTION 113», — это значит, что враг в 113 единицах чего-то там слева от нас.
Перемещение повешено на цифры и скобки. «5» и «6» позволяют скакнуть влево или вправо соответственно на 100 единиц чего-то там, «8» и «9» — на 30, ну а «(» и «)» используются для «тонкой» наводки на противника, когда он уже появляется на экране. Что интересно, при затяжных гиперпрыжках можно получить повреждения.
Когда имперец оказывается в поле зрения, прицел меняется с «+» на «–», ну а на самом дисплее начинает отображаться буква «Н». Задача игрока на этой стадии: пододвинуть СИД в центр экрана (визуально он никак не отмечен, так что наводиться приходится на глазок) и выстрелить клавишей «#». В случае удачного попадания игрок видит взрыв в виде «( ( ( ( ( ( ) ) ) ) ) )». Игра заканчивается, как только пользователь израсходует всю энергию.
В отличие от итальянской, японская Star Wars не такая сложная, а также куда проще в освоении. Возможно, именно из-за этого она не вызывает каких-либо чувств и воспринимается как «ну сойдет».
447. Death Star (1984) — Пиковый «крестокрыл»
Платформа: Casio PB-100
Разработчик: 近藤 津生
Наша следующая остановка: Casio PB-100 — по сути, программируемый калькулятор, но позиционирующийся изготовителем как КПК. В родной Японии он вышел в 1982 году, а в начале 1983-го добрался и до Франции. Устройство было создано как средство для программирования на BASIC, и, со слов журналиста Жана-Луи Маркса, аббревиатура PB как раз означает Personal BASIC. Впрочем, этот карманный компьютер довольно быстро потеснила более продвинутая модель PB-700, а после — и PB-1000. На текущий момент Sightsaber сумел обнаружить лишь одну ЗВ-игру для «соточки», и вот о ней-то мы и поговорим.
Death Star — представительница уже подзабытого мной жанра «траншейных аркад». Суть в них обычно заключается в следующем: расстреливаем N-е количество СИД-истребителей, а после прицеливаемся и выпускаем торпеду в тепловыводящее отверстие «Звезды Смерти». В игре японского автора 近藤 津生 примерно всё то же самое, только убивать никого не нужно.
÷ ] ♠ [ 10 — это не просто набор символов, а почти что «скриншот» из игры. «Пики» по центру — это «крестокрыл» Люка Скайуокера. Он может двигаться влево или вправо в пределах узкой траншеи, очерченной квадратными скобками. Знак деления — это лазерная турель «Звезды Смерти». Пушки появляются по бокам, и задача игрока в этот момент: прижаться к противоположной стенке, чтобы не попасть под выстрел. Ну а цифра с правого края показывает, как далеко до заветной «дырки». Как только счетчик примет значение 20, игрок должен переместиться в центр траншеи и нажать F, чтобы почтить память имперской станции.
448. Wars-Star (1986) — Задумка интересная, а реализация г…
Платформа: Casio FX-702P
Разработчик: Rémi Lauger
Я уже упоминал ранее, что калькуляторы Casio пользовались определенной популярностью во Франции, и Wars-Star — гость как раз из этой страны. Как утверждает автор программы Реми, игра рассказывает о пилоте-повстанце, решившем уничтожить «Звезду Смерти». При этом, добавляет он, любые сходства с фильмами, уже снятыми или еще нет, являются случайным совпадением. Да-да, юристы Lucasfilm, теперь не докопаетесь!
На бумаге Wars-Star для FX-702P выглядит отлично и куда интереснее Death Star для PB-100. Так, в этой игре воспроизводится не только культовая сцена в траншее, но и всё то, что ей предшествовало. Здесь аж целых пять уровней, и каждый из них уникален. Это, пожалуй, главное достоинство проекта, ведь автор умудрился реализовать разные механики и визуал в файле размером в 2,5 КБ.
Увы, на практике Wars-Star оказалась гиперхардкорной, кривой, неудобной и вообще крайне раздражающей игрой. Sightsaber пришлось повозиться, чтобы доработать оригинальный код, но даже так у меня не хватило нервов хотя бы долететь до «Звезды Смерти». Не знаю, вина ли это автора или эмуляции, но «ай фак ю булщит щит»©.
На первом уровне нам предлагают взлететь, для чего надо быстро тыкать по кнопкам X и Y. Справа при этом отображается число, которое вроде как влияет на то, сколько топлива по итогам миссии нам дадут. Вот только зачем оно нужно, автор не поясняет, да и в самой игре это, похоже, ни на что не влияет. Проиграть на начальной стадии нельзя, но проблемы здесь всё равно возникли. По какой-то причине клавиши X и Y изначально не работали. В итоге Sightsaber переназначил всё управление, в том числе и на последующих уровнях, на K и L.
Второй эпизод — пространственно-временной коридор. Тот самый, через который звездолет проходит во время гиперпрыжка. Главная задача здесь: не выходить за его пределы, двигая «крестокрылом» кнопками «(» и «)». Не понимаю, зачем нужно было буквально на каждом уровне менять раскладку управления, но это одна из причин, по которой игра воспринимается крайне недружелюбной. Несмотря на то, что почти везде задействованы всего две клавиши, Реми их постоянно переназначает.
Добавляет негатива и уже упомянутая мной гиперсложность. В оригинальной, не модифицированной Sightsaber версии я не смог пройти этот треклятый второй уровень. «Крестокрыл» по какой-то причине так и норовил вылететь за пределы коридора, порой вообще не реагируя на мои нажатия. Я уже был готов плюнуть на Wars-Star, но мой товарищ сократил время полета и посоветовал в дебаг-консоли снизить скорость эмуляции на единицу. Это помогло, и я сумел-таки добраться до…
Итак, на подлете к «Звезде Смерти» игрок должен уклоняться от мин (π), нажимая клавишу «↑», и расстреливать имперские истребители (*), тыкая по «*». Как видите, механика снова двухкнопочная, но автор зачем-то опять поменял клавиши. Ну да бог с ними, ведь третий уровень оказался еще более раздражающим, нежели второй. С СИДами проблем не возникает в принципе. Увидел противника — выстрелил. А вот с минами… В какой именно момент надо тыкать кнопку уклонения, крайне неочевидно. Иногда у меня получалось избежать столкновения с этими «пи», но, кажется, чисто случайно. Учитывая, что на третьем уровне дают всего две жизни, а после каждого геймовера нужно перепроходить всё с нуля, через какое-то время я послал Wars-Star куда подальше и предложил Sightsaber самому записать видео с геймплеем. Мой товарищ, к слову, делал себе трейнеры, чтобы попрактиковаться на отдельно взятых уровнях, не перепроходя всю игру. Мне он их тоже кидал, но к тому моменту Wars-Star была противна мне на всех уровнях моего сознательного и бессознательного. В общем, я расскажу вам, что там будет дальше, но уже исключительно по описанию самого автора.
Преодолев Темную зону, игрок со стальными нервами доберется до культовой траншеи «Звезды Смерти». Финальная часть миссии делится на две стадии. В первой нужно избегать имперских истребителей и огня лазерных батарей, а во второй — нацелиться на выпускное отверстие, выстрелить и сразу же вылететь из траншеи. Что забавно, в руководстве Реми про последнее вообще не сказано. То есть ты с огромным трудом доходишь до финала, делаешь всё по инструкции, а игра такая: «Прости, ты разбился о стенку». Чиво? А кто вообще сказал, что надо вылетать? На какую кнопку?.. На калькуляторе их 65 штук, и на каждом уровне автор выбирает их словно рандомно. Это походит на какое-то издевательство, если честно.
Моему товарищу Sightsaber игра очень понравилась. Мол, интересная, разнообразная, и третий уровень совсем не сложный. А я говорю: «Кусок @#$%^ эта ваша Wars-Star». Тот случай, когда проект меня реально выбесил своей кривизной, недружелюбностью и адовой сложностью. Конечно, это замечательно, что автор решил замутить сразу пять уровней, а не просто показать стандартную сцену пролета по траншее, но вот с реализацией и играбельностью явно проблемы. Есть, конечно, вероятность, что кривизны геймплею добавляет эмулятор, но не думаю, что на оригинальном калькуляторе было ощутимо комфортнее.
449. Rebel Assault (1997) — Стреляем на глазок
Платформа: Casio FX-7700
Разработчик: Marcus Lundstrоm
Мы с Sightsaber провозились с Rebel Assault больше двух недель. Главная проблема заключалась в том, что игра написана для калькулятора Casio 7700GB, но эмулятора этой конкретной модели мы так и не нашли. Пришлось выкручиваться и запускать игрушку на виртуальном FX-8000G. Увы, изначальная сборка оказалась неиграбельной: выстрелы не регистрировались, да и противник не атаковал в ответ. Однако у этой сказки счастливый конец. Спустя дни мучений, задействовав неимоверное количество костылей, мой друг всё-таки добился нужного результата, и я сумел поиграть в Rebel Assault!
Я не уверен, что версия Sightsaber идеально точно воспроизводит оригинал, но в любом случае он проделал отличную работу. Благодаря ему еще одна безызвестная и утраченная игра по Star Wars вышла из сумрака.
Итак, по классике: есть «крестокрыл» и СИД-истребитель, пилоты которых хотят друг друга уничтожить. Имперская вражина располагается в левой части экрана, а наш доблестный повстанец — в правой. Геймплей пошаговый. Каждый раунд оба звездолета занимают разную высоту, и задача игрока: визуально прикинуть, на каком уровне находится противник, вписать цифру от 1 до 63 и надеяться, что глазомер не подвел.
Впрочем, проиграть в Rebel Assault довольно сложно. Загибаем пальчики. Во-первых, у СИДа хитбокс 10 пикселей, а у «крестокрыла» — 4. Во-вторых, враг не атакует в ответку, если ты по нему попал. В-третьих, если ты чудом или намеренно промазал, то имперец будет стрелять с точностью штурмовиков из оригинальной трилогии (по факту — рандомно). Учитывая первый пункт, попасть в нас он может только чудом. В какой-то момент я пытался намеренно «слить катку», и это оказалось сложнее, чем выиграть.
Пожалуй, главное и единственное достоинство Rebel Assault, если сравнивать с предыдущими играми с Casio — это визуал. Наконец перед нами графическая игра, а не набор символов на узеньком экранчике. Конечно, увлекательной это ее не делает, но хотя бы в геймплее можно разобраться по наитию, а не изучая объемные инструкции через переводчик.
450. Star Wars (1997) — Вооружаемся транспортиром
Платформа: Casio FX-7700
Разработчик: Alan Somers
Star Wars для Casio FX-7700 во многом похожа на Rebel Assault для той же платформы. Во-первых, с ними обеими Sightsaber мучался довольно долго, пытаясь запустить и отладить их на эмуляторе FX-8000G. Во-вторых, геймплей этих двух проектов почти идентичен: нужно прицелиться на глазок, ввести цифры, выстрелить и надеяться на попадание. Вот только «Звездные войны» Алана Сомерса оказались поинтереснее «Нападения повстанцев» Маркуса Лундстрома, и сейчас я расскажу почему.
Первое заметное отличие Star Wars от Rebel Assault — здесь сражаются два СИД-истребителя. И если за штурвалом черного логично оказывается Дарт Вейдер, то вот в белом — сюрприз — сидит Люк Скайуокер. Неожиданно, но думаю, причин может быть две. Либо у автора не получилось отрисовать нормально «крестокрыл», либо не удалось забалансировать геймплей так, чтобы ни у одного из соперников не было преимущества. Напомню, в Rebel Assault хитбокс у СИДа составляет 10 пикселей, а у «крестокрыла» — только 4. Тут же обе стороны полностью в равных условиях.
Второе, более важное отличие — противники располагаются не друг напротив друга, а каждый раунд появляются в случайном месте двухмерного игрового поля. Геймплей всё такой же пошаговый, но вместо высоты противника здесь требуется прописывать углы выстрелов. Оценить их на глазок значительно труднее, чем уровень имперца в Rebel Assault — особенно когда враг находится далеко. Кроме того, Вейдер, в отличие от рядового пилота, стреляет более метко и попадает в 50% случаев. Всё это делает Star Wars куда сложнее своего «конкурента», но в то же время интереснее.
Увы, впечатления от игры несколько испортила техническая сторона. По какой-то причине на эмуляторе FX-8000G во время выстрела на экране начинает мигать текст, чего быть не должно. Sightsaber долго провозился, пытаясь решить эту проблему, но так и не сумел. В любом случае он проделал отличную работу и добился главного — играбельности еще одной крайне редкой Star Wars! При этом 450-й в моем марафоне…
Sightsaber и его приключения с эмуляторами
Как я и обещал в начале статьи, передаю слово моему товарищу Sightsaber. Ему как раз не терпится поделиться впечатлениями от «Эмуляторных войн»:
«Бли-и-и-и-ин!..
Таких бестолковых с точки зрения эмуляции платформ, как калькуляторы Casio, в нашем марафоне ещё не было.
Самое непонятное, что игр в 80-е и 90-е для Casio издали реально много — в основном в виде листингов в журналах, прежде всего японских. И никак я не мог ожидать, что у таких популярных платформ будет так бедно с эмуляцией. Однако профильная вики предлагает нам богатую россыпь эмуляторов, даже официальные есть — в основном, правда, последних моделей, которые у нас ещё впереди. А что же мы имеем для старых игр?
Честного нормального эмулятора для карманного компьютера (так позиционировал его производитель) Casio PB-100 я не нашёл. Есть французский мультиэмулятор PockEmul, в котором в конце прошлого года вроде бы появился нужный эмуль, но: а) автор — позорный жмот и хочет за него денег; б) большая часть купивших его грязно ругают; в) минимальные требования для него — Windows 10, а у меня Windows 7. В общем, покупать не стали.
Некоторое время пытался запустить единственную найденную игру на эмуляторе отечественной «Электроники MK-85» (более-менее совместимо, но не до конца), разобрался со спецификой ввода (никаких внешних файлов эмуль не признаёт, ввод только ручками в самом эмуляторе). Но эмуль почему-то выдаёт ошибку, хотя вроде программу ввёл правильно.
В итоге игра запустилась на симуляторе («нечестном» эмуляторе, т. е. программе, дающей только функциональное, но не аппаратное воспроизведение). От калькулятора тут только дисплей, зато после переключения меню с японского на английский и танцев с бубнами с форматами ввода сумел заставить его «кушать» листинг в текстовом файле. В целом всё терпимо, есть даже окно дебагера.
Для Casio FX-702P у нас есть эмулятор, написанный по мотивам вышеупомянутого эмуля для MK-85. Но то, как криво работает этот кусок экскрементов… Во-первых, в нём не пашет команда SGN! Ладно, напишем несколько лишних строк кода и сэмулируем её. Но блин, эмулятор не поддерживает переход на другую страницу! А подпрограммы должны лежать именно там… Пришлось тупо слить всё в одну программу на одной странице, попереименовывав адреса для Goto и Gosub. Как-то даже зафурычило. Зато во второй игре по непонятной причине не работали почти все клавиши управления, пришлось переместить их на две работающие. Плюс огромные непонятки со скоростью эмуляции (такое ощущение, что всё бегает раза в три быстрее нужного, пришлось замедлять, благо эмуль позволяет). Плюс две команды PRT CSR в этом долбаном недоэмуляторе не исполняются, и вместо выбранного знакоместа всегда печатает в первом! И окно дебагера работает криво, зависает.
Для Casio FX-7700 эмуляторов нет. Совсем. Из более-менее похожего есть для FX-8000G, но вот с ним я наматерился вволю! Местный Casio BASIC пришлось выучить досконально. Дело в том, что баги в работе эмуляторов наложились на то, что в обеих играх были явные ошибки кода, которые пришлось отлаживать и частично дописывать недостающие куски программы. Плюс в первой игре по непонятным мне причинам не работает команда тождества, вокруг которой строится обсчёт попадания по противнику. После того, как идея явилась во сне (!), пришлось САМОМУ писать мини-программу для её имитации (на символах ≥ и < — другие тоже не пашут). Видимо, эмулятор не вывозил какой-то хитрый режим. Со второй игрой тоже попрыгал: здесь «=» работает (КАК?! ПОЧЕМУ?!), зато тут пришлось переписывать больше всего, чтобы заработало (включая форму истребителя Люка Скайуокера). Вишенкой на торте стало то, что автор игры сделал так, что после каждого обмена выстрелами с Дартом Вейдером счётчики попаданий обнулялись, и игра длилась до бесконечности.
Ещё одну бяку победить так и не смог. У калькулятора FX-8000G два переключающихся кнопкой дисплея — текстовый и графический. При выводе анимации (звёзды в первой игре и выстрелы во второй) текстовый дисплей почему-то не пропадает, а начинает мигать (подозреваю, это следствие кривости эмулятора, а не моих рук). Благо итоговую картинку можно посмотреть, нажав специальную кнопку [G<->T].
В общем, вы поняли, думаю. Полтора месяца попыток, переделываний, изобретения костылей для костылей для костылей, несколько категоричных заявлений в духе «А иди оно всё, больше не могу, сдаюсь!», — и пять игр более-менее запустилось. И самое-то обидное, что проекты реально занимательные, в каждом есть интересные геймплейные решения. Вот цена, которую приходится платить за продвижение по марафону вперёд нам с Сергеем…»
Продолжение следует...