27 ноября прошёл третий фестиваль ретрокомпьютеров «Демодуляция», организованный музеем Яндекса. В этом году он объединил под собой множество отечественных и зарубежных музеев и ретроэнтузиатов. На мероприятии со своим стендом дебютировал молодой проект антимузея InterACTION, созданный Антоном Васильевым @Barsik44, Егором Кулешовым @Limows и Ильёй Илембитовым. Они организовали инсталляцию популярного шоу из 90-х годов «Позвоните Кузе», которую Антон придумал и собрал совместно с Виктором Карасевым, основателем YouTube-канала «Уютный подвальчик». Редакция Хабра поговорила с ними о технической реализации проекта и стриме, в рамках которого зрителям предлагали позвонить и поиграть в «Позвоните Кузе» так, как это было десятки лет назад.
История тролля Кузи берёт начало в Дании. Компания ITE Media в 1990 году запустила детское телевизионное шоу Hugo, в рамках которого всем желающим предлагали поиграть в игру в прямом эфире. Для этого требовался телевизор, кнопочный телефон (нажатием на кнопки осуществлялось управление троллем) и чтобы телефон поддерживал тоновый режим. В Россию игра пришла только в декабре 1998 года, стартовав на канале RTR2 («Россия») по выходным. В начале 2000-х годов компания «МедиаХауз» выпустила эту игру для ПК.
Согласно сюжету, в самом начале игры злая ведьма Сцилла похищает семью Кузи — его жену Кузелину (в Дании Hugoline) и детей Кузерата, Кузерита и Кузерута (в оригинале Rat, Rit и Rut). Для их спасения тролль должен пройти множество мини-игр в различных локациях — пещерах, лесах (в том числе заснеженных), болотах, шахтах и не только. В конце его ждёт встреча с боссом в лице самой Сциллы, для победы над которой необходимо решить загадку с верёвками и ключами.
Благодаря своему формату в «Позвоните Кузе» могли поиграть все, у кого на тот момент не было ни консолей, ни персональных компьютеров. При условии, конечно, что они дозвонятся в эфир телепередачи. Игра быстро набрала большую популярность не только в России и Дании — Hugo получил свои адаптации в общей сложности в 40 странах мира. Отечественным зрителям он запомнился ещё и за оригинальные фразы в русскоязычной озвучке — «Смех смехом, а по мне булыжник проехал», «Угадай, кто сказал “Чпок”, Кузя или стена???», «Голова, руки, ноги на месте, а где ж всё остальное?» и не только.
InterACTION и «Уютный подвальчик» воссоздали игру с использованием технологий, близких к аутентичным, о чём рассказали в отдельном ролике на YouTube. В 1990-х годах для реализации идеи использовали современные на тот момент технологии — датскую систему ITE 3000, которая позже продавалась в другие страны вместе с правами на «Позвоните Кузе». В 1990 году её стоимость составляла $100 тысяч. Основана ITE 3000 на двух компьютерах Amiga 3000, дополненных DTMF-декодером, миди-сэмплером и другой необходимой периферией. Современная игра «Позвоните Кузе» воспроизведена на более старом компьютере Amiga 500, поскольку именно Amiga 3000 ребятам достать не удалось. DTMF-декодер они воссоздали самостоятельно, проведя небольшое расследование в Сети.
Как к вам в голову пришла идея воспроизведения «Позвоните Кузе» на стриме? С чего начинался проект?
Антон Васильев: У меня одно из хобби — реализовывать всякие безумные штуки, как, собственно, «Позвоните Кузе». Я нашёл некоторую информацию по тому, как это могло быть хардварно реализовано, и предложил Вите Карасёву сделать такую штуку и снять про неё видео. Учитывая, что нас пригласили с музеем на «Демодуляцию», мы решили в ускоренном темпе это всё сделать и провести стрим до мероприятия.
Виктор Карасев: Антон не даст соврать, что любой такой проект начинается с продумывания реализации. Обычно вариантов два — либо воспроизвести проект с использованием полностью современных технологий, на том же Arduino, либо постараться сделать максимально аутентично и близко к тому, что было на момент создания оригинального устройства. Второй вариант в рамках ретроспективы всегда интереснее, поэтому и было выбрано решение близкое к тому, что было у разработчиков.
Кстати, я дублировал наш проект на английском языке и публиковал успехи в Twitter. Новость об этом настолько завирусилась, что с нами вышел на контакт один из разработчиков оригинального датского Hugo. Он прислал нам фотографию оригинального DTMF-декодера, которую использовали в DOS-версии игры. Мы с Антоном очень смеялись, когда узнали, что она была реализовано ровно на той же самой микросхеме, на которой её реализовал Антон.
В целом стоит отметить, что сама идея не нова и мы не первые, кто это реализовывал. На этапе поиска информации для проекта мы узнали, что каком-то региональном канале в 1990-х годах какие-то ребята либо взяли оборудование для Кузи, либо его скопировали и проводили игры по Sega Mega Drive. Но это была локальная передача в каком-то небольшом городе.
Как получилось, что вы угадали с микросхемой?
Антон Васильев: Я провёл небольшое расследование и выяснил, что для распознавания DTMF-сигналов есть классическая микросхема MT8870. Кроме неё в то время вряд ли что-то ещё могли использовать — или только отдельный специализированный компьютер. Поэтому проект делал на этой микросхеме. Ну и да, оказалось, что по меньшей мере в DOS-версии игры используется именно такая микросхема. Изначально, конечно, с Amiga использовали отдельную плату компьютера промышленного уровня.
Тяжело было достать компоненты?
Антон Васильев: На самом деле, нет. Они продаются во многих магазинах радиоэлектроники, и никакой проблемы тут нет. Опытный образец платы для обработки сигналов с телефона сделали буквально за неделю, взяли Amiga 500, чуть осовременили элементную базу. Я всё это делал на старых микросхемах 1990-х годов, чтобы попасть в антураж. Нам писали, кстати, что мы пошли неверным путём — якобы надо было делать на Arduino, программированием. Но у нас компьютер 1989-го года, это не та история. Поэтому я взял оригинальные логические микросхемы и на них все это собрал. Получилось максимально дубово, но оно прекрасно работает и эмулирует джойстик.
Много денег потратили на то, чтобы раздобыть необходимые железки? Что теперь будете с ними делать?
Антон Васильев: Затраты сложно посчитать — у нас ещё на старте было на руках всё необходимое. Что касается дальнейших планов, я сейчас развожу платы для мелкой серии. Макетка остаётся для других проектов, компоненты пойдут в будущие платы.
Были какие-нибудь особые сложности при изготовлении платы или проведении стрима?
Антон Васильев: При изготовлении — абсолютно никаких. Я на макетной плате всё это собрал буквально за половину рабочего дня. А вот перед проведением стрима приходилось решать проблему с выводом сигнала и образами дискет. Мы нашли оригинальный образ на датском — две игры на шести дискетах и ещё две игры на шести дискетах. Тестовые стримы мы проводили с ними. Но потом Владислав, основавший Вконтакте группу фанатов Кузи, посоветовал скачать немецкий образ игры на восьми дискетах. Там были все четыре игры с возможностью выбора. Ещё была игра с лабиринтом на трёх дискетах, которые приходилось переставлять. Из-за этого игру пришлось на стриме несколько раз перезапускать.
Виктор Карасев: Проблема с выводом сигнала техническая и никак не связана с самим Кузей. Адаптация такого старого оборудования, как Amiga 500, к современным реалиям всегда связана с некоторыми проблемами. Существует огромное множество всяких апскейлеров и плат, выдающих со старых сигналов очень хорошие картинки, но они стоят космических денег. Поскольку мы любители, то такие не используем. Вопросы именно технической реализации картинки не имеют ничего общего с реализацией самого проекта.
Антон Васильев: По сути у нас плата обрабатывает поступающий сигнал и прикидывается джойстиком. Ничего сложного в самом хардваре нет. Кроме того, подобную микросхему можно применить и к Sega Mega Drive, и к IBM-PC совместимым компьютерам, включив через гейм-порт. Мы планируем выложить на GitHub схему платы, но в нашем видео она есть. Так что особо прошаренные могут сделать скриншот и собрать себе уже сейчас. Промышленно изготовленный вариант этой платы, кстати, мы передадим в музей Яндекса.
Не боитесь проблем с авторскими правами, как это регулярно происходит с Nintendo?
Виктор Карасев: По технологической части — нет. Тут важно понимать, что даже разработчики при создании игры использовали открытые технологии. Это не что-то эксклюзивное для Hugo. Создателям принадлежат права на самого персонажа, но не на разработку. Поэтому, выкладывая в общий доступ инструкции для разработки, мы не нарушаем никаких авторских прав.
Кроме того, мы не призываем зарабатывать на этом деньги и сами не берём за это оплату. На стриме один из зрителей обвинял нас в нарушении авторских прав, хотя по сути мы ничего с этого не зарабатываем. Наверняка появятся люди, которых будет интересовать этот вопрос, но мы хотели только поиграть на стриме со зрителями и не планируем это продавать. Даже в 1990-х годах линии, по которым звонили в телешоу, были бесплатные. Плата взималась только оператором в случае совершения международного звонка.
Как прошёл стрим?
Антон Васильев: Я думаю, что всё это прошло прекрасно! Если честно, я не сильно ожидал такого результата. С началом стрима обрушился шквал звонков — одновременно висело не менее 4—5 входящих звонков. Я выхватил одного человека, ему очень повезло. Потом, видимо, из-за большого потока входящих звонков и сообщений нам оператор заблокировал связь. Возможно, конечно, это лаганула сеть или неисправность была в самой сим-карте.
Стримили мы больше двух часов. Первый дозвонившийся был входящий, потом из-за перебоев сети мы решили сами перезванивать. В основном выбирали тех, кто посылал прикольные сообщения. Если они отвечали на наши звонки, то могли поиграть в игру. Некоторые прям кричали от радости. В общем, было очень весело.
Виктор Карасев: Мы за эти два часа перебрали практически все мемные ситуации с отсылками на телевидение. Всё сложилось настолько круто, что не хочется повторять. Но люди очень просят, поэтому под новый год мы сделаем ещё один стрим с игрой. Кроме того, по Кузе сделано довольно много игр. На первом стриме мы охватили лишь небольшой спектр.
Антон Васильев: Хотелось бы отметить некоторые технические особенности. На YouTube большая задержка в видео — несколько секунд. Поэтому мы создали сервер в Discord и отправляли игрокам ссылку на него, чтобы компенсировать эту задержку. Но у нас был один человек, который не мог к нему нормально подключиться. Он играл фактически вслепую, ориентируясь по картинкам со стрима и нашим с Витей указаниям. Он прошёл целый уровень с железной дорогой, но увидеть последствия своих решений мог с большой задержкой.
Вы указали, что для канала это был невероятный успех. Сколько людей посмотрело стрим?
Виктор Карасев: Меньше тысячи онлайн не падал. Пиковое количество зрителей достигло уровня 1700 человек. По завершении стрима YouTube показал 35 тысяч уникальных просмотров. Эту штуку мы сделали первыми в мире — именно на любительском уровне в современном мире показали и рассказали подробно, как это работает, дав возможность поиграть.
Как часто вы сами в 90-е играли в Кузю по ТВ или на приставках?
Антон Васильев: Ни разу, но точно помню, что по телевизору смотрел и то недолго. Передачу закрыли, когда я только вошёл в сознательный возраст. :)
Виктор Карасев: Я очень хотел поиграть, но на тот момент жил в Санкт-Петербурге. Междугородняя связь довольно дорогая, и если бы я всё же позвонил, получил бы конкретный нагоняй от родителей!
Есть какие-нибудь напутствия для людей, желающих повторить ваш опыт?
Антон Васильев: Рекомендации по созданию платы мы опубликуем позже. По поводу реализации проектов всё просто — если идея витает в воздухе, реализуйте её. Как видите, всё довольно просто и зависит только от вашего желания.
И напоследок — назовите три ваших любимых игры, вне зависимости от времени их выпуска.
Антон Васильев: FlatOut2, Unreal Tournament (99 и 3) и, внезапно, Space Engineers. В целом, я нечасто играю, но в эти три в любой момент готов погонять.
Егор Кулешов: Ori and the Will of the Wisp, Metro Last Light и Double Dragon 2.
Илья Илембитов: Black & White, Star Wars Jedi Knight II: Jedi Outcast и Jagged Alliance 2.
Виктор Карасев: Full Throttle, Wolfenstien 3d и Final Fantasy VIII.
***
Telegram-каналы ретроэнтузиастов:
канал Егора Кулешова Limowski' Precious Little Life;
канал Антона Васильева Barsik44's All in One.