Конкурс Yandex Retro Games Battle 2020 стартовал!
Господа, ZXBITLES приветствует Вас!
В своем предыдущем посте на DTF я уже писал, что мы разработали игру для конкурса Yandex Retro Games Battle 2020. Мы очень ждали начала конкурса, и вот, после небольшой задержки, все игры доступны для скачивания и голосования!
Учитывая комментарии к прошлому посту, я немного расскажу о том, что такое ZX Spectrum и в чем особенности игр для него, поскольку не всем это может быть известно.
ZX Spectrum это восьмибитный компьютер с частотой процессора 3,5 МГц. У классического компьютера есть 48КБ памяти из которых 7,5КБ отведено под видеопамять. Таким образом, получается, что игра может быть 40,5КБ максимум. Кроме того, классический спек не обладал музыкальным сопроцессором, а получил его только в следующих моделях, впрочем, как и прирост памяти до 128КБ. В связи с этим генерация звуков и музыки возможна только через однобитный бипер. Учитывая, что генерация звука осуществляется процессором, то выходит, что или мы выдаем звук, или осуществляем иные операции. Иными словами, реализовать вывод музыки и звуков через одноканальный бипер и при этом вывести какую-нибудь графику невозможно. В случае примитивных мелодий и не шустрого геймплея можно осуществить вывод звуков с чередованием вывода графики и обсчета логики. Однако, играется это так себе.
У спека есть всего 15 цветов. Семь основных и шесть дополнительных с повышенной яркостью. Именно поэтому, не может не вызывать восторга талант художников, которые рисуют заставки в рамках этих ограничений. Попробуйте поискать в сети “ZX Spectrum art” или что-то подобное. Если для Вас спек это нечто новое, то будете приятно удивлены. Кстати, у спека есть много клонов не только, выпущенных в советском союзе, но и за рубежом. Подробности у гугла.
Вернемся к музыке. Биперный плеер вместе с самой музыкой занимает порядка 1,5 – 1,7КБ. И остается у нас в лучшем случае 39КБ на всю игру. А ведь еще нужно хранить спрайты, массивы карт, звуки, текст и какую-никакую логику игры. Таким образом, написание игры под спек это уже само по себе приключение. Отдельно можно пострадать, после того как игра закончена, пытаясь перевести игру на другие языки. Дело в том, что мы ведь ее уже написали, и реализовали все что, могли, оптимизируя код и используя каждый байт. Теперь же при попытке заменить слово «FIRE» на немецкое «FEUER», мы получаем еще два лишних символа, которые просто некуда вставить, ибо память уже кончилась. И вот мы начинаем ходить кругами в поисках того, что можно дополнительно сжать или вырезать.
Все это я описал, чтобы неискушенный читатель понял каково это, сделать игру для ZX Spectrum, а учитывая ограничения по цвету, памяти и частоте процессора сделать ее играбельной и интересной!
ZX Spectrum был моим первым компьютером и благодаря ему я стал профессиональным программистом. Поэтому, написание игры для меня, это своего рода возврат долга этой прекрасной платформе с множеством фанатов по всему миру. Это становится тем более исключительным, если представить, что далеко не все ретрокомпьютеры до сих пор могут похвастаться большим сообществом.
Вернемся к конкурсу. Яндекс запустил этот конкурс в целях популяризации ретрогеймдева привлечения внимания к этой части истории. Я искренне признателен Яндексу и лично ребятам из Яндекс музея за этот маленький праздник спека!
На мой взгляд, игры этого года теперь смотрятся менее разношерстно в плане качества, хотя я еще не успел пощупать каждую.
Предлагаю это сделать и Вам на странице конкурса. На мой взгляд, лучше скачать архив и запустить на десктопе (а еще лучше на реальном железе!), несмотря на то, что есть возможность запуска во встроенном эмуляторе браузера.
К примеру, в моем браузере нет звука ни для одной игры, хотя у некоторых работает. Также, мне известно, что некоторые игры в принципе не запускаются в эмуляторе. Ребята из Яндекса пытаются решить эту проблему. Наконец, нашу игру однозначно лучше запускать локально, хотя бы потому, что она состоит из двух частей, а встроенный эмулятор откроет только первую.
Игра доступна на четырех языках. Есть вкладыш с инструкцией. Тем не менее я позволю себе прояснить несколько моментов, с которыми столкнулись игроки.
Подбирать патроны и броню нужно став над врагом, и затем нажав клавишу «вниз». Если кончились патроны, нужно подойти вплотную и нажать «огонь» пнув врага. Так можно сталкивать их в волчьи ямы с шипами или в воду. Чтобы пересечь эти препятствия самому, надо столкнуть в них камень. Опять же, подходим в упор и жмем огонь. Если уровень испорчен (скинули камень не туда или провалились и застряли в ловушке), то жмем «Break», а затем «R» для рестарта уровня. Для прохода в пещеры нажмите клавишу «вверх». Пожалуй, на этом всё.
Как всегда, буду рад Вашим комментариям, отзывам, и конечно голосам!
Благодарю за внимание.