Кто бы мог подумать, что игра, выпущенная в далеком 1993 году, станет настоящей платформой для экспериментов разработчиков. Doom за свою историю запускали на самых необычных устройствах: на 100 фунтах заплесневелого картофеля (да, это правда), в BIOS материнской платы, на зубной щетке с WiFi и даже в версии, полностью созданной искусственным интеллектом.

А как насчет квантовых компьютеров? Оказывается, на них Doom тоже пытаются запустить. Пользователь GitHub по имени Lumorti создал проект под названием Quandoom — воссоздание первого уровня культового шутера, предназначенное для работы на квантовых компьютерах. Но вот проблема: пока не существует квантового компьютера, способного полноценно запустить эту версию игры. Однако ее можно симулировать на обычном ноутбуке с помощью симулятора QASM.

Чтобы запустить Quandoom, потребуется 70 000 кубитов и 80 миллионов вентилей. На данный момент квантовый компьютер с наибольшим количеством кубитов принадлежит компании Atom Computing, и он насчитывает всего 1225 кубитов. Так что для того, чтобы поиграть в Doom на квантовом компьютере, нужно увеличить мощность этих машин примерно в 70 раз. Но не стоит паниковать!

Причем это даже не полная версия игры. Quandoom включает только первый уровень и отличается упрощенной графикой. Lumorti также упоминает, что в игре нет музыки и звуков, враги не могут переходить между комнатами, а огненные шары импов стали мгновенными выстрелами, а не летящими снарядами. Хотя, если вы пытаетесь запустить такую старую игру на столь сложном оборудовании, эти детали, наверное, не главные проблемы.

Главное здесь — не столько сама игра, сколько смелость проекта. Запуск Doom на бейдже участника конференции или BIOS — это одна история, но адаптировать её для квантового процессора — совсем другое дело. Это звучит так сложно, что мозг начинает болеть только от мысли, как это работает.

Вот цитата из описания на GitHub, чтобы показать, насколько сложен этот процесс перевода Doom в квантовую форму:

Сейчас я дорабатываю код движка, но у меня уже есть около 8000 строк кода на C++, которые позволяют выполнять различные обратимые двоичные и арифметические операции с квантовыми регистрами. Например, функция ‘flipIfLessThanOrEqualTo’ переворачивает кубиты в регистре, если значение другого регистра меньше заданного. Всё делается с целыми числами. Используя такие функции, я создал небольшой 3D-движок и прописал игровую логику.

Этот проект — нечто большее, чем просто попытка запустить игру на новом железе. Это эксперимент с передовыми технологиями и пример того, как старые классические игры могут вдохновлять инновации даже спустя десятилетия.